doc/python: explain bulk package set updates

authored by

Martin Weinelt and committed by
Jonathan Ringer
304ed7c4 296da7b2

+30
+30
doc/languages-frameworks/python.section.md
··· 1602 If necessary, `pname` has to be given a different value within `fetchPypi`. 1603 * Attribute names in `python-packages.nix` should be sorted alphanumerically to 1604 avoid merge conflicts and ease locating attributes.
··· 1602 If necessary, `pname` has to be given a different value within `fetchPypi`. 1603 * Attribute names in `python-packages.nix` should be sorted alphanumerically to 1604 avoid merge conflicts and ease locating attributes. 1605 + 1606 + ## Package set maintenance 1607 + 1608 + The whole Python package set has a lot of packages that do not see regular 1609 + updates, because they either are a very fragile component in the Python 1610 + ecosystem, like for example the `hypothesis` package, or packages that have 1611 + no maintainer, so maintenance falls back to the package set maintainers. 1612 + 1613 + ### Updating packages in bulk 1614 + 1615 + There is a tool to update alot of python libraries in bulk, it exists at 1616 + `maintainers/scripts/update-python-libraries` with this repository. 1617 + 1618 + It can quickly update minor or major versions for all packages selected 1619 + and create update commits, and supports the `fetchPypi`, `fetchurl` and 1620 + `fetchFromGitHub` fetchers. When updating lots of packages that are 1621 + hosted on GitHub, exporting a `GITHUB_API_TOKEN` is highly recommended. 1622 + 1623 + Updating packages in bulk leads to lots of breakages, which is why a 1624 + stabilization period on the `python-unstable` branch is required. 1625 + 1626 + Once the branch is sufficiently stable it should normally be merged 1627 + into the `staging` branch. 1628 + 1629 + An exemplary call to update all python libraries between minor versions 1630 + would be: 1631 + 1632 + ```ShellSession 1633 + $ maintainers/scripts/update-python-libraries --target minor --commit --use-pkgs-prefix pkgs/development/python-modules/**/default.nix 1634 + ```