#31 Upgrade to 45.2.0, no longer supports Python 2 (intended for Fedora 33+)
Merged 2 years ago by churchyard. Opened 2 years ago by churchyard.
rpms/ churchyard/python-setuptools 45.2.0  into  master

file modified
+6 -102
@@ -1,102 +1,6 @@ 

- /svn17_example.zip

- /svn18_example.zip

- /setuptools-1.3.1.tar.gz

- /setuptools-1.4.tar.gz

- /setuptools-2.0.tar.gz

- /setuptools-6.0.2.tar.gz

- /setuptools-6.1.tar.gz

- /setuptools-7.0.tar.gz

- /setuptools-8.2.1.tar.gz

- /setuptools-11.0.tar.gz

- /setuptools-11.3.1.tar.gz

- /setuptools-12.0.3.tar.gz

- /setuptools-12.3.tar.gz

- /setuptools-12.4.tar.gz

- /setuptools-13.0.2.tar.gz

- /setuptools-14.1.1.tar.gz

- /setuptools-14.2.tar.gz

- /setuptools-14.3.tar.gz

- /setuptools-14.3.1.tar.gz

- /python-setuptools-15.0-1.fc21.src.rpm

- /setuptools-15.0.tar.gz

- /setuptools-15.2.tar.gz

- /setuptools-16.0.tar.gz

- /setuptools-17.0.tar.gz

- /setuptools-17.1.tar.gz

- /setuptools-17.1.1.tar.gz

- /setuptools-18.0.1.tar.gz

- /setuptools-18.1.tar.gz

- /setuptools-18.3.1.tar.gz

- /setuptools-18.3.2.tar.gz

- /setuptools-18.4.tar.gz

- /setuptools-18.5.tar.gz

- /setuptools-18.6.1.tar.gz

- /setuptools-18.7.1.tar.gz

- /setuptools-18.8.tar.gz

- /setuptools-18.8.1.tar.gz

- /setuptools-19.1.1.tar.gz

- /setuptools-19.2.tar.gz

- /setuptools-19.4.tar.gz

- /setuptools-19.5.tar.gz

- /setuptools-19.6.tar.gz

- /setuptools-19.6.2.tar.gz

- /setuptools-19.7.tar.gz

- /setuptools-20.0.tar.gz

- /setuptools-20.1.tar.gz

- /setuptools-20.1.1.tar.gz

- /setuptools-20.3.tar.gz

- /setuptools-20.4.tar.gz

- /setuptools-20.6.7.tar.gz

- /setuptools-20.8.1.tar.gz

- /setuptools-20.9.0.tar.gz

- /setuptools-20.10.1.tar.gz

- /setuptools-21.2.2.tar.gz

- /setuptools-22.0.0.tar.gz

- /setuptools-22.0.5.tar.gz

- /setuptools-23.0.0.tar.gz

- /setuptools-24.0.1.tar.gz

- /setuptools-24.2.0.tar.gz

- /setuptools-25.0.0.tar.gz

- /setuptools-25.1.0.tar.gz

- /setuptools-25.1.1.tar.gz

- /setuptools-25.1.6.tar.gz

- /setuptools-26.0.0.tar.gz

- /setuptools-27.1.2.tar.gz

- /setuptools-27.3.0.tar.gz

- /setuptools-28.0.0.tar.gz

- /setuptools-28.1.0.tar.gz

- /setuptools-28.2.0.tar.gz

- /setuptools-28.3.0.tar.gz

- /setuptools-28.6.0.tar.gz

- /setuptools-28.6.1.tar.gz

- /setuptools-28.7.1.tar.gz

- /setuptools-28.8.0.tar.gz

- /setuptools-30.4.0.tar.gz

- /v32.2.0.tar.gz

- /setuptools-32.2.0.zip

- /setuptools-32.3.0.zip

- /setuptools-32.3.1.zip

- /setuptools-34.1.1.zip

- /setuptools-34.2.0.zip

- /setuptools-34.3.0.zip

- /setuptools-34.3.2.zip

- /setuptools-35.0.1.zip

- /setuptools-35.0.2.zip

- /setuptools-36.0.1.zip

- /setuptools-36.2.0.zip

- /setuptools-36.5.0.zip

- /setuptools-37.0.0.zip

- /setuptools-38.2.5.zip

- /setuptools-38.4.0.zip

- /setuptools-39.0.1.zip

- /setuptools-39.2.0.zip

- /setuptools-40.4.1.zip

- /setuptools-40.4.3.zip

- /setuptools-40.7.0.zip

- /setuptools-40.7.1.zip

