Modernize CI, package management, developer tools, testing accross multiple Python versions
-
Updated docs for installation with newer python version
-
Testing now is done across multiple supported Python versions, i.e.
>=3.9,<3.12
-
CI now utilized pixi for easy environment management and testing; This is also optional development dependency, which alleviates the struggles of getting up and running with the development, also blazing fast compared to alternatives like
conda
. Packages are pulled frompip
andconda-forge
so it's perfectly compatible with the old ways of doing things. There is inter-op layer betweenconda
andpixi
in a sense that we can exportconda
env file and build the sameconda
environment. I think we should, in the future, augment the CI to include this scenario in tests. -
CI includes a test deploy job to upload the package to test registry before we merge a PR
-
CI jobs are configured to run only on TOPFARM group (so random people don't trigger the pipelines) and depending on a job they are run on MR, master branch or tag
-
Topfarm now adopt
pyproject.yaml
to define the specification and configuration of the package; moving away from legacysetup.py
-
There are some improvements on testing/coverage and dead code management
-
Added
pre-commit
so we can run formatting check before commits and don't push code which is not formatted. This happens automatically as long one has runpre-commit install
once. -
No login or any significant changes have been made to
topfarm/
source code; Even though it looks a bit scary that so many files have been changed, as long as all the tests are passing we should be safe to go with it -
Missing Windows test job in CI; Don't have access to Windows machine yet, but will be added here asap