First, thanks for your interest in contributing to QuPath! 😄
There are lots of ways to do so - and most of them don't even involve writing any code.
This project is governed by its Code of Conduct. By participating, you're expected to uphold this code.
For questions and discussions, use the forum at forum.image.sc.
You should also check out Getting help - maybe there's already an answer out there.
If you use QuPath in your research, please cite the QuPath paper published in Scientific Reports:
Bankhead, P. et al. (2017). QuPath: Open source software for digital pathology image analysis. Scientific Reports. https://doi.org/10.1038/s41598-017-17204-5
There are details on how to cite QuPath here along with a list of papers where it is used. Include a citation to make sure your papers have a 📗 and not a 😞
Writing and supporting usable, open source software takes a lot of time. Many papers don't properly cite the software they use, even though doing so is one of the simplest ways to help the developers get support to continue their work.
So whenever you use any software for research, please remember to check how it should be cited!
If you find a bug, you can report it here.
Please do follow the template to make the job of finding and fixing the bug as painless as possible.
forum.image.sc isn't just a good place for asking questions - it's a good place for answering them too.
It's enormously helpful when users of the software answer one another's questions rather than leaving it up to the developer... and it's a good way to learn as well.
The best answer often doesn't depend just on knowing the software, but also understanding the application... so please do consider answering questions, even if you feel your expertise isn't in QuPath.
Figured out how to do something, and want to spare others the time it took?
Tutorials, tweetorials, blog posts and videos can all help add to the community documentation. If you're on Twitter, be sure to @QuPath.
The forum is also a good place to suggest enhancements to QuPath.
Particularly worthy suggestions may be added as issues - but please be aware that there is a long backlog of enhancement planned already.
The main limiting factor is time. Which leads on to...
QuPath is being developed at the University of Edinburgh. One way to contribute is to join the group.
Another is to collaborate on research projects that result in developing new methods that can be integrated back into QuPath for everyone to use.
Contact Pete here if you wish to talk academic things.
The easiest way to extend QuPath is to write a script or an extension.
There's some documentation at https://qupath.readthedocs.io/en/latest/docs/scripting/index.html
However, be warned that the API remains quite unstable. Changing this is a high priority, but do expect breaking changes to continue while major new features are added over the next few releases.
Most API changes are made in the interests of simplification and laying the foundations for major new features (like the pixel classifier). Improving and extending the software is currently a higher priority than backwards compatibility... but hopefully it will reach a stage where both can be achieved.
In the meantime, if you're missing a method and can't track down where it has gone, ask on the forum.
You can also contribute by submitting pull requests to QuPath itself.
Because of the API-is-unstable situation, it would be much appreciated if you discuss any proposed changes first on the forum or by opening an issue. It may be that someone is already working on what you'd like to change, or it might not be compatible with some other work-in-progress.
In accordance with GitHub's Terms of Service, any contributions you do make are under the same license as QuPath. Please make sure you have the rights for any code that you contribute, and you attribute any dependencies appropriately.