Contributions are welcome and very much appreciated!
We accept code contributions through pull requests. In short, this is how that works.
Important: All code related to fabrication with ABB industrial robots requires compas_rrc which is hosted in a private repository.
-
Fork the repository and clone the fork.
-
Create a virtual environment using your tool of choice (e.g.
virtualenv,conda, etc).- Using Anaconda
conda config --add channels conda-forge # use conda to install compas_fab if possible conda create -n rapid_clay_formations_fab-dev python=3.7 git compas_fab conda activate rapid_clay_formations_fab-dev- Using virtualenv
virtualenv --python=python3.7 {{path/to/venv}} source {{path/to/venv}}/bin/activate -
Install package and dependencies:
cd path/to/rapid_clay_formations_fab pip install git+https://bitbucket.org/ethrfl/compas_rrc@v1.0.0 pip install -e .[dev]If you have authentication issues with BitBucket (for
compas_rrc) Try installing the new Git Credential manager for Windows -
(Optional) Make package accessible in Rhino and Grasshopper
python -m rapid_clay_formations_fab.rhino.install
-
Make sure all tests pass on the unmodified code:
invoke test -
Start making your changes to the master branch (or branch off of it) on your fork.
-
Make sure all tests still pass:
invoke test -
Add yourself to the Contributors section of
AUTHORS.md. -
Document the changes in the
CHANGELOG.md -
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: Generate documentation.invoke test: Run all tests and checks in one swift command.invoke: Show available tasks.
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.
When proposing a new feature please include:
- Explain in detail how it would work.
- Keep the scope as narrow as possible, to make it easier to implement.