Skip to content
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

Build WMCore services and publish them to pypy, usinig to tag pushes #11318

Merged
merged 1 commit into from
Oct 7, 2022

Conversation

khurtado
Copy link
Contributor

@khurtado khurtado commented Oct 5, 2022

Fixes #11276

Notes:
Packages supported: [wmagent, wmagent-devtools, wmcore, reqmon, reqmgr2, reqmgr2ms, global-workqueue, acdcserver]

Status

tested in a fork.
We need to upload the pypy secret token inside the WMCore repository for this to work

Description

These changes create a set of github actions to automatically build and publish WMCore services ([wmagent, wmagent-devtools, wmcore, reqmon, reqmgr2, reqmgr2ms, global-workqueue, acdcserver]) to pypy: https://pypi.org/user/cms-oc-dmwm/

Is it backward compatible (if not, which system it affects?)

YES

External dependencies / deployment changes

#11324

@cmsdmwmbot
Copy link

Jenkins results:

  • Python3 Unit tests: succeeded
    • 1 tests no longer failing
  • Python3 Pylint check: succeeded
  • Pylint py3k check: succeeded
  • Pycodestyle check: succeeded

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/13607/artifact/artifacts/PullRequestReport.html

@cmsdmwmbot
Copy link

Jenkins results:

  • Python3 Unit tests: failed
    • 2 new failures
    • 2 tests no longer failing
    • 1 changes in unstable tests
  • Python3 Pylint check: succeeded
  • Pylint py3k check: succeeded
  • Pycodestyle check: succeeded

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/13608/artifact/artifacts/PullRequestReport.html

@vkuznet
Copy link
Contributor

vkuznet commented Oct 5, 2022

For the references:

FROM debian:latest
MAINTAINER Valentin Kuznetsov [email protected]
RUN apt-get update
RUN apt-get install -y curl libcurl4 libcurl4-openssl-dev python3-pycurl pip
RUN ln -s /usr/bin/python3 /usr/bin/python
RUN pip install reqmgr2
ENV WDIR=/data
WORKDIR $WDIR
CMD ["python3"]

Please note, the image is debian based, it does not have RPMs, it uses reqmgr2 PyPi package, it is 628MB image size.

But using reqmgr2ms package (and similar Dockefile) I get the following issue:

INFO: pip is looking at multiple versions of py to determine which version is compatible with other requirements. This could take a while.
Collecting py<2.0.0,>=1.4.26
  Downloading py-1.10.0-py2.py3-none-any.whl (97 kB)
  Downloading py-1.9.0-py2.py3-none-any.whl (99 kB)
  Downloading py-1.8.2-py2.py3-none-any.whl (83 kB)
  Downloading py-1.8.1-py2.py3-none-any.whl (83 kB)
  Downloading py-1.8.0-py2.py3-none-any.whl (83 kB)
  Downloading py-1.7.0-py2.py3-none-any.whl (83 kB)
  Downloading py-1.6.0-py2.py3-none-any.whl (83 kB)
  Downloading py-1.5.4-py2.py3-none-any.whl (83 kB)
  Downloading py-1.5.3-py2.py3-none-any.whl (84 kB)
  Downloading py-1.5.2-py2.py3-none-any.whl (88 kB)
  Downloading py-1.5.1-py2.py3-none-any.whl (88 kB)
  Downloading py-1.4.34-py2.py3-none-any.whl (84 kB)
  Downloading py-1.4.33-py2.py3-none-any.whl (83 kB)
  Downloading py-1.4.32-py2.py3-none-any.whl (82 kB)
  Downloading py-1.4.31-py2.py3-none-any.whl (81 kB)
  Downloading py-1.4.30-py2.py3-none-any.whl (81 kB)
  Downloading py-1.4.29-py2.py3-none-any.whl (82 kB)
  Downloading py-1.4.28-py2.py3-none-any.whl (81 kB)
  Downloading py-1.4.27-py2.py3-none-any.whl (81 kB)
  Downloading py-1.4.26.tar.gz (190 kB)