- /setuptools-40.7.2.zip

- /setuptools-40.7.3.zip

- /setuptools-40.8.0.zip

- /setuptools-41.0.1.zip

- /setuptools-41.2.0.zip

- /setuptools-41.6.0.zip

+ /setuptools-*.tar.gz

+ /setuptools-*.zip

+ /setuptools-*/

+ /pkg_resources-tests-data-*.tar.gz

+ /results_python-setuptools/

+ *.rpm

file modified
+31 -20
@@ -6,24 +6,28 @@ 

  %bcond_without tests

  

  %if %{without bootstrap}

- %global python_wheelname %{srcname}-%{version}-py2.py3-none-any.whl

+ %global python_wheelname %{srcname}-%{version}-py3-none-any.whl

  %global python3_record %{python3_sitelib}/%{srcname}-%{version}.dist-info/RECORD

  %endif

  %global python_wheeldir %{_datadir}/python-wheels

  

  Name:           python-setuptools

  # When updating, update the bundled libraries versions bellow!

- Version:        41.6.0

- Release:        2%{?dist}

+ Version:        45.2.0

+ Release:        1%{?dist}

  Summary:        Easily build and distribute Python packages

  # setuptools is MIT

  # packaging is BSD or ASL 2.0

  # pyparsing is MIT

  # six is MIT

+ # ordered-set is MIT

  License:        MIT and (BSD or ASL 2.0)

  URL:            https://pypi.python.org/pypi/%{srcname}

  Source0:        %{pypi_source %{srcname} %{version} zip}

  

+ # https://github.com/pypa/setuptools/pull/1991

+ Source1:        pkg_resources-tests-data-%{version}.tar.gz

+ 

  # In Fedora, sudo setup.py install installs to /usr/local/lib/pythonX.Y/site-packages

  # But pythonX doesn't own that dir, that would be against FHS

  # We need to create it if it doesn't exist
@@ -56,21 +60,22 @@ 

  have dependencies on other packages.

  

  This package also contains the runtime components of setuptools, necessary to

- execute the software that requires pkg_resources.py.

+ execute the software that requires pkg_resources.

  

  # Virtual provides for the packages bundled by setuptools.

  # You can find the versions in setuptools/setuptools/_vendor/vendored.txt

