-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch from distutils to setuptools #12259
base: master
Are you sure you want to change the base?
Conversation
Jenkins results:
|
Jenkins results:
|
Jenkins results:
|
Jenkins results:
|
c38ee4f
to
f1e5c63
Compare
Jenkins results:
|
fa79dbb
to
874d394
Compare
Jenkins results:
|
Jenkins results:
|
874d394
to
5becac3
Compare
Jenkins results:
|
5becac3
to
576e325
Compare
Jenkins results:
|
@amaltaro , @todor-ivanov , @mapellidario I asked you to review this PR and I want to let you know that I identified that we have |
@vkuznet if you couldn't find any reference to it, my suggestion is to make a new commit deleting it and making an explicit note in the initial PR description that it is being deleted because it is unused. |
ok, removed and adjusted the description. |
Jenkins results:
|
Fixes #12256
Status
in development
Description
Provide switch from
distutils
tosetuptools
library for all scripts and tools used by WMCore code-base. This PR provides the following:.github/workflows/build_and_install_locally.yaml
new CI/CD workflow to locally build and install WM packagesbin/test_local_build_and_install.sh
script which imitates CI/CD workflow and relies on virtual environment to build and install WM packages locallysetup.py
script can be used to build wmcore package, e.g.python setup.py sdist
setup_template.py
script is used by CI/CD workflows to build concrete WM package, e.g. reqmgr2.github/workflows/pypi_build_and_images.yaml
) copiessetup_tempate.py
intosetup.py
and properly setup package namerequirements.txt
python3 setup.py clean sdist
to create distribution tar ball.NOTE 1: the WM build steps run within CI/CD pipeline as a matrix and therefore overwritten
setup.py
andrequirements.txt
files never cause any problems, i.e. they are within separate docker images during CI/CD execution, i.e. within specific matrix build.NOTE 2:
The provided
bin/test_local_build_and_install.sh
script only build and install WM packages in local virtual environment. It does not verifies their functionality though as it requires additional setup like databases, htcondor, gfal libraries.It also install all WM packages within single virtual environment. Another approach would be use individual virtual environment areas for individual WM packages, and if it will be desired I can provide a new script or modify
bin/test_local_build_and_install.sh
accordingly. The issue with multiple virtual environments that it waste disk space as WM packages share dependencies among each other. Therefore, I opted with single virtual environment approach.Local builds and installation skips
htcondor
andgfal
dependencies as they are very centric for CERN based Linux OS. All other dependencies are OS agnostic and presented in local build/install procedure which can be performed on any Linux, and macOS versions.NOTE 3: I removed
setup_wmcore.py
from the repository in this commit since I was unable to find out usage of this code anywhere in WMCore repository.Is it backward compatible (if not, which system it affects?)
Most likely YES, but I'm not 100% sure.
I performed local installation and compared tarballs using distutils and setuptools, but no actual tests were done with individual packages as it requires their upload to PyPi and installation elsewhere.
Related PRs
External dependencies / deployment changes