Skip to content

treewide: remove optional builtins prefixes from prelude functions#444432

Merged
philiptaron merged 2 commits into
NixOS:masterfrom
trueNAHO:treewide-remove-optional-builtins-prefixes-from-prelude-functions
Oct 4, 2025
Merged

treewide: remove optional builtins prefixes from prelude functions#444432
philiptaron merged 2 commits into
NixOS:masterfrom
trueNAHO:treewide-remove-optional-builtins-prefixes-from-prelude-functions

Conversation

@trueNAHO

@trueNAHO trueNAHO commented Sep 19, 2025

Copy link
Copy Markdown
Member
commit d17f0c1bf89bcffad26838bbe0278250656659bd
Author: NAHO <90870942+trueNAHO@users.noreply.github.com>
Date:   2025-09-20 19:18:20 +0200

    factorio: remove redundant comment

commit e4421a5c7a5b010dd931d398d3eb9dbd66c8e5ae
Author: NAHO <90870942+trueNAHO@users.noreply.github.com>
Date:   2025-09-19 22:04:21 +0200

    treewide: remove optional builtins prefixes from prelude functions

    Remove optional builtins prefixes from prelude functions by running:

        builtins=(
          abort
          baseNameOf
          break
          derivation
          derivationStrict
          dirOf
          false
          fetchGit
          fetchMercurial
          fetchTarball
          fetchTree
          fromTOML
          import
          isNull
          map
          null
          placeholder
          removeAttrs
          scopedImport
          throw
          toString
          true
        )

        fd --type file --exec-batch sed --in-place --regexp-extended "
          s/\<builtins\.($(
            printf '%s\n' "${builtins[@]}" |
              paste --delimiter '|' --serial -
          ))\>/\1/g
        "

        nix fmt

Related PRs intentionally split up to simplify review and merging:

  1. doc: remove optional builtins prefixes from prelude functions #447401
  2. lib: remove optional builtins prefixes from prelude functions #447402
  3. pkgs: remove optional builtins prefixes from prelude functions #447404
  4. nixos: remove optional builtins prefixes from prelude functions #447403
  5. treewide: remove optional builtins prefixes from prelude functions #444432

Aside from the small 0.49% CPU time reduction, this is primarily motivated by the fact that this ensures a consistent code style and that builtins.false and builtins.map are IMHO ugly considering they are in the prelude.

-- #444432 (comment)

Pinging @Aleksanaa because (IIRC) I have seen plenty treewide cleanups from her.

Changelog

v3: dec908b

