summaryrefslogtreecommitdiff
path: root/pkgs/development/interpreters/python/hooks/python-catch-conflicts-hook.sh
AgeCommit message (Collapse)Author
2024-09-03treewide: handle preDistPhases __structuredAttrs-agnosticallyYueh-Shun Li
Always specify the preDistPhases attribute as a list instead of a string. Append elements to the preDistPhases Bash variable using appendToVar instead of string or Bash array concatenation. Handle element insertion before a specific element using string substitution as before, but handle both structured and unstructured attributes.
2022-09-20Revert "Revert "buildPython*: wrap setuptools in hook for catching conflicts""Frederik Rietdijk
Most packages were fixed up on python-unstable branch. This reverts commit 3ff2d9362ce18cab4bebd6ebf17892e431df34e2.
2022-09-19Revert "buildPython*: wrap setuptools in hook for catching conflicts"Frederik Rietdijk
Revert for now and fix on python-unstable branch. This reverts commit 13bb0f49f7afe8296452d70e7782ac1d67b064da.
2022-09-13buildPython*: wrap setuptools in hook for catching conflictsFrederik Rietdijk
By default buildPython* runs a hook for detecting conflicting packages. This hook needs pkg_resources which is part of setuptools. Before this commit, setuptools was simply added to the build. This meant that when setuptools was forgotten to be added to the build, the build and installation would still succeed because of this package from the hook. During runtime (and cross-compilation) one would notice the missing package.
2019-11-01treewide: Make still dont* Variables are optional in most casesJohn Ericson
Go beyond the obvious setup hooks now, with a bit of sed, with a skipped case: - cc-wrapper's `dontlink`, because it already is handled. Also, in nix files escaping was manually added. EMP
2019-09-06Split buildPythonPackage into setup hooksFrederik Rietdijk
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`).