First of all, thank you for contributing to pycytominer! 🎉 💯
This document contains guidelines on how to most effectively contribute to the pycytominer codebase.
If you are stuck, please feel free to ask any questions or ask for help.
This project and everyone participating in it is governed by our code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to cytodata.info@gmail.com.
- Documentation: https://pycytominer.readthedocs.io/en/latest/
- Issue tracker: https://github.com/cytomining/pycytominer/issues
- Code coverage: https://app.codecov.io/gh/cytomining/pycytominer
- Package requirements: https://github.com/cytomining/pycytominer/blob/master/requirements.txt
We love hearing about use-cases when our software does not work. This provides us an opportunity to improve. However, in order for us to fix a bug, you need to tell us exactly what went wrong.
When you report a bug, please be prepared to tell us as much pertinent information as possible. This information includes:
- The pycytominer version you’re using
- The format of input data
- Copy and paste two pieces of information: 1) your command and 2) the specific error message
- What you’ve tried to overcome the bug
Please provide this information as an issue in the repository: https://github.com/cytomining/pycytominer/issues
Please also search the issues (and documentation) for an existing solution. It’s possible we solved your bug already! If you find an issue already describing your bug, please add a comment to the issue instead of opening a new one.
We’re deeply committed to a simple, intuitive user experience, and to support core profiling pipeline data processing. This commitment requires a good relationship, and open communication, with our users.
We encourage you to propose enhancements to improve the pycytominer package.
First, figure out if your proposal is already implemented, by reading the documentation! Next, check the issues (https://github.com/cytomining/pycytominer/issues) to see if someone else has already proposed the enhancement you have in mind. If you do find the suggestion, please comment on the existing issue noting that you are also interested in this functionality. If you do not find the suggestion, please open a new issue and clearly document the specific enhancement and why it would be helpful for your particular use case.
Please provide your enhancement suggestions as an issue in the repository:
Contributing code for the first time can be a daunting task. However, in our community, we strive to be as welcoming as possible to newcomers, while ensuring rigorous software development practices.
The first thing to figure out is exactly what you’re going to contribute! We have specifically tagged beginner issues, but we describe all future work as individual github issues.
If you want to contribute code that we haven’t already outlined, please start a discussion in a new issue before actually writing any code. A discussion will clarify the new code and reduce merge time. Plus, it’s possible that your contribution belongs in a different code base, and we do not want to waste your time (or ours)!
After you’ve decided to contribute code and have written it up, now it is time to file a pull request. We specifically follow a forked pull request model. Please create a fork of the pycytominer repository, clone the fork, and then create a new, feature-specific branch. Once you make the necessary changes on this branch, you should file a pull request to incorporate your changes into the main pycytominer repository.
The content and description of your pull request are directly related to the speed at which we are able to review, approve, and merge your contribution into pycytominer. To ensure an efficient review process please perform the following steps:
- Follow all instructions in the pull request template
- Triple check that your pull request is only adding one specific feature. Small, bite-sized pull requests move so much faster than large pull requests.
- After submitting your pull request, ensure that your contribution passes all status checks (e.g. passes all tests)
All pull requests must be reviewed and approved by at least one project maintainer in order to be merged. We will do our best to review the code addition in a timely fashion. Ensuring that you follow all steps above will increase our speed and ability to review. We will check for accuracy, style, code coverage, and scope.
Please follow all style guides to the best of your abilities.
For all commit messages, please use a short phrase that describes the specific change.
For example, “Add feature to check normalization method string” is much preferred to “change code”.
When appropriate, reference issues (via #
plus number) .
For python code style, we use black. Please use black before committing any code. We will not accept code contributions that do not use black.
We use the numpy documentation style guide.