INFO: pip is looking at multiple versions of py to determine which version is compatible with other requirements. This could take a while.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. If you want to abort this run, you can press Ctrl + C to do so. To improve how pip performs, tell us what happened here: https://pip.pypa.io/surveys/backtracking
INFO: pip is looking at multiple versions of decorator to determine which version is compatible with other requirements. This could take a while.
Collecting decorator>=3.4.2
  Downloading decorator-5.1.0-py3-none-any.whl (9.1 kB)
  Downloading decorator-5.0.9-py3-none-any.whl (8.9 kB)
  Downloading decorator-5.0.8-py3-none-any.whl (8.9 kB)
  Downloading decorator-5.0.7-py3-none-any.whl (8.8 kB)
  Downloading decorator-5.0.6-py3-none-any.whl (8.8 kB)
  Downloading decorator-5.0.5-py3-none-any.whl (8.8 kB)
  Downloading decorator-4.4.2-py2.py3-none-any.whl (9.2 kB)
  Downloading decorator-4.4.1-py2.py3-none-any.whl (9.2 kB)
  Downloading decorator-4.4.0-py2.py3-none-any.whl (8.3 kB)
  Downloading decorator-4.3.2-py2.py3-none-any.whl (9.1 kB)
  Downloading decorator-4.3.1-py2.py3-none-any.whl (8.8 kB)
  Downloading decorator-4.3.0-py2.py3-none-any.whl (9.2 kB)
  Downloading decorator-4.2.1-py2.py3-none-any.whl (9.3 kB)
  Downloading decorator-4.1.2-py2.py3-none-any.whl (9.1 kB)
  Downloading decorator-4.1.1-py2.py3-none-any.whl (9.0 kB)
  Downloading decorator-4.1.0-py2.py3-none-any.whl (9.0 kB)
  Downloading decorator-4.0.11-py2.py3-none-any.whl (8.9 kB)
  Downloading decorator-4.0.10-py2.py3-none-any.whl (9.2 kB)
  Downloading decorator-4.0.9-py2.py3-none-any.whl (22 kB)
  Downloading decorator-4.0.6-py2.py3-none-any.whl (21 kB)
  Downloading decorator-4.0.4-py2.py3-none-any.whl (8.7 kB)
  Downloading decorator-4.0.3-py2.py3-none-any.whl (8.5 kB)
  Downloading decorator-4.0.2-py2.py3-none-any.whl (8.5 kB)
  Downloading decorator-4.0.1-py2.py3-none-any.whl (8.5 kB)
  Downloading decorator-4.0.0-py2.py3-none-any.whl (8.6 kB)
  Downloading decorator-3.4.2.tar.gz (6.1 kB)
INFO: pip is looking at multiple versions of decorator to determine which version is compatible with other requirements. This could take a while.
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. If you want to abort this run, you can press Ctrl + C to do so. To improve how pip performs, tell us what happened here: https://pip.pypa.io/surveys/backtracking
INFO: pip is looking at multiple versions of retry to determine which version is compatible with other requirements. This could take a while.

The bottom line is that we still have dependency chain issue with python packages which will require special attention since building and pushing packages to pypi is half way through, we need to install them to see if our builds provide valid packages.

@khurtado
Copy link
Contributor Author

khurtado commented Oct 5, 2022

@vkuznet Wonderful! @ericvaandering is working on splitting reqmgr2ms into different pypy packages at present. Let's come back to the issue you are seeing after he manages to do #10159

@cmsdmwmbot
Copy link

Jenkins results:

  • Python3 Unit tests: failed
    • 12 new failures
    • 2 tests no longer failing
    • 2 changes in unstable tests
  • Python3 Pylint check: succeeded
  • Pylint py3k check: succeeded
  • Pycodestyle check: succeeded

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/13610/artifact/artifacts/PullRequestReport.html

@cmsdmwmbot
Copy link