- %global bundled() %{expand:

- Provides: bundled(python%{1}dist(packaging)) = 16.8

- Provides: bundled(python%{1}dist(pyparsing)) = 2.2.1

- Provides: bundled(python%{1}dist(six)) = 1.10.0

+ %global bundled %{expand:

+ Provides: bundled(python3dist(packaging)) = 19.2

+ Provides: bundled(python3dist(pyparsing)) = 2.2.1

+ Provides: bundled(python3dist(six)) = 1.10.0

+ Provides: bundled(python3dist(ordered-set)) = 3.1.1

  }

  

  %package -n python3-setuptools

  Summary:        Easily build and distribute Python 3 packages

  Conflicts:      python-setuptools < %{version}-%{release}

  %{?python_provide:%python_provide python3-setuptools}

- %{bundled 3}

+ %{bundled}

  

  %if %{with bootstrap}

  Provides:       python3dist(setuptools) = %{version}
@@ -84,13 +89,12 @@ 

  have dependencies on other packages.

  

  This package also contains the runtime components of setuptools, necessary to

- execute the software that requires pkg_resources.py.

+ execute the software that requires pkg_resources.

  

  %if %{without bootstrap}

  %package wheel

  Summary:        The setuptools wheel

- %{bundled 2}

- %{bundled 3}

+ %{bundled}

  

  %description wheel

  A Python wheel of setuptools to use with venv.
@@ -101,14 +105,17 @@ 

  %autosetup -p1 -n %{srcname}-%{version}

  rm -r %{srcname}.egg-info

  

+ # unpack the pkg_resources test data

+ tar -xf %{SOURCE1}

+ 

  # Strip shbang

  find setuptools pkg_resources -name \*.py | xargs sed -i -e '1 {/^#!\//d}'

  # Remove bundled exes

  rm -f setuptools/*.exe

  # These tests require internet connection

  rm setuptools/tests/test_integration.py 

- # Spurious executable perm https://github.com/pypa/setuptools/pull/1441

- chmod -x README.rst

+ # We don't do linting here

+ sed -i 's/ --flake8//' pytest.ini

  

  %build

  # Warning, different bootstrap meaning here, has nothing to do with our bcond
@@ -130,7 +137,9 @@ 

  %py3_install

  %endif

  

- rm -rf %{buildroot}%{python3_sitelib}/setuptools/tests

+ # This is not installed (in 45.2.0 anyway), but better be safe than sorry

+ rm -rf %{buildroot}%{python3_sitelib}/{setuptools,pkg_resources}/tests

+ 

  %if %{without bootstrap}

  sed -i '/^setuptools\/tests\//d' %{buildroot}%{python3_record}

  %endif
@@ -148,13 +157,10 @@ 

  

  %if %{with tests}

  %check

- # --ignore=pavement.py: No python3-paver in Fedora

+ # --ignore=pavement.py:

  #   pavement.py is only used by upstream to do releases and vendoring, we don't ship it

- # --deselect=setuptools/tests/test_setuptools.py::TestDepends::testRequire

- #   Test failure reported upstream: https://github.com/pypa/setuptools/issues/1896

  PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=$(pwd) pytest-%{python3_version} \

-     --ignore=pavement.py \

-     --deselect=setuptools/tests/test_setuptools.py::TestDepends::testRequire

+     --ignore=pavement.py

  %endif # with tests

  

  
@@ -178,6 +184,11 @@ 

  

  

  %changelog

+ * Tue Feb 11 2020 Miro Hrončok <mhroncok@redhat.com> - 45.2.0-1

+ - Upgrade to 45.2.0 (#1775943)

+ - https://setuptools.readthedocs.io/en/latest/history.html#v45-2-0

+ - No longer supports Python 2

+ 

  * Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 41.6.0-2

  - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

  

file modified
+2 -1
@@ -1,1 +1,2 @@ 

- SHA512 (setuptools-41.6.0.zip) = 1bed75e7173ea0399f078c96cf5c1818dada7a4b86a93e61ff72da6a25694e321b9047e024617aa775b71a25fe8cb0848323902e1fb9c8c8a1f39434f0de6434

+ SHA512 (setuptools-45.2.0.zip) = 0d1e1e5b4074bdf9b35515dc6d9b03476ebe48287f30ff81ebc23a4b6e12a9faabd6ced40642ca6c5f27030be0252f48f18e73eac3876a447b1c6d4320a50147

+ SHA512 (pkg_resources-tests-data-45.2.0.tar.gz) = 64bca0095dc371ba0cec8f865dd55d97cd0d26d3841c8525f7d1caa398d16ecbbed4d65ca709b3f1be9d5154168216fefc49a659ca28936b8f6aa0b8b4b39538

file modified
+7
@@ -23,6 +23,9 @@ 

      - smoke38:

          dir: python/smoke

          run: VERSION=3.8 ./venv.sh

+     - smoke39:

+         dir: python/smoke

+         run: VERSION=3.9 ./venv.sh

      - smoke27:

          dir: python/smoke

          run: VERSION=2.7 METHOD=virtualenv ./venv.sh
@@ -41,6 +44,9 @@ 

      - smoke38_virtualenv:

          dir: python/smoke

          run: VERSION=3.8 METHOD=virtualenv ./venv.sh

+     - smoke39_virtualenv:

+         dir: python/smoke

+         run: VERSION=3.9 METHOD=virtualenv ./venv.sh

      required_packages:

      - gcc

      - virtualenv
@@ -50,5 +56,6 @@ 

      - python36

      - python37

      - python38

+     - python39

      - python3-devel

      - python3-tox

2 new commits added

  • Upgrade to 45.2.0, no longer supports Python 2
  • Clean up .gitignore
2 years ago

That should hopefully be all required changes. Jython will also need to be adapted, but that one is not on the CI.

Build failed.

Warning:
Requirements ['repo'] not met by build defd1e2b60f6420faa59f4d2e51e575e
Requirements ['repo'] not met by build defd1e2b60f6420faa59f4d2e51e575e
Requirements ['repo'] not met by build defd1e2b60f6420faa59f4d2e51e575e
Requirements ['repo'] not met by build defd1e2b60f6420faa59f4d2e51e575e

Hi,

So here I think the issue is that rpm-scratch-build requires an artifact called "repo" for all depends-on that are supposed to provide an artifact called "repo" (basically projects that have this rpm-scratch-build job attached).

Here it seems that some of the depends-on did not run the rpm-scratch-build so did not produced the "repo" artifact. I guess that the reason of the failure here. The error message is not human friendly, I'll see with Zuul devs upstream if we could improve this.

Also, just as a reminder, the depends-on artifacts won't be used as build require (as we build on Koji) but will only be exposed at runtime for the rpm-test job for instance.

This makes me think that we should remove the require: "repo" attribute for the job definition of rpm-scratch-build because the koji build will not use exposed "repo" artifacts. I'll merge a change in fedora-zuul-jobs-config and recheck here to test.

Build failed.

Warning:
Requirements ['repo'] not met by build defd1e2b60f6420faa59f4d2e51e575e
Requirements ['repo'] not met by build defd1e2b60f6420faa59f4d2e51e575e
Requirements ['repo'] not met by build defd1e2b60f6420faa59f4d2e51e575e

Also, just as a reminder, the depends-on artifacts won't be used as build require (as we build on Koji) but will only be exposed at runtime for the rpm-test job for instance.

Oh, IIRC on the DevConf talk there was a mockbuild showed somewhere, I assumed mock will be used once there are Depnds-On. Either way here we only need the updated packages on the CI, not during the build. Some of them failed to scratchbuild, may that be the problem?

Ok, I won't bother you with the detail of why the child jobs failed, but that seems normal. The require/provide feature of zuul is young an might need to some adjustment.

So here the solution is to manage to have all the depends-on PR to have generated a "repo" artifact (with a rpm-scratch-build job with success).

Working on it. Lot of the Pythons are quite broken after the recent gcc/glibc updates. Thanks for the CI!

Also, just as a reminder, the depends-on artifacts won't be used as build require (as we build on Koji) but will only be exposed at runtime for the rpm-test job for instance.

Oh, IIRC on the DevConf talk there was a mockbuild showed somewhere, I assumed mock will be used once there are Depnds-On. Either way here we only need the updated packages on the CI, not during the build. Some of them failed to scratchbuild, may that be the problem?

Yes the mockbuild role and job exists but it is not "exposed" yet because I'm trying to figure out a solution to have a generic rpm-build job smart enough to detect if a build requirement is part of the list of depends-on and decide if it should use a koji or mock build root. In the meantime we could use for some distgit the rpm-mock-build if the cross repo testing of build dependencies is a strong requirement.

@fbo assuming the depends-on PRs build but fail rpmlint, will this check work? EDIT: yes

Build succeeded.

The dependent PRs need reviews.

Build succeeded.

Build succeeded.

@churchyard great to see it worked ! I think the rpm-test job should display the list of packages installed on the test system, that way we'll be sure the dependent artifacts were well installed on the test system. Thus I've merged this https://pagure.io/fedora-zuul-jobs/pull-request/37 and if we recheck we should have a file named installed-packages.list in the job's artifacts.

Build failed.

The latest Zuul failure is not related to the changes here:

dnf list --installed > /home/zuul-worker/src/src.fedoraproject.org/rpms/python-setuptools/tests/artifacts/installed-packages.list
/bin/sh: /home/zuul-worker/src/src.fedoraproject.org/rpms/python-setuptools/tests/artifacts/installed-packages.list: Permission denied

Build failed.

A s is missing in pkg_resources.

(Turns out this doesn't do anything because setup.cfg has [options.packages.find] in exclude = *.tests)

Build failed.

Otherwise, LGTM. I smoke-tested with the dependent PRs

Turns out this doesn't do anything . Hmm. Let's get rid of it.

Oh, I thought it's a protection against upstream mistakes.
It might want a comment if that's the case.

1 new commit added

  • fixup! Upgrade to 45.2.0, no longer supports Python 2
2 years ago

3 new commits added

  • fixup! Upgrade to 45.2.0, no longer supports Python 2
  • Upgrade to 45.2.0, no longer supports Python 2
  • Clean up .gitignore
2 years ago

See my fixup commit for easier review. I've noticed one more thing related to pkg_resources.

Build succeeded.

2 new commits added

  • Upgrade to 45.2.0, no longer supports Python 2
  • Clean up .gitignore
2 years ago

Build succeeded.

Build succeeded.

All built (except jython). Running:

koji wait-repo f33-build --build pypy-7.3.0-3.fc33 --build pypy3-7.3.0-3.fc33 --build python27-2.7.17-3.fc33 --build python35-3.5.9-3.fc33 --build python36-3.6.10-3.fc33 --build python37-3.7.6-3.fc33 --build python3-3.8.2~rc2-2.fc33 --build python39-3.9.0~a3-2.fc33

@churchyard I was looking at installed-packages.list and don't see any dependent packages installed. The artifacts list in the rpm-test job inventory does not contains the depends-on and it seems to happen since you added the (built, building) flags next to the depends-on. I'd like to be sure about that so I'll rewrite the initial message to put the flags on the next line.

@churchyard Well I cannot edit it. Do you mind to try ?

Also, the CI job runs with not updated setuptools :(

python-setuptools-wheel.noarch                41.6.0-2.fc32

it seems that python-setuptools is not part of the required_packages in https://src.fedoraproject.org/rpms/python-setuptools/blob/master/f/tests/tests.yml

nope, the "Fedora CI" said that the tested RPMs are always installed. we can make it explicit if needed. See related: https://pagure.io/fedora-ci/general/issue/29

it seems that python-setuptools is not part of the required_packages in https://src.fedoraproject.org/rpms/python-setuptools/blob/master/f/tests/tests.yml

The listed packages depend on python-setuptools-wheel. Hence my assumption was that upon this PR test, python-setuptools-wheel is installed from this PR.

Build succeeded.

what is https://fedora.softwarefactory-project.io/zuul/build/394ee4c2f2b64043ad8ef112bfbe8984/log/zuul-info/inventory.yaml ?

This is the job inventory for the previous last rpm-test job.
A Zuul job is an ansible playbook. Zuul build an Ansible inventory for each job it run. In the inventory you have the job context.

Successfully waited 21:38 for pypy-7.3.0-3.fc33, pypy3-7.3.0-3.fc33, python27-2.7.17-3.fc33, python35-3.5.9-3.fc33, python36-3.6.10-3.fc33, python37-3.7.6-3.fc33, python3-3.8.2~rc2-2.fc33, and python39-3.9.0~a3-2.fc33 to appear in the f33-build repo

[citest]

@churchyard Well I cannot edit it. Do you mind to try ?

I was checking the logs but nope the flags seems to have not messed the zuul scheduler. The logs shows that all dependencies are marked as merged. That's why Zuul does not expose the dependents artifacts ... So if the depends-on packages are not available into rawhide yet then we won't have them available during rpm-test.

Build succeeded.

python34 virtualenv/tox is broken, because it prefers the noncompatible wheel over the once from ensurepip. However given https://fedoraproject.org/wiki/Changes/RetirePython34 we can simply retire it now.

Build succeeded.

1 new commit added

  • Fedora CI: Replace Python 3.4 with 3.9
2 years ago

Build succeeded.

However given https://fedoraproject.org/wiki/Changes/RetirePython34 we can simply retire it now.

If we want to preserve python3.4 for now, the patch in virtualenv might be trivial.

See https://github.com/pypa/virtualenv/blob/16.7.10/virtualenv.py#L999 for similar code.

3 new commits added

  • Fedora CI: Add Python 3.9
  • Upgrade to 45.2.0, no longer supports Python 2
  • Clean up .gitignore
2 years ago

This change depends on a change that failed to merge.

This change depends on a change that failed to merge.

This happened after adding https://src.fedoraproject.org/rpms/python-virtualenv/pull-request/17 - that repo is not configured for zuul IIRC.

The listed packages depend on python-setuptools-wheel. Hence my assumption was that upon this PR test, python-setuptools-wheel is installed from this PR.

Followup: https://pagure.io/fedora-zuul-jobs/issue/40

Build failed.

FTR, waiting for python-virtualenv-16.7.10-1.fc33 to hit the buildroot for a hopefully final Fedora CI test.

Successfully waited 81:22 for python-virtualenv-16.7.10-1.fc33 to appear in the f33-build repo

[citest]

Pull-Request has been merged by churchyard

2 years ago
Metadata
Flags
Zuul
failure
Jobs result is failure
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
failure
Jobs result is failure
2 years ago
simple-koji-ci
pending
New build in progress for ac9f70a3
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
success
Jobs result is success
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
simple-koji-ci
pending
New build in progress for 8d6f4e8e
2 years ago
Zuul
success
Jobs result is success
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
success
Jobs result is success
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
success
Jobs result is success
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
success
Jobs result is success
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
success
Jobs result is success
2 years ago
simple-koji-ci
pending
New build in progress for bd7e1f72
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
success
Jobs result is success
2 years ago
simple-koji-ci
pending
New build in progress for 3d7368a3
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
failure
Jobs result is failure
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
failure
Jobs result is failure
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
failure
Jobs result is failure
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
success
Jobs result is success
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
success
Jobs result is success
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
success
Jobs result is success
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
failure
Jobs result is failure
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
failure
Jobs result is failure
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
Zuul
failure
Jobs result is failure
2 years ago
Zuul
pending
Jobs result is pending
2 years ago
simple-koji-ci
pending
New build in progress for 6f7da3bf
2 years ago
Fedora CI
success
Package tests for ac9f70a3: passed
2 years ago
simple-koji-ci
pending
Build in progress for 19e4657c
2 years ago