Contributing#

It’s not only about code#

Contributions are most welcome and there are many ways you can help regardless of your fluency with software development:

  • First and foremost, provide feedback on what you do with axonometry and how you do it. Share your drawings on Mastodon/ActivityPub adding the #PenPlotter hashtag and a ping to my account. Or have a chat in this public matrix room.

  • Write an issue for any problem or friction point you encounter during the installation or use of axonometry or for any feature you feel is missing.
  • Make the present documentation better by fixing typos and improve the quality of the text.

  • Improve existing features or contribute entirely new ones with a pull request.

    • Write tests for your code (this project uses pytest).

    • Perform quick checks with ruff for code formatting and with reuse for license information.

Development Setup#

  1. Fork the beta branch on codeberg.org.

  2. Clone the repository on your machine.

git clone <your_forked_repo_address>
  1. Install uv. Prepare a virtual environment and install package including development dependencies.

uv venv
uv pip install -e ".[dev]"
  1. Start coding new features on a custom branch.

git checkout <new_feature_branch_name>

Running Tests#

You can run a all tests with the following command:

python -m pytest

Add more test cases depending on your contribution.

Linting#

Check the code for errors with ruff:

ruff check ./src

License Information#

Check if the code is reuse compliant:

reuse lint