v2: e4421a5

  • Rebase on top of commit 9b2c4d6 ("kdePackages.plasma-wayland-protocols: 1.18.0 -> 1.19.0 (kdePackages.plasma-wayland-protocols: 1.18.0 -> 1.19.0 #444047)").

    For convenience, here are the relevant rebase changes.
    --- v1 (72bf0b950a2ed83af04a8766d80a787855fea625)
    +++ v2 (e4421a5c7a5b010dd931d398d3eb9dbd66c8e5ae)
    @@ -3159,15 +3159,15 @@
              threads = toString (if processCfg.threads == null then cfg.sidekiqThreads else processCfg.threads);
            in
     diff --git a/nixos/modules/services/web-apps/mealie.nix b/nixos/modules/services/web-apps/mealie.nix
    -index d2176c6b10b3..133338a96c45 100644
    +index 1b22fcfd35c8..e692865cb6c2 100644
     --- a/nixos/modules/services/web-apps/mealie.nix
     +++ b/nixos/modules/services/web-apps/mealie.nix
    -@@ -84,7 +84,7 @@ in
    +@@ -96,7 +96,7 @@ in
              DynamicUser = true;
              User = "mealie";
              ExecStartPre = "${pkg}/libexec/init_db";
    --        ExecStart = "${lib.getExe pkg} -b ${cfg.listenAddress}:${builtins.toString cfg.port}";
    -+        ExecStart = "${lib.getExe pkg} -b ${cfg.listenAddress}:${toString cfg.port}";
    +-        ExecStart = "${lib.getExe pkg} -b ${cfg.listenAddress}:${builtins.toString cfg.port} ${lib.escapeShellArgs cfg.extraOptions}";
    ++        ExecStart = "${lib.getExe pkg} -b ${cfg.listenAddress}:${toString cfg.port} ${lib.escapeShellArgs cfg.extraOptions}";
              EnvironmentFile = lib.mkIf (cfg.credentialsFile != null) cfg.credentialsFile;
              StateDirectory = "mealie";
              StandardOutput = "journal";
    @@ -3257,15 +3257,13 @@
     -            FORCE_HTTPS = builtins.toString cfg.forceHttps;
     -            ENABLE_UPDATES = builtins.toString cfg.enableUpdateCheck;
     -            WEB_CONCURRENCY = builtins.toString cfg.concurrency;
    --            MAXIMUM_IMPORT_SIZE = builtins.toString cfg.maximumImportSize;
     +            FORCE_HTTPS = toString cfg.forceHttps;
     +            ENABLE_UPDATES = toString cfg.enableUpdateCheck;
     +            WEB_CONCURRENCY = toString cfg.concurrency;
    -+            MAXIMUM_IMPORT_SIZE = toString cfg.maximumImportSize;
                  DEBUG = cfg.debugOutput;
                  GOOGLE_ANALYTICS_ID = lib.optionalString (cfg.googleAnalyticsId != null) cfg.googleAnalyticsId;
                  SENTRY_DSN = lib.optionalString (cfg.sentryDsn != null) cfg.sentryDsn;
    -@@ -710,12 +710,12 @@ in
    +@@ -709,13 +709,13 @@ in
                  TEAM_LOGO = lib.optionalString (cfg.logo != null) cfg.logo;
                  DEFAULT_LANGUAGE = cfg.defaultLanguage;
    
    @@ -3277,7 +3275,9 @@
     +            RATE_LIMITER_DURATION_WINDOW = toString cfg.rateLimiter.durationWindow;
    
                  FILE_STORAGE = cfg.storage.storageType;
    +-            FILE_STORAGE_IMPORT_MAX_SIZE = builtins.toString cfg.maximumImportSize;
     -            FILE_STORAGE_UPLOAD_MAX_SIZE = builtins.toString cfg.storage.uploadMaxSize;
    ++            FILE_STORAGE_IMPORT_MAX_SIZE = toString cfg.maximumImportSize;
     +            FILE_STORAGE_UPLOAD_MAX_SIZE = toString cfg.storage.uploadMaxSize;
                  FILE_STORAGE_LOCAL_ROOT_DIR = cfg.storage.localRootDir;
                }
    @@ -4754,19 +4754,6 @@
    
        # parallel install creates a bad symlink at $out/lib/sane/libsane.so.1 which prevents finding plugins
        # https://github.com/NixOS/nixpkgs/issues/224569
    -diff --git a/pkgs/applications/misc/ganttproject-bin/default.nix b/pkgs/applications/misc/ganttproject-bin/default.nix
    -index 0065eac9c8d5..2c884625aa3a 100644
    ---- a/pkgs/applications/misc/ganttproject-bin/default.nix
    -+++ b/pkgs/applications/misc/ganttproject-bin/default.nix
    -@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
    -       mkdir -pv "$out/bin"
    -       wrapProgram "$out/share/ganttproject/ganttproject" \
    -         --set JAVA_HOME "${jre}" \
    --        --prefix _JAVA_OPTIONS " " "${builtins.toString javaOptions}"
    -+        --prefix _JAVA_OPTIONS " " "${toString javaOptions}"
    -
    -       mv -v "$out/share/ganttproject/ganttproject" "$out/bin"
    -
     diff --git a/pkgs/applications/misc/sweethome3d/linux.nix b/pkgs/applications/misc/sweethome3d/linux.nix
     index 11d5fee2ffb9..46f24c071cf9 100644
     --- a/pkgs/applications/misc/sweethome3d/linux.nix
    @@ -5434,19 +5421,6 @@
                      {
                        url = module.resolved;
                      }
    -diff --git a/pkgs/build-support/ocaml/dune.nix b/pkgs/build-support/ocaml/dune.nix
    -index cc550775dd3e..be0932556f9c 100644
    ---- a/pkgs/build-support/ocaml/dune.nix
    -+++ b/pkgs/build-support/ocaml/dune.nix
    -@@ -66,7 +66,7 @@ else
    -       strictDeps = true;
    -
    -     }
    --    // (builtins.removeAttrs args [
    -+    // (removeAttrs args [
    -       "minimalOCamlVersion"
    -       "duneVersion"
    -     ])
     diff --git a/pkgs/build-support/ocaml/topkg.nix b/pkgs/build-support/ocaml/topkg.nix
     index 4c2d5d26d6c6..4326a61913e9 100644
     --- a/pkgs/build-support/ocaml/topkg.nix
    @@ -6423,6 +6397,19 @@
            str = lib.strings.concatStringsSep "\n" lst;
          in
          builtins.toFile "modules.conf" str;
    +diff --git a/pkgs/by-name/ga/ganttproject-bin/package.nix b/pkgs/by-name/ga/ganttproject-bin/package.nix
    +index ab7fbcac624e..b8ba41626fc5 100644
    +--- a/pkgs/by-name/ga/ganttproject-bin/package.nix
    ++++ b/pkgs/by-name/ga/ganttproject-bin/package.nix
    +@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
    +       mkdir -pv "$out/bin"
    +       wrapProgram "$out/share/ganttproject/ganttproject" \
    +         --set JAVA_HOME "${jre}" \
    +-        --prefix _JAVA_OPTIONS " " "${builtins.toString javaOptions}"
    ++        --prefix _JAVA_OPTIONS " " "${toString javaOptions}"
    +
    +       mv -v "$out/share/ganttproject/ganttproject" "$out/bin"
    +
     diff --git a/pkgs/by-name/ge/geoserver/package.nix b/pkgs/by-name/ge/geoserver/package.nix
     index 9364e1e84384..7d03232a5d76 100644
     --- a/pkgs/by-name/ge/geoserver/package.nix
    @@ -7172,8 +7159,21 @@
        pname = attrs.project.name;
        inherit (attrs.project) version;
      in
    +diff --git a/pkgs/by-name/ni/nixos-init/package.nix b/pkgs/by-name/ni/nixos-init/package.nix
    +index b34f6d570899..aab7354c8856 100644
    +--- a/pkgs/by-name/ni/nixos-init/package.nix
    ++++ b/pkgs/by-name/ni/nixos-init/package.nix
    +@@ -7,7 +7,7 @@
    + }:
    +
    + let
    +-  cargoToml = builtins.fromTOML (builtins.readFile ./Cargo.toml);
    ++  cargoToml = fromTOML (builtins.readFile ./Cargo.toml);
    + in
    + rustPlatform.buildRustPackage (finalAttrs: {
    +   pname = cargoToml.package.name;
     diff --git a/pkgs/by-name/ol/ollama/package.nix b/pkgs/by-name/ol/ollama/package.nix
    -index 929e8ba2353f..25390c373793 100644
    +index 63af415a6d6d..0fc029c214c1 100644
     --- a/pkgs/by-name/ol/ollama/package.nix
     +++ b/pkgs/by-name/ol/ollama/package.nix
     @@ -179,7 +179,7 @@ goBuild (finalAttrs: {
    @@ -8411,16 +8411,16 @@
            teams = [ teams.java ];
            inherit knownVulnerabilities;
     diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
    -index 709e13a0fd43..6495cd8755bb 100644
    +index b494ce36ab12..586657b523f4 100644
     --- a/pkgs/development/compilers/vala/default.nix
     +++ b/pkgs/development/compilers/vala/default.nix
     @@ -104,7 +104,7 @@ let
                  let
                    roundUpToEven = num: num + lib.mod num 2;
                  in
    --            "${pname}_${lib.versions.major version}_${builtins.toString (roundUpToEven (lib.toInt (lib.versions.minor version)))}";
    -+            "${pname}_${lib.versions.major version}_${toString (roundUpToEven (lib.toInt (lib.versions.minor version)))}";
    -           packageName = pname;
    +-            "vala_${lib.versions.major version}_${builtins.toString (roundUpToEven (lib.toInt (lib.versions.minor version)))}";
    ++            "vala_${lib.versions.major version}_${toString (roundUpToEven (lib.toInt (lib.versions.minor version)))}";
    +           packageName = "vala";
                freeze = true;
              };
     diff --git a/pkgs/development/compilers/zulu/11.nix b/pkgs/development/compilers/zulu/11.nix

v1: 72bf0b9

v0: c65f82b

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.

@nixpkgs-ci nixpkgs-ci Bot added 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 6.topic: python Python is a high-level, general-purpose programming language. 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 6.topic: GNOME GNOME desktop environment and its underlying platform 6.topic: haskell General-purpose, statically typed, purely functional programming language 8.has: changelog This PR adds or changes release notes 8.has: module (update) This PR changes an existing module in `nixos/` 6.topic: emacs Text editor 6.topic: printing Drivers, CUPS & Co. 6.topic: rust General-purpose programming language emphasizing performance, type safety, and concurrency. 6.topic: ruby A dynamic, open source programming language with a focus on simplicity and productivity. 6.topic: vim Advanced text editor 6.topic: erlang General-purpose, concurrent, functional high-level programming language 6.topic: ocaml OCaml is a general-purpose, high-level, multi-paradigm programming language. 6.topic: fetch Fetchers (e.g. fetchgit, fetchsvn, ...) 6.topic: stdenv Standard environment 6.topic: nodejs Node.js is a free, open-source, cross-platform JavaScript runtime environment 6.topic: hardware Drivers, Firmware and Kernels 6.topic: nixos-container Imperative and declarative systemd-nspawn containers 6.topic: TeX Issues regarding texlive and TeX in general 6.topic: lua Lua is a powerful, efficient, lightweight, embeddable scripting language. 6.topic: testing Tooling for automated testing of packages and modules 6.topic: updaters Tooling for (semi-)automated updating of packages 6.topic: module system About "NixOS" module system internals 6.topic: systemd Software suite that provides an array of system components for Linux operating systems. 6.topic: java Including JDK, tooling, other languages, other VMs 6.topic: vscode A free and versatile code editor that supports almost every major programming language. 6.topic: lib The Nixpkgs function library 6.topic: jupyter Interactive computing tooling: kernels, notebook, jupyterlab labels Sep 19, 2025
@nixpkgs-ci nixpkgs-ci Bot removed 6.topic: module system About "NixOS" module system internals 6.topic: systemd Software suite that provides an array of system components for Linux operating systems. 6.topic: java Including JDK, tooling, other languages, other VMs 6.topic: vscode A free and versatile code editor that supports almost every major programming language. 6.topic: lib The Nixpkgs function library 6.topic: jupyter Interactive computing tooling: kernels, notebook, jupyterlab 6.topic: games Gaming on NixOS labels Sep 19, 2025
@philiptaron

Copy link
Copy Markdown
Contributor

These did just get documented. NixOS/nix#14015

@philiptaron

Copy link
Copy Markdown
Contributor

@trueNAHO I would like to merge these changes as follows:

  1. PR for doc
  2. PR for lib
  3. PR for pkgs
  4. PR for nixos (and I don't want to merge that one 🫣)
  5. PR for everything else

As this patch was tool-generated (thank you for that!) I think this will be easy.

My rationale is that each of these has a different risk profile and audience that might care. I feel on solid ground with understanding the impact in the first three, but much less so in the last.

@philiptaron philiptaron left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looked through all but the nixos changes.

@@ -76,7 +76,7 @@ let
else
base;

# Implements the builtins.toString interface.
# Implements the toString interface.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

this one is questionable

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

this one is questionable

Seems good to me, although the comment itself could be removed since it is somewhat self-explanatory.

Comment thread pkgs/by-name/fa/factorio/package.nix Outdated
Comment on lines 62 to 67
# what arguments were effectively passed *to* mkDerivation as opposed to
# builtins.derivation (by mkDerivation). For example, stdenv.mkDerivation
# derivation (by mkDerivation). For example, stdenv.mkDerivation
# accepts an `env` attribute set which is postprocessed before being passed to
# builtins.derivation. This can lead to evaluation failures, if we assume
# derivation. This can lead to evaluation failures, if we assume
# that drvAttrs is equivalent to the arguments passed to mkDerivation.
# See https://github.com/NixOS/nixpkgs/issues/269539.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

These changes make the documentation worse and I would like them reverted

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Would it not be better to code format instead of reverting them:

-# derivation (by mkDerivation). For example, stdenv.mkDerivation
+# `derivation` (by mkDerivation). For example, stdenv.mkDerivation
 # accepts an `env` attribute set which is postprocessed before being passed to
-# derivation. This can lead to evaluation failures, if we assume
+# `derivation`. This can lead to evaluation failures, if we assume

The comment already code formats env.

@wolfgangwalther

Copy link
Copy Markdown
Contributor

These "whoops, this changed a comment, but it probably shouldn't" comments indicate to me that replaces like this should really be done AST-aware, for example with ast-grep.

@philiptaron

Copy link
Copy Markdown
Contributor

These "whoops, this changed a comment, but it probably shouldn't" comments indicate to me that replaces like this should really be done AST-aware, for example with ast-grep.

While I agree in general, having read through the changes, they're small enough and occur in few enough comments that in this case a split PR is quite mergeable.

@Aleksanaa

Copy link
Copy Markdown
Member

I don't get it, does this change have any benefits?

@philiptaron

philiptaron commented Sep 20, 2025

Copy link
Copy Markdown
Contributor

I don't get it, does this change have any benefits?

It makes the number of attrset lookups go down by about 20k (https://github.com/NixOS/nixpkgs/actions/runs/17869102318?pr=444432). Super small change in total, but not nothing.

In addition to that, having Nixpkgs code sometimes qualify map or throw with builtins and sometimes not makes the reader ponder whether something subtle is going on. Usually nothing subtle is. Having a unified standard makes all the code look similar, which I count as a benefit.

@trueNAHO

trueNAHO commented Sep 20, 2025

Copy link
Copy Markdown
Member Author

These did just get documented. NixOS/nix#14015

Thanks for pointing that out. Although I have always wondered what the prelude functions are, I never bothered looking it up (presumably in the Nix code base). I have extended the script to remove the builtins prefix for all of them.

I would like to merge these changes as follows:

  1. PR for doc
  2. PR for lib
  3. PR for pkgs
  4. PR for nixos (and I don't want to merge that one 🫣)
  5. PR for everything else

As this patch was tool-generated (thank you for that!) I think this will be easy.

My rationale is that each of these has a different risk profile and audience that might care. I feel on solid ground with understanding the impact in the first three, but much less so in the last.

Yes. However, since inspecting subsystems can be done with something like git show ./pkgs and reverting subsystems can be done with something like git revert $PROBLEMATIC_COMMIT~ ./pkgs, splitting the generated commit by subsystems is technically unnecessary. IMHO, it is more elegant to keep the generated commit as one atomic commit. If you still insist, it would be better to split the commit into smaller ones inside the same PR, without squash merging the PR.

These "whoops, this changed a comment, but it probably shouldn't" comments indicate to me that replaces like this should really be done AST-aware, for example with ast-grep.

While I agree in general, having read through the changes, they're small enough and occur in few enough comments that in this case a split PR is quite mergeable.

Since the diff is relatively small and easy (only builtins. disappears) to review, double checking the diff should not take too long 👀. Excluding code comments and the documentation is possible, but I deliberately included them to cover all builtins. cases.

I don't get it, does this change have any benefits?

It makes the number of attrset lookups go down by about 20k (https://github.com/NixOS/nixpkgs/actions/runs/17869102318?pr=444432). Super small change in total, but not nothing.

[...] Having a unified standard makes all the code look similar, which I count as a benefit.

Aside from the small 0.49% CPU time reduction, this is primarily motivated by the fact that this ensures a consistent code style and that builtins.false and builtins.map are IMHO ugly considering they are in the prelude.

Comment thread ci/eval/compare/utils.nix
@philiptaron

Copy link
Copy Markdown
Contributor

I want to be clear @trueNAHO -- I won't merge this PR in the present state, since I don't feel authority over all the areas it touches, and I've been burned merging "safe" PRs in the nixos/ directory several times before. If you split the PR as asked, it will reduce the scope and I will be able to merge those.

The point isn't to have pure, perfect commits. The point is to be able to merge. Currently this PR has zero people willing to merge it. I'm offering to move that to one, at the cost of splitting the PR.

Also, please honor my requests to revert the documentation and comments. In my view, the comments are more clear the way they were before.

Remove optional builtins prefixes from prelude functions by running:

    builtins=(
      abort
      baseNameOf
      break
      derivation
      derivationStrict
      dirOf
      false
      fetchGit
      fetchMercurial
      fetchTarball
      fetchTree
      fromTOML
      import
      isNull
      map
      null
      placeholder
      removeAttrs
      scopedImport
      throw
      toString
      true
    )

    fd --type file --exec-batch sed --in-place --regexp-extended "
      s/\<builtins\.($(
        printf '%s\n' "${builtins[@]}" |
          paste --delimiter '|' --serial -
      ))\>/\1/g
    "

    nix fmt
@trueNAHO

Copy link
Copy Markdown
Member Author

The point isn't to have pure, perfect commits. The point is to be able to merge.

Got it. I split this PR into the following smaller PRs:

  1. doc: remove optional builtins prefixes from prelude functions #447401
  2. lib: remove optional builtins prefixes from prelude functions #447402
  3. pkgs: remove optional builtins prefixes from prelude functions #447404
  4. nixos: remove optional builtins prefixes from prelude functions #447403
  5. treewide: remove optional builtins prefixes from prelude functions #444432

This PR was repurposed as the treewide one that covers the leftovers. On second thought, should I open a new PR for the leftover PR, considering how many people have already been pinged here?

Currently this PR has zero people willing to merge it. I'm offering to move that to one, at the cost of splitting the PR.

Much appreciated :)

Also, please honor my requests to revert the documentation and comments. In my view, the comments are more clear the way they were before.

Do you mean reverting documentation and comments in general, or only the specifically mentioned ones 1 2? I have manually post-reverted those in commit 048ac74 ("pkgs: add builtins prefixes for prelude functions to improve clarity") from #447404.

@nixpkgs-ci

nixpkgs-ci Bot commented Oct 4, 2025

Copy link
Copy Markdown
Contributor

Successfully created backport PR for release-25.05:

@mweinelt

mweinelt commented Oct 4, 2025

Copy link
Copy Markdown
Member

Is there a style guide that prompted this?

@trueNAHO

trueNAHO commented Oct 6, 2025

Copy link
Copy Markdown
Member Author

Is there a style guide that prompted this?

Not AFAIK. I opened #449123 to discuss this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: continuous integration Affects continuous integration (CI) in Nixpkgs, including Ofborg and GitHub Actions 6.topic: flakes The experimental Nix feature 6.topic: haskell General-purpose, statically typed, purely functional programming language 8.has: documentation This PR adds or changes documentation 8.has: port to stable This PR already has a backport to the stable release. 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux.

Projects

Status: ✅ Done
Status: Done

Development

Successfully merging this pull request may close these issues.

6 participants