Skip to content

Latest commit

 

History

History
52 lines (28 loc) · 2.34 KB

CONTRIBUTING.md

File metadata and controls

52 lines (28 loc) · 2.34 KB

Contributing

All contributions are welcome, no matter how small! However there are some caveats to be aware of, detailed below.

Open an issue

If your contribution is not a bugfix or small change, please open an issue or contact me on Discord to discuss it.

Setting up the project

Installing dependencies

Use the command below to install all the tooling required to develop arc:

$ pip install -r requirements.txt -r dev_requirements.txt

Running nox

Before submitting your changes, you should run nox and ensure all the pipelines pass successfully. This checks the code for typing errors, antipatterns & bad practices, along with formatting it & running all tests.

GitHub CI runs on every pull request to verify that nox passes.

Configuring your editor

This is optional, but highly recommended if you're doing larger contributions.

VS Code

When cloning the project for the first time, VS Code should prompt you to install extensions recommended by the project, if you're missing any. Review and install them.

This should set up linting & typechecking to be performed as you edit the source code, along with defaulting the formatter to ruff. A fairly minimal editorconfig is also applied to ensure consistency with the rest of the project.

You can also run nox by using the shortcut Ctrl+Shift+B. This uses VS Code's tasks system, see here for more information.

Custom snippets are also available:

  • !!! + TAB: Set up a new source file, insert annotations import & license

PyCharm and other JetBrains IDEs

Configuration should be applied automatically, however there is no good extension for ruff, so you should doubly make sure nox successfully completes before committing your changes.

Other editors

If you want to add explicit support for other editors, please open a PR!


That's all! Thanks for reading it all. If you have suggestions as to what other things should be added here to improve the developer experience, please open an issue!