Contributing#
Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
You can contribute in many ways:
Types of Contributions#
Report Bugs#
Report bugs at https://github.com/automl/CARP-S/issues.
If you are reporting a bug, please include:
- Your operating system name and version.
- Any details about your local setup that might be helpful in troubleshooting.
- Detailed steps to reproduce the bug.
Fix Bugs#
Look through the GitHub issues for bugs. Anything tagged with "bug" and "help wanted" is open to whoever wants to implement it.
Implement Features#
Look through the GitHub issues for features. Anything tagged with "enhancement" and "help wanted" is open to whoever wants to implement it.
Write Documentation#
CARP-S could always use more documentation, whether as part of the official CARP-S docs, in docstrings, or even on the web in blog posts, articles, and such.
Submit Feedback#
The best way to send feedback is to file an issue at github.com/automl/CARP-S/issues.
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.
- Remember that this is a volunteer-driven project, and that contributions are welcome :)
Get Started!#
Ready to contribute? Here's how to set up CARP-S
for local development.
Fork the CARP-S
repo on GitHub and then clone your fork locally:
Install your local copy into a virtualenv.
We'll also install pre-commit
which runs some code quality checks.
Create a branch for local development:
Now you can make your changes locally!
When you're done making changes, check that your changes pass ruff, including testing other Python versions:
Commit your changes and push your branch to GitHub:git add .
git commit -m "Your detailed description of your changes."
git push origin name-of-your-bugfix-or-feature
Local Development#
Virtual Environments#
You can try to install all dependencies into one big environment, but probably there are package clashes.
Therefore, you can build one virtual environment for each optimizer-benchmark combination.
Either run scripts/build_envs.sh
to build all existing combinations or copy the combination and run as needed. It will create an environment with name automlsuite_${OPTIMIZER_CONTAINER_ID}_${BENCHMARK_ID}
.
Pull Request Guidelines#
Before you submit a pull request, check that it meets these guidelines:
- The pull request should include tests.
- If the pull request adds functionality, the docs should be updated.
Put your new functionality into a function with a docstring, and add the feature to the list in
README.md
. - The pull request should work for
Python 3.9
and make sure that the tests pass for all supported Python versions.
Testing#
To run a subset of tests:
pytest tests/some_file.py # Run tests only in a certain file
pytest -k "test_mytest" # Find tests with a name matching "test_mytest"
Deploying#
A reminder for the maintainers on how to deploy.
Make sure all your changes are committed (including an entry in CHANGELOG.md
).
Update the version in pyproject.toml
, then run: