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

cpython: 3.9.6 -> 3.9.7; 3.8.11 -> 3.8.12; 3.7.11-> 3.7.12; 3.6.14 -> 3.6.15; 3.10.0-rc1 -> 3.10.0 #136254

Merged
merged 11 commits into from
Oct 5, 2021

Conversation

mweinelt
Copy link
Member

@mweinelt mweinelt commented Aug 31, 2021

Motivation for this change

https://docs.python.org/release/3.9.7/whatsnew/changelog.html#changelog
https://docs.python.org/release/3.8.12/whatsnew/changelog.html#changelog

https://docs.python.org/release/3.6.15/whatsnew/changelog.html#python-3-6-15-final
https://docs.python.org/release/3.7.12/whatsnew/changelog.html#python-3-7-12-final

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • 21.11 Release Notes (or backporting 21.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

@mweinelt
Copy link
Member Author

@ofborg build python38.tests python39.tests

Copy link
Contributor

@jonringer jonringer left a comment

Choose a reason for hiding this comment

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

diff LGTM

Copy link
Contributor

@jonringer jonringer left a comment

Choose a reason for hiding this comment

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

LGTM

Result of nixpkgs-review pr 136254 run on x86_64-linux 1

2 packages built:
  • python38Packages.requests
  • python39Packages.requests

@bergkvist
Copy link
Member

bergkvist commented Sep 8, 2021

By merging this PR - the following issue (on macOS Big Sur) will be resolved: #105038

bpo-44689: ctypes.util.find_library() now works correctly on macOS 11 Big Sur even if Python is built on an older version of macOS. Previously, when built on older macOS systems, find_library was not able to find macOS system libraries when running on Big Sur due to changes in how system libraries are stored.

Both Python 3.8.12 and Python 3.9.7 contain this patch (python/cpython#27251).

@mweinelt mweinelt changed the title python38: 3.8.11 -> 3.8.12; python39: 3.9.6 -> 3.9.7 cpython: 3.9.6 -> 3.9.7; 3.8.11 -> 3.8.12; 3.7.11-> 3.7.12; 3.6.14 -> 3.6.15 Sep 10, 2021
@mweinelt
Copy link
Member Author

Two more updates.

python36.tests won't run because our numpy version requires at least python37.

@FRidh
Copy link
Member

FRidh commented Sep 13, 2021

Note 3.6 will be EOL 2021-12, and will thus need to be removed for NixOS 21.11.

I suggest changing the package to something else than numpy such as py or setuptools.

@jonringer
Copy link
Contributor

Note 3.6 will be EOL 2021-12, and will thus need to be removed for NixOS 21.11.

I suggest changing the package to something else than numpy such as py or setuptools.

Since python36 is essentially deprecated at this point (no longer being recursed into for derivations), I think it's okay to verify that requests still builds, and call it good. Very few people should be using python36 at this point

@jonringer
Copy link
Contributor

unfortunately, python36Packages.requests seems to fail because of a failure in pytest-xdist

@mweinelt mweinelt changed the title cpython: 3.9.6 -> 3.9.7; 3.8.11 -> 3.8.12; 3.7.11-> 3.7.12; 3.6.14 -> 3.6.15 cpython: 3.9.6 -> 3.9.7; 3.8.11 -> 3.8.12; 3.7.11-> 3.7.12; 3.6.14 -> 3.6.15; 3.10.0-rc1 -> 3.10.0-rc2 Sep 13, 2021
@mweinelt mweinelt added the 1.severity: security Issues which raise a security issue, or PRs that fix one label Sep 14, 2021
@mweinelt
Copy link
Member Author

mweinelt commented Sep 14, 2021

Marked as security-relevant because of

bpo-43124: Made the internal putcmd function in smtplib sanitize input for presence of \r and \n characters to avoid (unlikely) command injection.

@github-actions github-actions bot added the 8.has: documentation This PR adds or changes documentation label Oct 1, 2021
@mweinelt
Copy link
Member Author

mweinelt commented Oct 1, 2021

Working on removing Python 3.6 now, since we are nearing the release (8 weeks).

pkgs/top-level/all-packages.nix
19735-  doh-proxy = callPackage ../servers/dns/doh-proxy {
19736:    python3Packages = python36Packages;
--
25220-    # see https://github.com/NixOS/nixpkgs/issues/60498
25221:    python3Packages = python36Packages;
--
30589-  caffe2 = callPackage ../development/libraries/science/math/caffe2 (rec {
30590:    inherit (python36Packages) python future six numpy pydot;
30591-    protobuf = protobuf3_1;
30592:    python-protobuf = python36Packages.protobuf.override { inherit protobuf; };

pkgs/applications/misc/plover/default.nix
1:{ lib, fetchurl, python27Packages, python36Packages, wmctrl,
--
26-
27:  dev = with python36Packages; mkDerivationWith buildPythonPackage rec {

pkgs/applications/misc/multibootusb/default.nix
2-  coreutils, gnugrep, which, gnused, e2fsprogs, autoPatchelfHook, gptfdisk,
3:  python36Packages, qt5, runtimeShell, lib, util-linux, wrapQtAppsHook }:
--
15-
16:python36Packages.buildPythonApplication rec {
--
44-    libxcb
45:    python36Packages.python
--
61-  pythonPath = [
62:    python36Packages.dbus-python
63:    python36Packages.pyqt5
64:    python36Packages.pytest-shutil
65:    python36Packages.pyudev
66:    python36Packages.six
--
97-      # Then, add the installed scripts/ directory to the python path
98:      --prefix "PYTHONPATH" ":" "$out/lib/${python36Packages.python.libPrefix}/site-packages"

Wondering if these will cause eval errors. Multibootusb is marked as broken and plover requires python2Packages.pillow, which is marked as insecure.

@ofborg ofborg bot added 8.has: clean-up 8.has: package (new) This PR adds a new package labels Oct 3, 2021
@mweinelt
Copy link
Member Author

mweinelt commented Oct 3, 2021

That's it, no more references to python36Packages.

@mweinelt
Copy link
Member Author

mweinelt commented Oct 3, 2021

@GrahamcOfBorg build python39.tests python38.tests python37.tests

@mweinelt mweinelt changed the title cpython: 3.9.6 -> 3.9.7; 3.8.11 -> 3.8.12; 3.7.11-> 3.7.12; 3.6.14 -> 3.6.15; 3.10.0-rc1 -> 3.10.0-rc2 cpython: 3.9.6 -> 3.9.7; 3.8.11 -> 3.8.12; 3.7.11-> 3.7.12; 3.6.14 -> 3.6.15; 3.10.0-rc1 -> 3.10.0 Oct 5, 2021
@mweinelt mweinelt merged commit 87e4319 into NixOS:staging Oct 5, 2021
@mweinelt mweinelt deleted the cpython branch October 5, 2021 14:09
@mweinelt mweinelt mentioned this pull request Oct 5, 2021
12 tasks
@trofi
Copy link
Contributor

trofi commented Oct 5, 2021

Bisect says d003f75 "python39: 3.9.6 -> 3.9.7" it broke python3Packages.argh tests:

=========================== short test summary info ============================
FAILED test/test_integration.py::test_invalid_choice - assert False
FAILED test/test_integration.py::test_explicit_cmd_name - assert False

_____________________________ test_invalid_choice ______________________________

    def test_invalid_choice():
        def cmd(args):
            return 1

        # root level command

        p = DebugArghParser()
        p.add_commands([cmd])

>       assert run(p, 'bar', exit=True).startswith('invalid choice')
E       assert False
E        +  where False = <built-in method startswith of str object at 0x7fffe89b72d0>('invalid choice')
E        +    where <built-in method startswith of str object at 0x7fffe89b72d0> = "argument {cmd}: invalid choice: 'bar' (choose from 'cmd')".startswith
E        +      where "argument {cmd}: invalid choice: 'bar' (choose from 'cmd')" = run(DebugArghParser(prog='py.test', usage=None, description=None, formatter_class=<class 'argh.constants.CustomFormatter'>, conflict_handler='error', add_help=True), 'bar', exit=True)

test/test_integration.py:380: AssertionError

@trofi
Copy link
Contributor

trofi commented Oct 6, 2021

Filed upstream report as neithere/argh#148

@trofi
Copy link
Contributor

trofi commented Oct 7, 2021

Filed another upstream report at aio-libs/aiohttp#6066

@jktjkt
Copy link
Contributor

jktjkt commented Oct 16, 2021

There are two for freezegun:

tricktron pushed a commit to tricktron/nixpkgs that referenced this pull request Oct 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1.severity: security Issues which raise a security issue, or PRs that fix one 6.topic: python 8.has: clean-up 8.has: documentation This PR adds or changes documentation 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 501+ 10.rebuild-darwin: 5001+ 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild 10.rebuild-linux: 501+ 10.rebuild-linux: 5001+ 10.rebuild-linux-stdenv This PR causes stdenv to rebuild
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants