Skip to content

fetchFromGitProvider: init (optional dynamically switchable after <pkg>.overrideAttrs)#462034

Draft
ShamrockLee wants to merge 26 commits intoNixOS:masterfrom
ShamrockLee:fetchgitprovider-always-pass
Draft

fetchFromGitProvider: init (optional dynamically switchable after <pkg>.overrideAttrs)#462034
ShamrockLee wants to merge 26 commits intoNixOS:masterfrom
ShamrockLee:fetchgitprovider-always-pass

Conversation

@ShamrockLee
Copy link
Contributor

@ShamrockLee ShamrockLee commented Nov 15, 2025

This PR introduces fetchFromGitProvider, a general foundation for all other fetchFrom<Git hosting provider> constructors.

Not only can it choose between fetchgit (for Git-related features) and fetchgit (for hash stability) automatically, but it can optionally switch between fetchgit and fetchzip dynamically after <pkg>.overrideAttrs overriding based on the overridden arguments.

Such a black magic depends on the fact that fetchurl, fetchzip, and fetchgit pass arguments unconditionally (i.e., without the lib.optionalAttrs part of stdenv.mkDerivation ({ ... } // lib.optionalAttrs myCondition { ... })).
By making fetchgithub pass unconditionally to fetchgit, fetchzip, and stdenvNoCC.mkDerivation, dynamic switching is achievable.
The unconditional passing to stdenvNoCC.mkDerivation uses null as the generic hole-filling default value, and the unconditional passing to fetchgit is done in a depending PR listed below.

Depending PRs:

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

Add a 👍 reaction to pull requests you find important.

@ShamrockLee ShamrockLee changed the title fetchGitProvider: init fetchFromGitProvider: init Nov 15, 2025
@ShamrockLee ShamrockLee force-pushed the fetchgitprovider-always-pass branch 3 times, most recently from 24aed81 to c4bbde3 Compare November 15, 2025 22:10
@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 6.topic: fetch Fetchers (e.g. fetchgit, fetchsvn, ...) 6.topic: stdenv Standard environment 6.topic: lib The Nixpkgs function library labels Nov 15, 2025
@ShamrockLee ShamrockLee force-pushed the fetchgitprovider-always-pass branch 3 times, most recently from 6c38f00 to 5772760 Compare November 16, 2025 06:00
@ShamrockLee

This comment was marked as resolved.

@ShamrockLee ShamrockLee force-pushed the fetchgitprovider-always-pass branch 3 times, most recently from 82c91ab to 733b8b9 Compare November 17, 2025 12:28
@ShamrockLee
Copy link
Contributor Author

nixpkgs-review result

Generated using nixpkgs-review-gha

Command: nixpkgs-review pr 462034
Commit: 733b8b98584f72e7464c55a243ea5cc22e956010 (subsequent changes)
Merge: 9546d0bf09ba27607c9cb3279211ca0900196d65

Logs: https://github.com/ShamrockLee/nixpkgs-review-gha/actions/runs/19430058086


x86_64-linux

⏩ 2 packages blacklisted:
  • nixos-install-tools
  • tests.nixos-functions.nixos-test
✅ 47 packages built:
  • extra-container
  • nixos-container
  • nixpkgs-manual
  • tests.fetchFromBitbucket.withEncodedWhitespaceGit
  • tests.fetchFromGitHub.dumb-http-signed-tag
  • tests.fetchFromGitHub.fetchTags
  • tests.fetchFromGitHub.leave-git
  • tests.fetchFromGitHub.rootDir
  • tests.fetchFromGitHub.simple
  • tests.fetchFromGitHub.sparseCheckout
  • tests.fetchFromGitHub.sparseCheckoutNonConeMode
  • tests.fetchFromGitHub.submodule-deep
  • tests.fetchFromGitHub.submodule-leave-git
  • tests.fetchFromGitHub.submodule-leave-git-deep
  • tests.fetchFromGitHub.submodule-simple
  • tests.fetchPypiLegacy.fetchSimple
  • tests.fetchgit.dumb-http-signed-tag
  • tests.fetchgit.fetchTags
  • tests.fetchgit.leave-git
  • tests.fetchgit.prefetch-git-no-add-path
  • tests.fetchgit.rootDir
  • tests.fetchgit.simple
  • tests.fetchgit.sparseCheckout
  • tests.fetchgit.sparseCheckoutNonConeMode
  • tests.fetchgit.submodule-deep
  • tests.fetchgit.submodule-leave-git
  • tests.fetchgit.submodule-leave-git-deep
  • tests.fetchgit.submodule-simple
  • tests.fetchgit.withGitConfig
  • tests.fetchpatch2.decode
  • tests.fetchpatch2.fileWithApostrophe
  • tests.fetchpatch2.fileWithSpace
  • tests.fetchpatch2.full
  • tests.fetchpatch2.hunks
  • tests.fetchpatch2.relative
  • tests.fetchpatch2.simple
  • tests.fetchtorrent.http-link (tests.fetchtorrent.http-link-transmission)
  • tests.fetchtorrent.http-link-rqbit (tests.fetchtorrent.http-link-rqbit-flattened)
  • tests.fetchtorrent.http-link-rqbit-unflattened
  • tests.fetchtorrent.magnet-link (tests.fetchtorrent.magnet-link-transmission)
  • tests.fetchtorrent.magnet-link-rqbit (tests.fetchtorrent.magnet-link-rqbit-flattened)
  • tests.fetchtorrent.magnet-link-rqbit-unflattened
  • tests.fetchurl.header
  • tests.haskell.cabalSdist.assumptionLocalHasDirectReference
  • tests.haskell.cabalSdist.localHasNoDirectReference
  • tests.overriding
  • tests.testers.runCommand.bork

aarch64-linux

⏩ 2 packages blacklisted:
  • nixos-install-tools
  • tests.nixos-functions.nixos-test
✅ 47 packages built:
  • extra-container
  • nixos-container
  • nixpkgs-manual
  • tests.fetchFromBitbucket.withEncodedWhitespaceGit
  • tests.fetchFromGitHub.dumb-http-signed-tag
  • tests.fetchFromGitHub.fetchTags
  • tests.fetchFromGitHub.leave-git
  • tests.fetchFromGitHub.rootDir
  • tests.fetchFromGitHub.simple
  • tests.fetchFromGitHub.sparseCheckout
  • tests.fetchFromGitHub.sparseCheckoutNonConeMode
  • tests.fetchFromGitHub.submodule-deep
  • tests.fetchFromGitHub.submodule-leave-git
  • tests.fetchFromGitHub.submodule-leave-git-deep
  • tests.fetchFromGitHub.submodule-simple
  • tests.fetchPypiLegacy.fetchSimple
  • tests.fetchgit.dumb-http-signed-tag
  • tests.fetchgit.fetchTags
  • tests.fetchgit.leave-git
  • tests.fetchgit.prefetch-git-no-add-path
  • tests.fetchgit.rootDir
  • tests.fetchgit.simple
  • tests.fetchgit.sparseCheckout
  • tests.fetchgit.sparseCheckoutNonConeMode
  • tests.fetchgit.submodule-deep
  • tests.fetchgit.submodule-leave-git
  • tests.fetchgit.submodule-leave-git-deep
  • tests.fetchgit.submodule-simple
  • tests.fetchgit.withGitConfig
  • tests.fetchpatch2.decode
  • tests.fetchpatch2.fileWithApostrophe
  • tests.fetchpatch2.fileWithSpace
  • tests.fetchpatch2.full
  • tests.fetchpatch2.hunks
  • tests.fetchpatch2.relative
  • tests.fetchpatch2.simple
  • tests.fetchtorrent.http-link (tests.fetchtorrent.http-link-transmission)
  • tests.fetchtorrent.http-link-rqbit (tests.fetchtorrent.http-link-rqbit-flattened)
  • tests.fetchtorrent.http-link-rqbit-unflattened
  • tests.fetchtorrent.magnet-link (tests.fetchtorrent.magnet-link-transmission)
  • tests.fetchtorrent.magnet-link-rqbit (tests.fetchtorrent.magnet-link-rqbit-flattened)
  • tests.fetchtorrent.magnet-link-rqbit-unflattened
  • tests.fetchurl.header
  • tests.haskell.cabalSdist.assumptionLocalHasDirectReference
  • tests.haskell.cabalSdist.localHasNoDirectReference
  • tests.overriding
  • tests.testers.runCommand.bork

x86_64-darwin (sandbox = relaxed)

✅ 66 packages built:
  • nixpkgs-manual
  • tests.fetchDebianPatch.libPackage
  • tests.fetchDebianPatch.simple
  • tests.fetchFirefoxAddon.simple (tests.fetchFirefoxAddon.overridden-source)
  • tests.fetchFromBitbucket.withEncodedWhitespace
  • tests.fetchFromBitbucket.withEncodedWhitespaceGit
  • tests.fetchFromBitbucket.withoutWhitespace
  • tests.fetchFromGitHub.dumb-http-signed-tag
  • tests.fetchFromGitHub.fetchTags
  • tests.fetchFromGitHub.leave-git
  • tests.fetchFromGitHub.rootDir
  • tests.fetchFromGitHub.simple
  • tests.fetchFromGitHub.sparseCheckout
  • tests.fetchFromGitHub.sparseCheckoutNonConeMode
  • tests.fetchFromGitHub.submodule-deep
  • tests.fetchFromGitHub.submodule-leave-git
  • tests.fetchFromGitHub.submodule-leave-git-deep
  • tests.fetchFromGitHub.submodule-simple
  • tests.fetchNextcloudApp.simple-sha256
  • tests.fetchNextcloudApp.simple-sha512
  • tests.fetchPypiLegacy.fetchSimple
  • tests.fetchgit.dumb-http-signed-tag
  • tests.fetchgit.fetchTags
  • tests.fetchgit.leave-git
  • tests.fetchgit.prefetch-git-no-add-path
  • tests.fetchgit.rootDir
  • tests.fetchgit.simple
  • tests.fetchgit.sparseCheckout
  • tests.fetchgit.sparseCheckoutNonConeMode
  • tests.fetchgit.submodule-deep
  • tests.fetchgit.submodule-leave-git
  • tests.fetchgit.submodule-leave-git-deep
  • tests.fetchgit.submodule-simple
  • tests.fetchgit.withGitConfig
  • tests.fetchpatch.decode
  • tests.fetchpatch.fileWithApostrophe
  • tests.fetchpatch.fileWithSpace
  • tests.fetchpatch.full
  • tests.fetchpatch.hunks
  • tests.fetchpatch.relative
  • tests.fetchpatch.simple
  • tests.fetchpatch2.decode
  • tests.fetchpatch2.fileWithApostrophe
  • tests.fetchpatch2.fileWithSpace
  • tests.fetchpatch2.full
  • tests.fetchpatch2.hunks
  • tests.fetchpatch2.relative
  • tests.fetchpatch2.simple
  • tests.fetchtorrent.http-link (tests.fetchtorrent.http-link-transmission)
  • tests.fetchtorrent.http-link-rqbit (tests.fetchtorrent.http-link-rqbit-flattened)
  • tests.fetchtorrent.http-link-rqbit-unflattened
  • tests.fetchtorrent.magnet-link (tests.fetchtorrent.magnet-link-transmission)
  • tests.fetchtorrent.magnet-link-rqbit (tests.fetchtorrent.magnet-link-rqbit-flattened)
  • tests.fetchtorrent.magnet-link-rqbit-unflattened
  • tests.fetchurl.hashedMirrors
  • tests.fetchurl.header
  • tests.fetchurl.no-skipPostFetch
  • tests.fetchzip.hiddenDir
  • tests.fetchzip.postFetch
  • tests.fetchzip.simple
  • tests.haskell.cabalSdist.assumptionLocalHasDirectReference
  • tests.haskell.cabalSdist.localHasNoDirectReference
  • tests.overriding
  • tests.testers.runCommand.bork
  • tests.testers.runCommand.dns-resolution
  • tests.testers.runCommand.nonDefault-hash

aarch64-darwin (sandbox = relaxed)

❌ 1 package failed to build:
  • tests.testers.runCommand.bork
✅ 65 packages built:
  • nixpkgs-manual
  • tests.fetchDebianPatch.libPackage
  • tests.fetchDebianPatch.simple
  • tests.fetchFirefoxAddon.simple (tests.fetchFirefoxAddon.overridden-source)
  • tests.fetchFromBitbucket.withEncodedWhitespace
  • tests.fetchFromBitbucket.withEncodedWhitespaceGit
  • tests.fetchFromBitbucket.withoutWhitespace
  • tests.fetchFromGitHub.dumb-http-signed-tag
  • tests.fetchFromGitHub.fetchTags
  • tests.fetchFromGitHub.leave-git
  • tests.fetchFromGitHub.rootDir
  • tests.fetchFromGitHub.simple
  • tests.fetchFromGitHub.sparseCheckout
  • tests.fetchFromGitHub.sparseCheckoutNonConeMode
  • tests.fetchFromGitHub.submodule-deep
  • tests.fetchFromGitHub.submodule-leave-git
  • tests.fetchFromGitHub.submodule-leave-git-deep
  • tests.fetchFromGitHub.submodule-simple
  • tests.fetchNextcloudApp.simple-sha256
  • tests.fetchNextcloudApp.simple-sha512
  • tests.fetchPypiLegacy.fetchSimple
  • tests.fetchgit.dumb-http-signed-tag
  • tests.fetchgit.fetchTags
  • tests.fetchgit.leave-git
  • tests.fetchgit.prefetch-git-no-add-path
  • tests.fetchgit.rootDir
  • tests.fetchgit.simple
  • tests.fetchgit.sparseCheckout
  • tests.fetchgit.sparseCheckoutNonConeMode
  • tests.fetchgit.submodule-deep
  • tests.fetchgit.submodule-leave-git
  • tests.fetchgit.submodule-leave-git-deep
  • tests.fetchgit.submodule-simple
  • tests.fetchgit.withGitConfig
  • tests.fetchpatch.decode
  • tests.fetchpatch.fileWithApostrophe
  • tests.fetchpatch.fileWithSpace
  • tests.fetchpatch.full
  • tests.fetchpatch.hunks
  • tests.fetchpatch.relative
  • tests.fetchpatch.simple
  • tests.fetchpatch2.decode
  • tests.fetchpatch2.fileWithApostrophe
  • tests.fetchpatch2.fileWithSpace
  • tests.fetchpatch2.full
  • tests.fetchpatch2.hunks
  • tests.fetchpatch2.relative
  • tests.fetchpatch2.simple
  • tests.fetchtorrent.http-link (tests.fetchtorrent.http-link-transmission)
  • tests.fetchtorrent.http-link-rqbit (tests.fetchtorrent.http-link-rqbit-flattened)
  • tests.fetchtorrent.http-link-rqbit-unflattened
  • tests.fetchtorrent.magnet-link (tests.fetchtorrent.magnet-link-transmission)
  • tests.fetchtorrent.magnet-link-rqbit (tests.fetchtorrent.magnet-link-rqbit-flattened)
  • tests.fetchtorrent.magnet-link-rqbit-unflattened
  • tests.fetchurl.hashedMirrors
  • tests.fetchurl.header
  • tests.fetchurl.no-skipPostFetch
  • tests.fetchzip.hiddenDir
  • tests.fetchzip.postFetch
  • tests.fetchzip.simple
  • tests.haskell.cabalSdist.assumptionLocalHasDirectReference
  • tests.haskell.cabalSdist.localHasNoDirectReference
  • tests.overriding
  • tests.testers.runCommand.dns-resolution
  • tests.testers.runCommand.nonDefault-hash

Error logs: `aarch64-darwin`
tests.testers.runCommand.bork
                    exc.stdout, exc.stderr = process.communicate()
                else:
                    # POSIX _communicate already populated the output so
                    # far into the TimeoutExpired exception.
                    process.wait()
                raise
            except:  # Including KeyboardInterrupt, communicate handled that.
                process.kill()
                # We don't call process.wait() as .__exit__ does that for us.
                raise
            retcode = process.poll()
            if check and retcode:
>               raise CalledProcessError(retcode, process.args,
                                         output=stdout, stderr=stderr)
E               subprocess.CalledProcessError: Command '['/nix/store/hv7qldswrqvg1sjys1lmgjg875hkffng-python3-3.13.9/bin/python3.13', '-m', 'bork', 'download', 'gh:duckinator/emanate', 'v7.0.0']' returned non-zero exit status 1.

/nix/store/hv7qldswrqvg1sjys1lmgjg875hkffng-python3-3.13.9/lib/python3.13/subprocess.py:577: CalledProcessError
=========================== short test summary info ============================
FAILED bork/tests/test_cmd_download.py::test_download - subprocess.CalledProcessError: Command '['/nix/store/hv7qldswrqvg1sjys1lmgj...
================== 1 failed, 3 passed, 5 deselected in 30.29s ==================

@ShamrockLee
Copy link
Contributor Author

nixpkgs-review result

Generated using nixpkgs-review-gha

Command: nixpkgs-review pr 462034
Commit: 733b8b98584f72e7464c55a243ea5cc22e956010 (subsequent changes)
Merge: e6e5437315f21939c99f0e549953be0c6d8c91cf

Logs: https://github.com/ShamrockLee/nixpkgs-review-gha/actions/runs/19431391804


aarch64-darwin (sandbox = relaxed)

✅ 66 packages built:
  • nixpkgs-manual
  • tests.fetchDebianPatch.libPackage
  • tests.fetchDebianPatch.simple
  • tests.fetchFirefoxAddon.simple (tests.fetchFirefoxAddon.overridden-source)
  • tests.fetchFromBitbucket.withEncodedWhitespace
  • tests.fetchFromBitbucket.withEncodedWhitespaceGit
  • tests.fetchFromBitbucket.withoutWhitespace
  • tests.fetchFromGitHub.dumb-http-signed-tag
  • tests.fetchFromGitHub.fetchTags
  • tests.fetchFromGitHub.leave-git
  • tests.fetchFromGitHub.rootDir
  • tests.fetchFromGitHub.simple
  • tests.fetchFromGitHub.sparseCheckout
  • tests.fetchFromGitHub.sparseCheckoutNonConeMode
  • tests.fetchFromGitHub.submodule-deep
  • tests.fetchFromGitHub.submodule-leave-git
  • tests.fetchFromGitHub.submodule-leave-git-deep
  • tests.fetchFromGitHub.submodule-simple
  • tests.fetchNextcloudApp.simple-sha256
  • tests.fetchNextcloudApp.simple-sha512
  • tests.fetchPypiLegacy.fetchSimple
  • tests.fetchgit.dumb-http-signed-tag
  • tests.fetchgit.fetchTags
  • tests.fetchgit.leave-git
  • tests.fetchgit.prefetch-git-no-add-path
  • tests.fetchgit.rootDir
  • tests.fetchgit.simple
  • tests.fetchgit.sparseCheckout
  • tests.fetchgit.sparseCheckoutNonConeMode
  • tests.fetchgit.submodule-deep
  • tests.fetchgit.submodule-leave-git
  • tests.fetchgit.submodule-leave-git-deep
  • tests.fetchgit.submodule-simple
  • tests.fetchgit.withGitConfig
  • tests.fetchpatch.decode
  • tests.fetchpatch.fileWithApostrophe
  • tests.fetchpatch.fileWithSpace
  • tests.fetchpatch.full
  • tests.fetchpatch.hunks
  • tests.fetchpatch.relative
  • tests.fetchpatch.simple
  • tests.fetchpatch2.decode
  • tests.fetchpatch2.fileWithApostrophe
  • tests.fetchpatch2.fileWithSpace
  • tests.fetchpatch2.full
  • tests.fetchpatch2.hunks
  • tests.fetchpatch2.relative
  • tests.fetchpatch2.simple
  • tests.fetchtorrent.http-link (tests.fetchtorrent.http-link-transmission)
  • tests.fetchtorrent.http-link-rqbit (tests.fetchtorrent.http-link-rqbit-flattened)
  • tests.fetchtorrent.http-link-rqbit-unflattened
  • tests.fetchtorrent.magnet-link (tests.fetchtorrent.magnet-link-transmission)
  • tests.fetchtorrent.magnet-link-rqbit (tests.fetchtorrent.magnet-link-rqbit-flattened)
  • tests.fetchtorrent.magnet-link-rqbit-unflattened
  • tests.fetchurl.hashedMirrors
  • tests.fetchurl.header
  • tests.fetchurl.no-skipPostFetch
  • tests.fetchzip.hiddenDir
  • tests.fetchzip.postFetch
  • tests.fetchzip.simple
  • tests.haskell.cabalSdist.assumptionLocalHasDirectReference
  • tests.haskell.cabalSdist.localHasNoDirectReference
  • tests.overriding
  • tests.testers.runCommand.bork
  • tests.testers.runCommand.dns-resolution
  • tests.testers.runCommand.nonDefault-hash

@ShamrockLee
Copy link
Contributor Author

Now it passes all the existing tests, but the "CPU time increased by 14.5%" performance overhead is not quite acceptable.

I'll try to optimize it.

Performance comparison

This compares the performance of this branch against its pull request base branch (e.g., 'master')

For further help please refer to: ci/README.md

Unchanged values

metric value
sizes.Attr1 16
sizes.Bindings2 24
sizes.Env3 8
sizes.Value4 16

Updated values

metric mean_before mean_after mean_diff mean_pct_change p_value t_stat
time.cpu5 26.2992 30.1918 3.8926 14.5303 - 13.3068
time.gc6 2.0607 2.7813 0.7206 38.9145 - 11.3923
time.gcFraction7 0.0755 0.0897 0.0142 20.7026 - 9.1617
gc.cycles8 8.5769 10.3077 1.7308 20.9264 - 14.4152
gc.heapSize9 1846401181.5385 2085153870.7692 238752689.2308 14.4830 - 10.0539
gc.totalBytes10 3481972329.2308 4381634855.0769 899662525.8462 26.6369 - 13.9828
envs.bytes11 611916669.0769 701896202.9231 89979533.8462 15.2425 - 14.2532
list.bytes12 86394604.1538 90307111.2308 3912507.0769 4.6224 - 13.9794
sets.bytes13 1327595539.8462 1952547122.7692 624951582.9231 48.9251 - 13.9015
symbols.bytes14 1452974.2308 1453715.2308 741.0000 0.0545 - 549.8722
values.bytes15 825376726.4615 950151677.2308 124774950.7692 15.8872 - 14.1941
envs.number16 30747166.1923 35280877.4231 4533711.2308 15.2844 - 14.2188
nrAvoided17 37278251.5385 40999689.9423 3721438.4038 10.1547 - 14.0338
nrExprs18 1564427.7692 1564889.3077 461.5385 0.0313 - 618.4658
nrFunctionCalls19 27687666.7308 31735632.5000 4047965.7692 15.1248 - 14.1329
nrLookups20 13612368.8462 15983994.3462 2371625.5000 18.4031 - 13.9755
nrOpUpdateValuesCopied21 42290049.1923 62196596.3846 19906547.1923 49.3418 - 13.9000
nrOpUpdates22 4864289.5577 6478620.5192 1614330.9615 33.5087 - 14.3086
nrPrimOpCalls23 16073393.9231 17056812.2115 983418.2885 6.1660 - 14.1666
nrThunks24 39150908.3077 43091064.4038 3940156.0962 10.4801 - 14.5125
sets.number25 6759438.0577 8456160.2692 1696722.2115 26.1742 - 14.0699
symbols.number26 117413.7308 117452.3462 38.6154 0.0342 - 373.7618
values.number27 51586045.4038 59384479.8269 7798434.4231 15.8872 - 14.1941
envs.elements28 45742417.4423 52456147.9423 6713730.5000 15.2184 - 14.2764
list.concats29 2202940.2885 2245403.3077 42463.0192 2.0064 - 13.8849
list.elements30 10799325.5192 11288388.9038 489063.3846 4.6224 - 13.9794
sets.elements31 72835564.1538 109349954.7692 36514390.6154 52.2253 - 13.8898

Footnotes

  1. Size in bytes of the Attr type.

  2. Size in bytes of the Bindings type.

  3. Size in bytes of the Env type.

  4. Size in bytes of the Value type.

  5. Number of seconds of CPU time accounted by the OS to the Nix evaluator process. On UNIX systems, this comes from getrusage(RUSAGE_SELF).

  6. Number of seconds of CPU time accounted by the Boehm garbage collector to performing GC.

  7. What fraction of the total CPU time is accounted towards performing GC.

  8. Number of times garbage collection has been performed.

  9. Size in bytes of the garbage collector heap.

  10. Size in bytes of all allocations in the garbage collector.

  11. Size in bytes of all Env objects allocated by the Nix evaluator. These are almost exclusively created by nix-env.

  12. Size in bytes of all lists allocated by the Nix evaluator.

  13. Size in bytes of all attrsets allocated by the Nix evaluator.

  14. Size in bytes of all items in the Nix evaluator symbol table.

  15. Size in bytes of all values allocated by the Nix evaluator.

  16. The count of all Env objects allocated.

  17. The number of thunks avoided being created.

  18. The number of expression objects ever created.

  19. The number of function calls ever made.

  20. The number of lookups into an attrset ever made.

  21. The number of attrset values copied in the process of merging attrsets.

  22. The number of attrsets merge operations (//) performed.

  23. The number of function calls to primops (Nix builtins) ever made.

  24. The number of thunks ever made. A thunk is a delayed computation, represented by an expression reference and a closure.

  25. The number of attrsets ever made.

  26. The number of symbols ever added to the symbol table.

  27. The number of values ever made.

  28. The number of values contained within an Env object.

  29. The number of list concatenation operations (++) performed.

  30. The number of values contained within a list.

  31. The number of values contained within an attrset.

@ShamrockLee ShamrockLee force-pushed the fetchgitprovider-always-pass branch 7 times, most recently from 6932aa3 to ff736c3 Compare November 17, 2025 15:52
@ShamrockLee ShamrockLee force-pushed the fetchgitprovider-always-pass branch from cb8d206 to 351c182 Compare December 4, 2025 07:35
@ShamrockLee ShamrockLee force-pushed the fetchgitprovider-always-pass branch from 9ee20e6 to cc205a2 Compare December 4, 2025 12:57
@nixpkgs-ci nixpkgs-ci bot added the 6.topic: stdenv Standard environment label Dec 4, 2025
@nixpkgs-ci nixpkgs-ci bot added the 2.status: merge conflict This PR has merge conflicts with the target branch label Dec 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2.status: merge conflict This PR has merge conflicts with the target branch 6.topic: fetch Fetchers (e.g. fetchgit, fetchsvn, ...) 6.topic: lib The Nixpkgs function library 6.topic: stdenv Standard environment 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux.

Projects

Status: No status
Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants