Commit graph

53 commits

Author SHA1 Message Date
Frederik Rietdijk c7176d55ac python2.pkgs.pip: fix regression in 20.2 2020-11-05 16:09:24 +01:00
Frederik Rietdijk 61a04f735a python3.pkgs.pip: 20.1.1 -> 20.2.4
Reproducible builds of pyproject projects using pip is resolved.

Fixes https://github.com/pypa/pip/issues/7808
Fixes https://github.com/NixOS/nixpkgs/issues/81441

The more recent c409f69480 caused trouble
with pyproject troubles and had to be reverted anyway.
https://github.com/NixOS/nixpkgs/pull/102222#issuecomment-722380794

Revert "pythonPackages.pip: make reproducible (#102222)"

This reverts commit c409f69480.

Revert "python3Packages.pip: allow setting reproducible temporary directory via NIX_PIP_INSTALL_TMPDIR"

This reverts commit aedbade43e.
2020-11-05 15:07:21 +01:00
zimbatm c409f69480
pythonPackages.pip: make reproducible (#102222)
The previous attempt wasn't covering all of the bases. It relied on
invoking that pip-install-hook, and didn't apply to pip itself.

The core issue is that the generated .pyc files embed some of the
temporary paths, which are randomly generated. See
https://r13y.com/diff/bf8c3ca3148ebff9ecf41f294cc60b9f209c006d49699e356969ff32d736f1c6-8806a7cca91fdd300e48736bfcd57c4d0b54c1cc2fd61609f35143170862b59c.html

In this new attempt, the approach is to patch the TempFile
implementation directly, so that it creates stable temporary
directories. We also assume that if SOURCE_DATE_EPOCH is set, we are in
a scenario where reproducible builds are desirable and enter that
branch.

See also https://github.com/pypa/pip/issues/7808
2020-10-31 21:24:36 +01:00
Frederik Rietdijk 56727dc1ff Python: setuptools/wheel/pip now bootstrap from source
Since wheel support was introduced in 2015 we always relied on pre-built
wheels for bootstrapping. Now, we can bootstrap directly from the
sources of these packages in git.

The `bootstrapped-pip` packages is used to build `pip`, `setuptools` and `wheel`,
after which those packages are used to build everything else.

Note that when building `bootstrapped-pip` some errors are shown.
These are not important, the build actually does succeed and work as intended.
2019-10-20 19:48:00 +02:00
Frederik Rietdijk 6a9de0eb79 python.pkgs.bootstrapped-pip: 19.3 -> 19.3.1 2019-10-18 12:41:53 +02:00
Frederik Rietdijk 7728edab00 python.pkgs.bootstrapped-pip: upgrade pip and setuptools 2019-10-18 09:53:55 +02:00
Frederik Rietdijk dc95e17fc2 python: bootstrapped-pip: update wheel, setuptools, pip
wheel 33.4 -> 33.6
setuptools 41.0.1 -> 42.2.0
pip 19.1.1 -> 19.2.3
2019-09-06 15:18:45 +02:00
Frederik Rietdijk f7e28bf5d8 Split buildPythonPackage into setup hooks
This commit splits the `buildPythonPackage` into multiple setup hooks.

Generally, Python packages are built from source to wheels using `setuptools`.
The wheels are then installed with `pip`. Tests were often called with
`python setup.py test` but this is less common nowadays. Most projects
now use a different entry point for running tests, typically `pytest`
or `nosetests`.

Since the wheel format was introduced more tools were built to generate these,
e.g. `flit`. Since PEP 517 is provisionally accepted, defining a build-system
independent format (`pyproject.toml`), `pip` can now use that format to
execute the correct build-system.

In the past I've added support for PEP 517 (`pyproject`) to the Python
builder, resulting in a now rather large builder. Furthermore, it was not possible
to reuse components elsewhere. Therefore, the builder is now split into multiple
setup hooks.

The `setuptoolsCheckHook` is included now by default but in time it should
be removed from `buildPythonPackage` to make it easier to use another hook
(curently one has to pass in `dontUseSetuptoolsCheck`).
2019-09-06 15:18:45 +02:00
Frederik Rietdijk 9f57b6680a python.pkgs.bootstrapped-pip: updates
wheel: 0.33.1 -> 0.33.4
setuptools: 41.0.0 -> 41.0.1
pip: 19.0.3 -> 19.1.1
2019-06-15 08:46:32 +02:00
Frederik Rietdijk 8ae35163f7 pythonPackages.bootstrapped-pip: setuptools 40.8.0 -> 41.0.0 2019-04-18 12:42:43 +02:00
Frederik Rietdijk 8ce693e81b python.pkgs.bootstrapped-pip: pip 19.0.2 -> 19.0.3, wheel 0.33.0 -> 0.33.1 2019-02-23 20:05:18 +01:00
Frederik Rietdijk e4524dc51c python.pkgs.bootstrapped-pip: wheel 0.32.2 -> 0.33.0, setuptools 40.6.3 -> 40.8.0, pip 18.1 -> 19.0.2 2019-02-17 14:40:48 +01:00
Frederik Rietdijk fe348a1a7d python.pkgs.bootstrapped-pip: setuptools 40.6.2 -> 40.6.3 2019-01-18 09:37:10 +01:00
Frederik Rietdijk c02b47b625 python.pkgs.bootstrapped-pip: setuptools: 40.4.3 -> 40.6.2 2018-12-03 16:50:40 +01:00
Frederik Rietdijk 9450674e06 python.pkgs.bootstrapped-pip: wheel 0.32.1 -> 0.32.2 2018-10-24 20:05:44 +02:00
Frederik Rietdijk b05a5969fc python.pkgs.bootstrapped-pip: update pip, setuptools and wheel 2018-10-13 09:50:17 +02:00
Frederik Rietdijk f68a5ec9b5 pythonPackages.bootstrapped-pip: setuptools: 40.0.0 -> 40.2.0 2018-08-25 18:07:19 +02:00
Frederik Rietdijk 20f3647c2f python.pkgs.bootstrapped-pip: update pip and setuptools 2018-07-26 12:43:14 +02:00
volth 52f53c69ce pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
Frederik Rietdijk ccd8ac2286 python.pkgs.bootstrapped-pip: setuptools 39.0.1 -> 39.2.0 2018-06-02 13:44:39 +02:00
Frederik Rietdijk 0b9ec1e629 python.pkgs.bootstrapped-pip: wheel 0.31.0 -> 0.31.1 2018-06-02 13:44:39 +02:00
Robert Schütz f13cf52a84 python.pkgs.bootstrapped-pip: wheel: 0.30.0 -> 0.31.0 2018-05-05 07:36:39 +02:00
Robert Schütz b99d7727b9 python.pkgs.bootstrapped-pip: remove pkg_resources patch 2018-05-05 07:27:10 +02:00
Frederik Rietdijk 6d2dd33070 python.pkgs.bootstrapped-pip: 9.0.3 -> 10.0.1 2018-04-21 08:10:24 +02:00
Frederik Rietdijk e450ce6b7f python.pkgs.bootstrapped-pip: pip 9.0.1 -> 9.0.3 , setuptools 38.4.1 -> 39.0.1 2018-04-08 11:36:07 +02:00
Frederik Rietdijk 55ef50c257 python.pkgs.bootstrapped-pip: setuptools 38.4.0 -> 38.4.1 2018-02-26 19:06:01 +01:00
Will Dietz 4e80b56c3c bootstrapped-pip: fix for cross (nativeBuildInputs) 2018-01-22 17:19:03 -06:00
Frederik Rietdijk 87340d32bb python.pkgs.bootstrapped-pip update setuptools 38.2.5 -> 38.4.0 2018-01-07 09:47:15 +01:00
Frederik Rietdijk d3b85a4607 python.pkgs.setuptools: 38.2.3 -> 38.2.5 2017-12-31 11:01:56 +01:00
Spencer Baugh 70c1899768 python.pkgs.setuptools: 36.7.1 -> 38.2.3 2017-12-07 14:14:15 +01:00
Frederik Rietdijk 24b7b3e49f python.pkgs.setuptools: 36.4.0/36.6.0 -> 36.7.1 2017-11-23 15:11:03 +01:00
Frederik Rietdijk 23ad2b2e7a python.pkgs.bootstrapped-pip: fix hash
Hash was forgotten in
a26ae760e2.
The newer version of pkg_resources, 36.4.0, is actually incomplete.
Therefore, let's stick with the older version which didn't cause any
issues.
2017-10-07 12:57:10 +02:00
Frederik Rietdijk 88367b1e78 python.pkgs.wheel: 0.29.0 -> 0.30.0 2017-09-13 09:03:09 +02:00
Frederik Rietdijk a26ae760e2 python.pkgs.setuptools: upgrade to 36.4.0 2017-09-07 15:06:22 +02:00
Frederik Rietdijk 3b83c23012 python.pkgs.bootstrapped-pip: upgrade pkg_resources, fixes #26392
pip 9.0.1 vendors a version of setuptools/pkg_resources which has been
fixed in setuptools/pkg_resources but not yet in pip. Because we're now
facing this issue with nox, we update pkg_resources to the version we
also have in setuptools. Let's cross our fingers this will work without
breaking other stuff.
2017-06-07 17:29:23 +02:00
Frederik Rietdijk 76e082922f python.pkgs.bootstripped-pip: remove obsolete argparse code
because we no longer have Python 2.6.
2017-06-06 14:42:10 +02:00
Frederik Rietdijk bdd3f30739 python.pkgs.bootstrapped-pip: update setuptools to 36.0.1 2017-06-01 18:24:58 +02:00
Frederik Rietdijk 47d4575255 pythonPackages.setuptools: 28.8.0 -> 30.2.0 2016-12-05 17:33:21 +01:00
Frederik Rietdijk 27a6d61881 pythonPackages.pip: 8.1.2 -> 9.0.1 2016-11-15 00:05:56 +01:00
Frederik Rietdijk d83d2ba4f3 pythonPackages.setuptools: 26.1.1 -> 28.8.0 2016-11-15 00:05:56 +01:00
Frederik Rietdijk 321e073629 Python: bootstrapped-pip: use python.libPrefix in name
See 4de7cbdf04
2016-10-21 14:04:16 +02:00
Vladimír Čunát 4de7cbdf04 pythonPackages.pip: do not name it python-*
Fixes #19691.  Feel free to find a beter naming.
2016-10-20 17:59:31 +02:00
Frederik Rietdijk 9a851907a8 pythonPackages.setuptools: 19.4 -> 26.1.1 2016-09-01 16:16:31 +02:00
Jude Taylor 582fef1299 fix pip URL 2016-05-12 13:55:40 -07:00
Frederik Rietdijk 5d68baa8db Python bootstrapped-pip: 8.1.1 -> 8.1.2 2016-05-12 14:27:51 +02:00
Frederik Rietdijk 58a65c013d python.bootstrapped-pip: 8.0.2 -> 8.1.1 2016-03-28 13:35:46 +02:00
Domen Kožar 9c274b4bef bootstrapped-pip: support Python 2.6 2016-03-24 15:44:34 +00:00
Frederik Rietdijk 7ddd3a0d30 python bootstrapped-pip: wheel 0.26.0 -> 0.29.0 2016-02-08 20:47:23 +01:00
Frederik Rietdijk e552ad11e3 python bootstrapped-pip: pip 7.1.2 -> 8.0.2 2016-02-08 20:41:54 +01:00
Frederik Rietdijk e0d0f8dbd2 pythonPackages.setuptools and bootstrapped-pip: 18.2 -> 19.4
Update to latest setuptools. Latest setuptools will always try to run tests.
This can cause some very vague errors. We now need to fix all packages where we do not
invoke the correct test runner.
2016-01-24 14:34:01 +01:00