Skip to content

bin/install: install packages one by one and enforce prerequisites

This is trying to make bin/install (again) a click-button developer setup installation tool, simplifying the process for newcomers and making it faster for everyone.

To that end:

  • we ensure that pip is up to date before using it for anything else

  • we install the prerequisites (flake8, mypy, etc.) to avoid having to name them one by one in user documentation

  • we install packages one by one, rather them all together, to avoid that pip failures force users to restart the whole process from scratch. In passing, this makes also things much easier for the new pip resolver. To avoid dependency inconsistencies we install packages in bin/pip-swh-packages, which is already supposed to be topologically sorted

  • we also install packages only once, rather than first without -with-testing and later with it (as currently documented in the developer setup), because the "[testing]" markers are extra requires, which always depend on the base package (hopefully)

When this gets landed, the developer setup can be shortened to just say "run bin/install".

bin/pip-swh-packages: remove [extras] markers before topo-sorting


Migrated from D5154 (view on Phabricator)

Merge request reports