How to contribute¤
Contributions are welcome and very much appreciated!
Code contributions¤
We accept code contributions through pull requests. In short, this is how that works.
- Fork the repository and clone the fork.
-
Create an environment with uv and build the solver — it is compiled into the package, so an install from source needs a staged IPOPT tree, and
invoke setuptakes care of the whole sequence (see Installation for the details, and for the Docker route):uv venv --python 3.12 source .venv/Scripts/activate # .venv/bin/activate on macOS and Linux uv pip install invoke compas_invocations2 invoke setupOnly working on the documentation or on Python code?
uv pip install -r requirements.txtis enough forinvoke docsandinvoke lint— no solver build needed. -
Make sure all tests pass:
-
Start making your changes to the main branch (or branch off of it).
-
Make sure all tests still pass:
-
Commit your changes and push your branch to GitHub.
- Create a pull request through the GitHub website.
During development, use pyinvoke tasks on the command line to ease recurring operations:
invoke clean: Clean all generated artifacts.invoke check: Run various code and documentation style checks.invoke docs: Build the documentation.invoke docs: Serve the documentation atlocalhost:8000with live reload.invoke test: Run all tests and checks in one swift command.invoke: Show available tasks.
Bug reports¤
When reporting a bug please include:
- Operating system name and version.
- Any details about your local setup that might be helpful in troubleshooting.
- Detailed steps to reproduce the bug.
Feature requests and feedback¤
The best way to send feedback is to file an issue on GitHub. If you are proposing a feature:
- Explain in detail how it would work.
- Keep the scope as narrow as possible, to make it easier to implement.