All contributions are welcome, no matter how small! However there are some caveats to be aware of, detailed below.
If your contribution is not a bugfix or small change, please open an issue or contact me on Discord to discuss it.
Use the command below to install all the tooling required to develop arc:
$ pip install -r requirements.txt -r dev_requirements.txt
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.
This is optional, but highly recommended if you're doing larger contributions.
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
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.
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!