-
Notifications
You must be signed in to change notification settings - Fork 663
Guide for Maintainers
This page is a preliminary Guide for Maintainers that provides notes on package and repository management. It contains contributions from different people involved with the MDAnalysis organization and project and does not claim to be internally consistent or follow any particular policy unless noted.
Maintenance is an important but often thankless job. Please be kind to anyone who does this work.
If you're maintaining a package, be aware that many other people rely on your work, even if they don't know it. Be careful and considerate. If things go wrong (like a bad release), then do the right thing: let people know and fix the problem, be transparent.
Part of maintenance are the following tasks (although that's not an exhaustive list)
- making releases (pypi, conda-forge)
- updating the code base for newer Python versions or to keep up with changes in dependencies
- updating/fixing continuous integration components for newer Python versions/actions/dependencies
- monitoring the issue tracker and triaging issues (responding, pinging appropriate developers, closing)
- monitoring pull requests (pinging reviewers, reviewing, merging or rejecting)
- keeping up to date to changes in the eco-system and communicating with other maintainers/developers in the MDAnalysis org
MDAKits are standalone packages containing code using components from the MDAnalysis library with the aim of solving specific scientific problems or in some form enhance the functionality of the MDAnalysis core library. An MDAKit can be written by anyone and hosted anywhere. We have a registry of kits at https://mdakits.mdanalysis.org and the MDAnalysis project maintains a number of MDAKits.
@orbeckst (2023-10-31)
In short: keeping them alive.
Firstly, this means keeping an eye on the repo and on the registry status. If things break, investigate and raise issues. Then try to get people to fix them or fix them yourself if you can. Typically, make a release to chase the newest Python version or when something gets fixed. As a maintainer you have full control over a code repository and also associated components such as a PyPi project (for pip packages) or a conda-forge recipe (for conda packages).
Releases are automated on all of our MDAKits — you tag, then make a release in GitHub (although you should probably test the package when it is sent to test.pypi).
If you're new to maintenance then we'd like you to initially work with someone who's done this for a while. All current kits already have some maintainers but we really like others to join and take over!
@orbeckst (2023-10-31)
Talk to MDAnalysis developers in one of the public channels (mailing lists & discord). Become known in the community by helping in the discussion forums or contributing fixes as PRs (expecially for a package you're interested in!). Ultimately, handing over full control over a repository under https://github.com/MDAnalysis requires some trust so we want to get to know you.