gradle{,_7,_8,_9}{,-unwrapped}: clean up wrapping

Eliminate duplicate function calls and make the API cleaner.

$ nix-instantiate --eval -A gradle.updateScript
[ <CODE> "--url=https://github.com/gradle/gradle" "--version-regex=^v(\\d+\\.\\d+(?:\\.[1-9]\\d?)?)(\\.0)?$" ]
$ nix-instantiate --eval -A gradle_7.updateScript
error: attribute 'updateScript' in selection path 'gradle_7.updateScript' not found
$ nix-instantiate --eval -A gradle_9.updateScript
error: attribute 'updateScript' in selection path 'gradle_9.updateScript' not found
This commit is contained in:
Morgan Jones
2025-09-01 17:28:34 -07:00
parent cfcc505fcc
commit f537468f19
2 changed files with 21 additions and 15 deletions
@@ -16,13 +16,18 @@ let
concatTextFile,
makeSetupHook,
nix-update-script,
# This is the "current" version of gradle in nixpkgs.
# Used to define the update script.
gradle-unwrapped,
runCommand,
}:
gradle-unwrapped: updateAttrPath:
this-gradle-unwrapped:
lib.makeOverridable (
args:
let
gradle = gradle-unwrapped.override args;
gradle = this-gradle-unwrapped.override args;
in
symlinkJoin {
pname = "gradle";
@@ -80,9 +85,8 @@ let
}
// gradle.tests;
}
// lib.optionalAttrs (updateAttrPath != null) {
// lib.optionalAttrs (this-gradle-unwrapped == gradle-unwrapped) {
updateScript = nix-update-script {
attrPath = updateAttrPath;
extraArgs = [
"--url=https://github.com/gradle/gradle"
# Gradles .0 releases are tagged as `vX.Y.0`, but the actual
@@ -283,7 +287,7 @@ let
};
passthru.jdk = defaultJava;
passthru.unwrapped = gen' genArgs;
passthru.wrap = callPackage wrapGradle { } finalAttrs.finalPackage.unwrapped;
passthru.wrapped = callPackage wrapGradle { } finalAttrs.finalPackage.unwrapped;
meta =
with lib;
@@ -320,7 +324,7 @@ let
# Calls the generated Gradle package with default arguments.
gen' = args: callPackage (gen args) { };
in
{
rec {
# NOTE: Default JDKs that are hardcoded below must be LTS versions
# and respect the compatibility matrix at
# https://docs.gradle.org/current/userguide/compatibility.html
@@ -335,10 +339,12 @@ in
hash = "sha256-vXEQIhNJMGCVbsIp2Ua+7lcVjb2J0OYrkbyg+ixfNTE=";
defaultJava = jdk21;
};
gradle_7 = gen' {
version = "7.6.6";
hash = "sha256-Zz2XdvMDvHBI/DMp0jLW6/EFGweJO9nRFhb62ahnO+A=";
defaultJava = jdk17;
};
# Default version of Gradle in nixpkgs.
gradle = gradle_8;
}
+8 -8
View File
@@ -6918,15 +6918,15 @@ with pkgs;
gradle-packages = callPackage ../development/tools/build-managers/gradle { };
gradle_7-unwrapped = gradle-packages.gradle_7.unwrapped;
gradle_8-unwrapped = gradle-packages.gradle_8.unwrapped;
gradle_9-unwrapped = gradle-packages.gradle_9.unwrapped;
gradle-unwrapped = gradle_8-unwrapped;
gradle_7-unwrapped = gradle-packages.gradle_7;
gradle_8-unwrapped = gradle-packages.gradle_8;
gradle_9-unwrapped = gradle-packages.gradle_9;
gradle-unwrapped = gradle-packages.gradle;
gradle_7 = gradle_7-unwrapped.wrap null;
gradle_8 = gradle_8-unwrapped.wrap null;
gradle_9 = gradle_9-unwrapped.wrap null;
gradle = gradle-unwrapped.wrap "gradle-unwrapped";
gradle_7 = gradle-packages.gradle_7.wrapped;
gradle_8 = gradle-packages.gradle_8.wrapped;
gradle_9 = gradle-packages.gradle_9.wrapped;
gradle = gradle-packages.gradle.wrapped;
griffe = with python3Packages; toPythonApplication griffe;