···16021602 If necessary, `pname` has to be given a different value within `fetchPypi`.
16031603* Attribute names in `python-packages.nix` should be sorted alphanumerically to
16041604 avoid merge conflicts and ease locating attributes.
16051605+16061606+## Package set maintenance
16071607+16081608+The whole Python package set has a lot of packages that do not see regular
16091609+updates, because they either are a very fragile component in the Python
16101610+ecosystem, like for example the `hypothesis` package, or packages that have
16111611+no maintainer, so maintenance falls back to the package set maintainers.
16121612+16131613+### Updating packages in bulk
16141614+16151615+There is a tool to update alot of python libraries in bulk, it exists at
16161616+`maintainers/scripts/update-python-libraries` with this repository.
16171617+16181618+It can quickly update minor or major versions for all packages selected
16191619+and create update commits, and supports the `fetchPypi`, `fetchurl` and
16201620+`fetchFromGitHub` fetchers. When updating lots of packages that are
16211621+hosted on GitHub, exporting a `GITHUB_API_TOKEN` is highly recommended.
16221622+16231623+Updating packages in bulk leads to lots of breakages, which is why a
16241624+stabilization period on the `python-unstable` branch is required.
16251625+16261626+Once the branch is sufficiently stable it should normally be merged
16271627+into the `staging` branch.
16281628+16291629+An exemplary call to update all python libraries between minor versions
16301630+would be:
16311631+16321632+```ShellSession
16331633+$ maintainers/scripts/update-python-libraries --target minor --commit --use-pkgs-prefix pkgs/development/python-modules/**/default.nix
16341634+```