If you would like to contribute to Clusterium, please take a look at the current issues. If there is a bug or feature that you want but it isn't listed, make an issue and work on it.
Before raising an issue, please ensure that you are using the latest version of Clusterium.
Please provide the following information with your issue to enable us to respond as quickly as possible.
- The relevant versions of the packages you are using.
- The steps to recreate your issue.
- The full stacktrace if there is an exception.
- An executable code example where possible
Guidelines for bug reports:
- Use the GitHub issue search — check if the issue has already been reported.
- Check if the issue has been fixed — try to reproduce it using the latest
main
branch in the repository. - Isolate the problem — create a reduced test case and a live example.
A good bug report shouldn't leave others needing to chase you up for more information. Please try to be as detailed as possible in your report. What is your environment? What steps will reproduce the issue? What OS experiences the problem? What would you expect to be the outcome? All these details will help people to fix any potential bugs.
Feature requests are welcome. But take a moment to find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Please provide as much detail and context as possible.
Good pull requests - patches, improvements, new features - are a fantastic help. They should remain focused in scope and avoid containing unrelated commits.
Follow this process if you'd like your work considered for inclusion in the project:
- Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
- Fork the repository
on GitHub to start making your changes to the
main
branch (or branch off of it). - Write a test which shows that the bug was fixed or that the feature works as expected.
- Send a pull request and bug the maintainer until it gets merged and published.
If you are intending to implement a fairly large feature we'd appreciate if you open an issue with GitHub detailing your use case and intended solution to discuss how it might impact other work that is in flight.
Below is a quick setup guide. For a more comprehensive guide, please refer to the Maintainers Guide.
Clone the repository:
git clone https://github.com/sergeyklay/clusterium.git cd clusterium
Install dependencies using Poetry:
poetry install
Set up pre-commit hooks:
poetry run pre-commit install
Run tests to ensure everything is working:
poetry run pytest
This project uses:
- Black for code formatting
- isort for import sorting
- flake8 for linting
- pylint for static type checking
These tools are automatically run when you use pre-commit hooks.
We use pytest for testing. Please ensure that your code includes appropriate tests. To run tests:
poetry run pytest
To run tests with coverage:
poetry run coverage run -m pytest
poetry run coverage report
By submitting a patch, you agree to allow the project owner to license your work under the same license as that used by the project.