Developer Guide

For now, the main developer documentation is the Adding a New Format page. Take particular note of the section on error handling, but the entire page is worth reading.

The other developer docs may also be useful.

Contributing your code

First, if you are a new contributor to open-source software, please read this introduction to contributing patches upstream. Some of the technical details are obsolete, but the general principles are still valid.

Every contribution to OpenSlide must include a signoff certifying that you have the right to contribute your changes to the OpenSlide project. See this guide for details.

Pull requests that make significant changes should generally be structured as multiple commits, where each commit is a self-contained change that evolves the codebase toward the desired outcome. For example, there might be one commit to fix a typo you found during development, then a commit that moves some code to a helper function, then a commit that uses the helper function to add the bare bones of a new feature, then two more commits that extend that new feature. Each commit should have a commit message that describes the reasoning for the change. When addressing feedback from code review, edit your existing commits with git rebase -i and update the branch with git push -f, rather than appending fixup commits to the branch.

OpenSlide uses Git hooks and the pre-commit framework to check coding style when you commit. To configure the hooks, install pre-commit from your package manager or with pip install pre-commit, then run pre-commit install in your OpenSlide checkout. The pre-commit checks are also rerun as part of OpenSlide’s CI.

Please discuss your changes on the openslide-users mailing list or in a GitHub issue, before you are ready to submit them, so that we can help you integrate your code into the existing codebase.

When contributing support for a new format, we strongly prefer that you also contribute example slide files for our openslide-testdata repository. The example files must be data that you are entitled to contribute, and the OpenSlide project must receive permission to redistribute them under the Creative Commons Zero license. See the submission form for more details.

Original development guide

This section contains the original development guide written by Adam Goode in 2010, with some updates by Benjamin Gilbert in 2012 and 2013. It’s no longer actively maintained, but there’s still some wisdom here.


This document is for any contributors to OpenSlide, including those in the original OpenSlide group at CMU. It includes some guidelines and advice.


Release process

We have issue templates for each type of release. OpenSlide maintainers can perform a release by filing a new issue named after the new version to be released, and checking boxes.