Jenkins results:

  • Python3 Unit tests: failed
    • 1 new failures
    • 2 tests no longer failing
    • 2 changes in unstable tests
  • Python3 Pylint check: succeeded
  • Pylint py3k check: succeeded
  • Pycodestyle check: succeeded

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/13611/artifact/artifacts/PullRequestReport.html

@khurtado
Copy link
Contributor Author

khurtado commented Oct 6, 2022

@germanfgv Do you have any insight on the t0 pypy package that exists already?
https://pypi.org/project/t0/

Do we need to provide support on WMCore or does T0 have that covered?

Copy link
Contributor

@amaltaro amaltaro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@khurtado Kenyi, can you please update this PR with the recent changes made by Erik in this PR:
#11324
?

We now have separated microservice builds, and reqmgr2ms no longer needs to be packaged and uploaded to PyPi. @goughes can correct me here as well, in case I am missing anything.

@vkuznet
Copy link
Contributor

vkuznet commented Oct 7, 2022

I created a separate issue about packages which are already in pypi but for some reason which cannot be installed, see #11327 So far I only was able to install reqmgr2, but reqmgr2ms and wmagent are not installable.

@khurtado
Copy link
Contributor Author

khurtado commented Oct 7, 2022

@amaltaro I have updated the list of pypy packages to go according to Erik changes.

Copy link
Contributor

@amaltaro amaltaro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess GH actions are only available for this architecture:

    runs-on: ubuntu-latest

? Don't we have the possibility to use an RPM-based system (RH/Fedora/CentOS)?

Can you please squash these commits? And also ping me on slack, such that we can define the PyPi token. Thanks

@cmsdmwmbot
Copy link

Jenkins results:

  • Python3 Unit tests: failed
    • 2 new failures
    • 1 tests no longer failing
    • 1 changes in unstable tests
  • Python3 Pylint check: succeeded
  • Pylint py3k check: succeeded
  • Pycodestyle check: succeeded

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/13627/artifact/artifacts/PullRequestReport.html

…) and publish them to pypy, using tag pushes
@cmsdmwmbot
Copy link

Jenkins results:

  • Python3 Unit tests: succeeded
    • 1 tests no longer failing
    • 2 changes in unstable tests
  • Python3 Pylint check: succeeded
  • Pylint py3k check: succeeded
  • Pycodestyle check: succeeded

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/13628/artifact/artifacts/PullRequestReport.html

@cmsdmwmbot
Copy link

Jenkins results:

  • Python3 Unit tests: succeeded
    • 1 tests no longer failing
    • 1 changes in unstable tests
  • Python3 Pylint check: succeeded
  • Pylint py3k check: succeeded
  • Pycodestyle check: succeeded

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/13629/artifact/artifacts/PullRequestReport.html

Copy link
Contributor

@amaltaro amaltaro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the clarification, Kenyi and Valentin.
From our chat on slack, I have created the Pypi token and it should be all set now. I'm creating a new tag soon to run a real test.

@amaltaro amaltaro merged commit 28be7dc into dmwm:master Oct 7, 2022
@amaltaro
Copy link
Contributor

amaltaro commented Oct 7, 2022

Haaa, nice! In 1min, we managed to build and upload everything to PyPi. Here is one example:
https://pypi.org/project/wmagent/2.1.4rc2/

I know it's unrelated to this PR, but I wonder if the PyPi release number should be 2.1.4.rc2, or the one created 2.1.4rc2? @goughes any thoughts? We might as well refactor our pre-releases to actually release candidates.

@khurtado
Copy link
Contributor Author

khurtado commented Oct 9, 2022

@amaltaro I think only .postN and .devN are allowed to have a . after the numerical version numbers. Anything else like rc, a, b, etc can't have a dot, see the PEP 440 naming convention below:

https://peps.python.org/pep-0440/#public-version-identifiers

@ericvaandering
Copy link
Member

ericvaandering commented Oct 11, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Automated packaging and upload of WMCore services to Pypi
5 participants