From 6572a7a52a95be7094e3beb8fae311272a53e99a Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sat, 11 Jan 2025 20:33:55 -0800 Subject: [PATCH 1/5] mattermostLatest: init at 10.3.1 --- pkgs/by-name/ma/mattermost/package.nix | 41 +++++++++++++------- pkgs/by-name/ma/mattermostLatest/package.nix | 20 ++++++++++ 2 files changed, 48 insertions(+), 13 deletions(-) create mode 100644 pkgs/by-name/ma/mattermostLatest/package.nix diff --git a/pkgs/by-name/ma/mattermost/package.nix b/pkgs/by-name/ma/mattermost/package.nix index 61036a0fdb9e..a59f1f894ae1 100644 --- a/pkgs/by-name/ma/mattermost/package.nix +++ b/pkgs/by-name/ma/mattermost/package.nix @@ -8,21 +8,31 @@ fetchNpmDeps, jq, nixosTests, + + versionInfo ? { + # ESR releases only. + # See https://docs.mattermost.com/upgrade/extended-support-release.html + # When a new ESR version is available (e.g. 8.1.x -> 9.5.x), update + # the version regex here as well. + # + # Ensure you also check ../mattermostLatest/package.nix. + regex = "^v(9\.11\.[0-9]+)$"; + version = "9.11.6"; + srcHash = "sha256-G9RYktnnVXdhNWp8q+bNbdlHB9ZOGtnESnZVOA7lDvE="; + vendorHash = "sha256-Gwv6clnq7ihoFC8ox8iEM5xp/us9jWUrcmqA9/XbxBE="; + npmDepsHash = "sha256-ysz38ywGxJ5DXrrcDmcmezKbc5Y7aug9jOWUzHRAs/0="; + }, }: buildGoModule rec { pname = "mattermost"; - # ESR releases only. - # See https://docs.mattermost.com/upgrade/extended-support-release.html - # When a new ESR version is available (e.g. 8.1.x -> 9.5.x), update - # the version regex in passthru.updateScript as well. - version = "9.11.6"; + inherit (versionInfo) version; src = fetchFromGitHub { owner = "mattermost"; repo = "mattermost"; - rev = "v${version}"; - hash = "sha256-G9RYktnnVXdhNWp8q+bNbdlHB9ZOGtnESnZVOA7lDvE="; + tag = "v${version}"; + hash = versionInfo.srcHash; postFetch = '' cd $out/webapp @@ -54,7 +64,7 @@ buildGoModule rec { npmDeps = fetchNpmDeps { inherit src; sourceRoot = "${src.name}/webapp"; - hash = "sha256-ysz38ywGxJ5DXrrcDmcmezKbc5Y7aug9jOWUzHRAs/0="; + hash = versionInfo.npmDepsHash; makeCacheWritable = true; forceGitDeps = true; }; @@ -99,7 +109,7 @@ buildGoModule rec { ''; }; - vendorHash = "sha256-Gwv6clnq7ihoFC8ox8iEM5xp/us9jWUrcmqA9/XbxBE="; + inherit (versionInfo) vendorHash; modRoot = "./server"; preBuild = '' @@ -142,10 +152,15 @@ buildGoModule rec { passthru = { updateScript = nix-update-script { - extraArgs = [ - "--version-regex" - "^v(9\.11\.[0-9]+)$" - ]; + extraArgs = + [ + "--version-regex" + versionInfo.regex + ] + ++ lib.optionals (versionInfo.autoUpdate or null != null) [ + "--override-filename" + versionInfo.autoUpdate + ]; }; tests.mattermost = nixosTests.mattermost; }; diff --git a/pkgs/by-name/ma/mattermostLatest/package.nix b/pkgs/by-name/ma/mattermostLatest/package.nix new file mode 100644 index 000000000000..eb6b38ec1411 --- /dev/null +++ b/pkgs/by-name/ma/mattermostLatest/package.nix @@ -0,0 +1,20 @@ +{ + mattermost, +}: + +mattermost.override { + versionInfo = { + # Latest, non-RC releases only. + # If the latest is an ESR (Extended Support Release), + # duplicate it here to facilitate the update script. + # See https://docs.mattermost.com/about/mattermost-server-releases.html + # and make sure the version regex is up to date here. + # Ensure you also check ../mattermost/package.nix for ESR releases. + regex = "^v(10\.3\.[0-9]+)$"; + version = "10.3.1"; + srcHash = "sha256-nghwf9FgdqEDLkm8dKqhvY1SvALSZ8dasTDwMwbL5AI="; + vendorHash = "sha256-G2IhU8/XSITjJKNu1Iwwoabm+hG9r3kLPtZnlzuKBD8="; + npmDepsHash = "sha256-Dc+ZFQzRQoUnsZDnPs55gr6O82WwyuBEmCZYFAwW50M="; + autoUpdate = ./package.nix; + }; +} From 88ef3d9e3473064e5fcfb0fea4f6e04dfa42db47 Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sat, 18 Jan 2025 23:49:33 -0800 Subject: [PATCH 2/5] mattermostLatest: use 10.4.x branch --- pkgs/by-name/ma/mattermostLatest/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ma/mattermostLatest/package.nix b/pkgs/by-name/ma/mattermostLatest/package.nix index eb6b38ec1411..a1f6f0ae14ad 100644 --- a/pkgs/by-name/ma/mattermostLatest/package.nix +++ b/pkgs/by-name/ma/mattermostLatest/package.nix @@ -10,7 +10,7 @@ mattermost.override { # See https://docs.mattermost.com/about/mattermost-server-releases.html # and make sure the version regex is up to date here. # Ensure you also check ../mattermost/package.nix for ESR releases. - regex = "^v(10\.3\.[0-9]+)$"; + regex = "^v(10\.4\.[0-9]+)$"; version = "10.3.1"; srcHash = "sha256-nghwf9FgdqEDLkm8dKqhvY1SvALSZ8dasTDwMwbL5AI="; vendorHash = "sha256-G2IhU8/XSITjJKNu1Iwwoabm+hG9r3kLPtZnlzuKBD8="; From cbd54cce90b2c780e91998080c4ac16cf2d380be Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sun, 19 Jan 2025 01:11:06 -0800 Subject: [PATCH 3/5] mattermostLatest: 10.3.1 -> 10.4.1 Add a lockfileOverlay option that lets us make changes to the package lockfile if it's broken, such as unlocking packages and letting npm-lockfile-fix handle them if they are mis-locked. --- pkgs/by-name/ma/mattermost/package.nix | 12 ++++++++++++ pkgs/by-name/ma/mattermostLatest/package.nix | 11 +++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ma/mattermost/package.nix b/pkgs/by-name/ma/mattermost/package.nix index a59f1f894ae1..c79fcd83694e 100644 --- a/pkgs/by-name/ma/mattermost/package.nix +++ b/pkgs/by-name/ma/mattermost/package.nix @@ -41,6 +41,18 @@ buildGoModule rec { def desuffix(version): version | gsub("^(?[^\\+]+)\\+.*$"; "\(.prefix)"); .packages |= map_values(if has("version") then .version = desuffix(.version) else . end) ' < package-lock.json > package-lock.fixed.json + + # Run the lockfile overlay, if present. + ${lib.optionalString (versionInfo.lockfileOverlay or null != null) '' + ${lib.getExe jq} ${lib.escapeShellArg '' + # Unlock a dependency and let npm-lockfile-fix relock it. + def unlock(root; dependency; path): + root | .packages[path] |= del(.resolved, .integrity) + | .packages[path].version = root.packages.channels.dependencies[dependency]; + ${versionInfo.lockfileOverlay} + ''} < package-lock.fixed.json > package-lock.overlaid.json + mv package-lock.overlaid.json package-lock.fixed.json + ''} ${lib.getExe npm-lockfile-fix} package-lock.fixed.json rm -f package-lock.json diff --git a/pkgs/by-name/ma/mattermostLatest/package.nix b/pkgs/by-name/ma/mattermostLatest/package.nix index a1f6f0ae14ad..e39e72d43466 100644 --- a/pkgs/by-name/ma/mattermostLatest/package.nix +++ b/pkgs/by-name/ma/mattermostLatest/package.nix @@ -11,10 +11,13 @@ mattermost.override { # and make sure the version regex is up to date here. # Ensure you also check ../mattermost/package.nix for ESR releases. regex = "^v(10\.4\.[0-9]+)$"; - version = "10.3.1"; - srcHash = "sha256-nghwf9FgdqEDLkm8dKqhvY1SvALSZ8dasTDwMwbL5AI="; - vendorHash = "sha256-G2IhU8/XSITjJKNu1Iwwoabm+hG9r3kLPtZnlzuKBD8="; - npmDepsHash = "sha256-Dc+ZFQzRQoUnsZDnPs55gr6O82WwyuBEmCZYFAwW50M="; + version = "10.4.1"; + srcHash = "sha256-e7uT30tWhJpEQzlcDUY2huFcupDbe4l8B19Dgub2pg0="; + vendorHash = "sha256-AcemUxcBoytE/ZoXqaIlxkzAnmGV/C1laDqziMuE+XE="; + npmDepsHash = "sha256-HABPwdhtev9DZLhWJQsyU4g2ZueYgsX+tUduMsc74YY="; + lockfileOverlay = '' + unlock(.; "@floating-ui/react"; "channels/node_modules/@floating-ui/react") + ''; autoUpdate = ./package.nix; }; } From 3a98e4ee47a034d87eefad32b99eedee0da29b6d Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sun, 19 Jan 2025 01:13:00 -0800 Subject: [PATCH 4/5] mattermost: 9.11.6 -> 9.11.7 --- pkgs/by-name/ma/mattermost/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ma/mattermost/package.nix b/pkgs/by-name/ma/mattermost/package.nix index c79fcd83694e..54559408399b 100644 --- a/pkgs/by-name/ma/mattermost/package.nix +++ b/pkgs/by-name/ma/mattermost/package.nix @@ -17,9 +17,9 @@ # # Ensure you also check ../mattermostLatest/package.nix. regex = "^v(9\.11\.[0-9]+)$"; - version = "9.11.6"; - srcHash = "sha256-G9RYktnnVXdhNWp8q+bNbdlHB9ZOGtnESnZVOA7lDvE="; - vendorHash = "sha256-Gwv6clnq7ihoFC8ox8iEM5xp/us9jWUrcmqA9/XbxBE="; + version = "9.11.7"; + srcHash = "sha256-KeGpYy3jr7/B2mtBk9em2MXJBJR2+Wajmvtz/yT4SG8="; + vendorHash = "sha256-alLPBfnA1o6bUUgPRqvYW/98UKR9wltmFTzKIGtVEm4="; npmDepsHash = "sha256-ysz38ywGxJ5DXrrcDmcmezKbc5Y7aug9jOWUzHRAs/0="; }, }: From 5a5938f361337ad9853e25005c2b3aca1ee2ef95 Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sun, 19 Jan 2025 01:48:18 -0800 Subject: [PATCH 5/5] mattermostLatest: track 10.x instead of 10.4.x We get a new 10.x release every month, so just track latest. --- pkgs/by-name/ma/mattermostLatest/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ma/mattermostLatest/package.nix b/pkgs/by-name/ma/mattermostLatest/package.nix index e39e72d43466..6fe04afdd92e 100644 --- a/pkgs/by-name/ma/mattermostLatest/package.nix +++ b/pkgs/by-name/ma/mattermostLatest/package.nix @@ -10,7 +10,7 @@ mattermost.override { # See https://docs.mattermost.com/about/mattermost-server-releases.html # and make sure the version regex is up to date here. # Ensure you also check ../mattermost/package.nix for ESR releases. - regex = "^v(10\.4\.[0-9]+)$"; + regex = "^v(10\.[0-9]+\.[0-9]+)$"; version = "10.4.1"; srcHash = "sha256-e7uT30tWhJpEQzlcDUY2huFcupDbe4l8B19Dgub2pg0="; vendorHash = "sha256-AcemUxcBoytE/ZoXqaIlxkzAnmGV/C1laDqziMuE+XE=";