HomeSoftware Heritage

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

Description

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".

Details

Provenance
zackAuthored on Feb 26 2021, 2:21 PM
zackPushed on Feb 26 2021, 5:17 PM
Differential Revision
D5154: bin/install: install packages one by one and enforce prerequisites
Parents
rDENV11b018899cff: keycloak: Add deposit container to keycloak docker compose
Branches
Unknown
Tags
Unknown