This document describes how to contribute to the silx project. The process is similar to many other open-source projects like numpy, just lighter as the project is smaller, so you won't be surprised with the pipeline.
scikit-image provides a nice tutorial in their own CONTRIBUTING guide.
- Create your GitHub account https://help.github.com/categories/setup/ and upload your SSH keys.
- Fork the silx project from https://github.com/silx-kit/silx/. The button is on the top right of the page.
- Clone your GitHub version locally on the computer you intend to work on.
git clone [email protected]/<your_user_name>/silx
- Install the dependencies defined in requirements-dev.txt.
pip install -r requirements-dev.txt
- Make sure the silx test suite pass on your computer using the
python3 run_tests.py
orpython3 run_tests.py silx.gui.test.test_qt
if you want to test only a subset of it. You can usepython /path/to/silx/bootstrap.py script.py
to test your scripts without installing silx, but the test suite is required to pass. - Open an issue in
https://github.com/silx-kit/silx/issues
to inform the maintainers of your intentions. - Create a local branch to start working on your issue
git branch my_feature
. - Code, enjoy but ensure that the new code is tested and does not break the current test suite.
- Push your local branch to your GitHub account:
git push origin my_feature
. - Create a pull request (PR) from your feature branch on GitHub to trigger the review process. Indicate this PR is related to the issue you opened in 6.
- Discuss with the maintainer who is reviewing your code using the GitHub interface.
If you encounter any problems or have any questions you can always ask on the Issues page.
To ease release notes authoring, please use the following syntax for the title of your Pull Requests (PR):
<Subpackage/Module/Topic>: <Action> <summary of the main change affecting silx's users>
With:
- Subpackage/Topic: One of:
- A subpackage or a module: Use the fully qualified name of the subpackage or module of silx the PR is changing.
For example:
silx.gui.qt
orsilx.gui.plot.PlotWidget
. - A topic: If changes do not affect a particular subpackage or module, provide the topic of the change.
This can be for example:
Build
,Documentation
,CI
,... or the name of a silx application (e.g.,silx view
).
- A subpackage or a module: Use the fully qualified name of the subpackage or module of silx the PR is changing.
For example:
- Action: How the changes affects the project from a silx user point of view.
Prefer using one of the following actions:
- Added: For new feature or new APIs
- Deprecated
- Removed
- Changed
- Improved
- Refactored
- Fixed
- More: If none of the previous actions match your changes, please use another keyword.
- Summary: A short description of the main change as you would like to read it from release notes.