175 Commits

Author SHA1 Message Date
Sandro
1a8b2098ae treewide: fix python makeWrapperArgs with __structuredAttrs (#575801) 2026-10-28 00:46:46 +00:00
Matt Sturgeon
b80ce62850 buildPythonPackage: move assertions to meta.problems to optimise and expand coverage (#576379) 2026-10-27 20:50:09 +00:00
Yueh-Shun Li
d11b0ac1c4 buildPythonPackage: handle checkPhase -> installCheckPhase with a dynamic nulling attribute
Avoid unnecessary set merging.
2026-10-27 19:04:16 +08:00
Yueh-Shun Li
3383efb570 buildPythonPackage: move enabledTest* assertions to meta.problems
And expand to cover finalAttrs.

Co-authored-by: Eman Resu <elevenaka11@gmail.com>
Co-authored-by: Matt Sturgeon <matt@sturgeon.me.uk>
2026-10-27 19:04:15 +08:00
Yueh-Shun Li
91c11834a8 buildPythonPackages: extend pytestFlagsArray deprecation error to overrideAttrs
With the help of `meta.problems`.

Add position only when pytestFlagsArray are also non-empty
in buildPythonPackage/overridePythonAttrs arguments.
2026-10-27 19:04:15 +08:00
Yueh-Shun Li
ae525ed194 buildPythonPackage: mark pytestFlagsArray deprecation with meta.problems
Mark existing pytestFlagsArray in args with
`meta.problems.buildPythonPackage-deprecated-pytestFlagsArray`.

Drop the improvised `deprecatedFlagNotEmpty`.
2026-10-27 19:04:07 +08:00
Rine Amakawa
6b01148e2e treewide: fix python makeWrapperArgs with __structuredAttrs
buildPythonPackage and buildPythonApplication now default to
__structuredAttrs = true, so makeWrapperArgs reaches wrapPythonPrograms
as a real bash array. Elements are no longer word-split or
shell-expanded, which breaks three common patterns:

- several arguments packed into one string, such as
  "--prefix PATH : ${...}", which makeWrapper rejects with
  "makeWrapper doesn't understand the arg ..."
- "\${gappsWrapperArgs[@]}" or "\${qtWrapperArgs[@]}" as list
  elements, which also fail the build
- build-time shell variables ($out, $PYTHONPATH, $GI_TYPELIB_PATH, ...)
  and shell quoting inside elements. These build fine but end up as
  literal strings in the wrapper, e.g. beets got
  export GI_TYPELIB_PATH='$GI_TYPELIB_PATH', and gam's --run lines
  became single-quoted commands that abort the wrapper.

Split packed strings into one element per argument, append the
gapps/qt wrapper args in preFixup, use placeholder "out" instead of
$out, move other build-time variables into preFixup, and drop the
now-literal quotes.

Also fix the makeWrapperArgs example in the python propagated-inputs
warning.

Assisted-by: Claude Code (Claude Opus 5.5)
2026-10-27 14:36:08 +09:00
Yueh-Shun Li
3802bc4972 buildPythonPackage: prefix internal problem messages with finalAttrs.name
Change meta.problems.buildPythonPacakge-internal-* prefix from
`buildPythonPackage: ` to `${finalAttrs.name}: `
The latter is easier to locate,
and the problem name already shows the former.
2026-10-21 19:19:03 +08:00
Yueh-Shun Li
be9681fd49 buildPythonPackage: fix pytestFlagsArray error message with null position 2026-10-21 19:18:58 +08:00
nixpkgs-ci[bot]
bdf2d07fa2 Merge master into staging-next 2026-10-15 06:15:44 +00:00
Yueh-Shun Li
85831189d6 buildPythonPackage: throw against overriding disabled via overridePythonAttrs
Add
meta.problems.buildPythonPackage-internal-disabled-overridePythonAttrs
when <pkg>.overridePythonAttrs taking deprecated argument disabled.

buildPythonPackage and buildPythonApplication
still takes argument disabled,
transformed with makeOverridablePythonPackages.

Co-authored-by: Matt Sturgeon <matt@sturgeon.me.uk>
2026-10-14 23:09:20 +08:00
Yueh-Shun Li
20af433782 buildPythonPackage: prioritise meta.problems over argument disabled
When meta.problems is specified, either by calling buildPythonPackage
or by overriding with <pkg>.overridePythonAttrs,
prioritise the presence of meta.problems.unsupportedPython
over the argument disabled.
2026-10-13 23:51:01 +08:00
nixpkgs-ci[bot]
04f7e31a27 Merge master into staging-next 2026-10-13 12:15:32 +00:00
Yueh-Shun Li
888ebaf057 buildPythonPackage: remove stdenv compatibility layer; guard w/ meta.problems
Remove overrideStdenvCompat from python-packages-base.nix

Add meta.problems.buildPythonPackage-internal-stdenv
when getting the stdenv argument
to make it an package evaluation error.

Add a test case in tests.overriding
(overridePythonAttrs-deprecated-arg-stdenv)
asserting that the problem appears when overriding with
<pkg>overridePythonAttrs with the deprecated stdenv argument.
2026-10-13 18:22:01 +08:00
Yueh-Shun Li
e26306bd97 buildPythonPackage: add comment to meta.problems.unsupportedPython 2026-10-13 18:18:10 +08:00
Robert Schütz
a8383b6332 python3Packages.buildPythonPackage: default to __structuredAttrs = true 2026-10-08 18:49:48 +02:00
Robert Schütz
7e728a8fda python3Packages.pythonMetadataCheckHook: skip only version comparison for unstable version
This way we still compare the pname to the name in METADATA.
2026-10-08 18:49:38 +02:00
Yueh-Shun Li
bfe6d2cef1 buildPythonPackage: mark unsupported interpreter with meta.problems.unsupportedPython (#540720) 2026-10-05 13:32:24 +00:00
Yueh-Shun Li
8d49470421 buildPythonPackage: make passthru.disabled reference finalAttrs ? meta.problems.unsupportedPython 2026-09-29 23:17:02 +08:00
Eman Resu
ec07ae88e0 buildPythonPackage: only override bootstrap hooks once 2026-07-28 13:49:18 -04:00
Eman Resu
5c483d4767 various: partially apply prefix/suffix/infix checks (#543869) 2026-07-26 21:41:24 +00:00
Eman Resu
ac2d0c5710 python3,python2: partially apply hasSuffix 2026-07-20 10:30:08 -04:00
Yueh-Shun Li
c502237b42 buildPythonPackage: implement disabled with meta.problems.unsupportedPython
Implement the `disabled` argument behaviour with
meta.problems.unsupportedPython
instead of the ugly and buggy `lib.extendDerivation`.

For compatibility purposes,
keep the `passthru.disabled` attribute's overridable with overrideAttrs
while giving higher precedence to direct specification/overriding of
`meta.problems.unsupportedPython`,
making this commit safe to backport.
2026-07-11 23:12:54 +08:00
Robert Schütz
006c7936a2 python3Packages.pythonMetadataCheckHook: init 2026-07-08 19:20:37 -07:00
adisbladis
54bea898fa python3Packages.buildPythonPackage: Don't copy input list when checking inputs 2026-05-21 15:08:32 +12:00
Eman Resu
0f027769b2 buildPythonPackage: use nullable attr keys instead 2026-05-11 21:54:29 -04:00
Eman Resu
b57eb40ea7 buildPythonPackage: avoid validating python itself 2026-05-11 21:38:03 -04:00
Eman Resu
ce3dc05a4c buildPythonPackage: save a function call 2026-05-11 21:38:03 -04:00
Yueh-Shun Li
82da9cf45c python3Packages.buildPythonPackage: ban pytestFlagsArray 2026-04-27 03:59:04 +08:00
Yueh-Shun Li
521c09a80b buildPythonPackage: overrideStdenvCompat: show position in its warning message (#481980) 2026-04-26 10:46:40 +00:00
nixpkgs-ci[bot]
5bbb1b1e97 Merge staging-next into staging 2026-02-15 18:08:20 +00:00
Martin Weinelt
b79da2786f Merge remote-tracking branch 'origin/master' into staging-next
Conflicts:
	pkgs/development/python-modules/bundlewrap/default.nix
	pkgs/development/python-modules/coverage/default.nix
	pkgs/development/python-modules/h5netcdf/default.nix
	pkgs/development/python-modules/hypothesis/default.nix
	pkgs/development/python-modules/numba/default.nix
	pkgs/development/python-modules/optype/default.nix
	pkgs/development/python-modules/setuptools-git-versioning/default.nix
	pkgs/development/python-modules/sphinx/default.nix
2026-02-15 16:17:41 +01:00
Martin Weinelt
8ea6bde88d treewide: prune pythonOlder 3.10/3.11
This is a post 3.10 removal cleanup.
2026-02-15 04:33:54 +01:00
Stefan Frijters
2d73bd4b51 python3Packages.mkPythonDerivation: move LANG into env for structuredAttrs 2026-02-13 00:23:37 +01:00
Yueh-Shun Li
773f5cc8c8 buildPythonPackage: overrideStdenvCompat: add position to warning message
Co-authored-by: Matt Sturgeon <matt@sturgeon.me.uk>
2026-01-27 10:46:17 +00:00
Yueh-Shun Li
f83867d2d4 buildPythonPackage: comment on passthru.__stdenvPythonCompat 2026-01-20 23:17:19 +08:00
nixpkgs-ci[bot]
635cb3e856 Merge staging-next into staging 2026-01-20 12:08:50 +00:00
Yueh-Shun Li
de48b6a845 buildPython*: extend overrideStdenvCompat to fixed-point arguments
with `passthru.__stdenvPythonCompat`

Co-authored-by: Matt Sturgeon <matt@sturgeon.me.uk>
2026-01-19 14:29:47 +08:00
Martin Weinelt
7465728763 buildPython*: run runtime dependency check hook for wheels 2026-01-14 21:58:06 +01:00
Martin Weinelt
8b9ad97235 buildPython*: support fixed-point arguments (#271387) 2026-01-04 20:51:07 +00:00
dmyTRUEk
2c7ad72241 mk-python-derivation: fix typo 2026-01-01 14:13:59 +02:00
Yueh-Shun Li
7e1f654883 buildPython*: format expressions 2025-12-18 17:55:00 +08:00
Yueh-Shun Li
0969c66247 buildPython*: support fixed-point arguments via lib.extendMkDerivation
Postpone formatting to minimize diff and to ease merging.
2025-12-18 17:55:00 +08:00
Yueh-Shun Li
353eec600b buildPythonPackage: chore: remove unnecessary set update 2025-12-17 22:17:22 +08:00
Yueh-Shun Li
c4e3b67afb buildPython*: allow stdenv customization through <function>.override 2025-10-23 14:51:18 +08:00
Yueh-Shun Li
bc122a602a python3Packages.buildPythonPackage: remove ineffective outputs cleanAttrs 2025-09-29 01:55:06 +08:00
Yueh-Shun Li
42ba377ba8 python3Packages.buildPythonPackage: make passthru.{dependencies,build-system} overridable 2025-09-29 01:55:06 +08:00
Yueh-Shun Li
67d2a84468 python3Packages.buildPythonPackage: pass passthru.dependencies empty or not 2025-09-29 01:55:05 +08:00
Yueh-Shun Li
e2f75c6f5e python3Packages.buildPythonPackage: use pythonRelaxDepsHook iff related attributes non-empty 2025-09-29 01:55:05 +08:00
Yueh-Shun Li
e25f3c9103 python3Packages.buildPythonPackage: make src overridable 2025-09-29 01:55:04 +08:00