From 455149b38fb272a173f66c59bde78f61af1d3299 Mon Sep 17 00:00:00 2001 From: liv Date: Tue, 14 Jul 2026 20:29:27 +0200 Subject: [PATCH] opentelemetry-collector-releases: add updateScript Before this there was no auto-updates for opentelemetry-collector-releases, but since opentelemetry-collector-builder received auto-updates the versioning regularly broke. This adds an updateScript that updates both at the same time. --- .../misc/opentelemetry-collector/builder.nix | 4 ++- .../misc/opentelemetry-collector/releases.nix | 28 +++++++++++-------- .../misc/opentelemetry-collector/update.sh | 19 +++++++++++++ 3 files changed, 38 insertions(+), 13 deletions(-) create mode 100755 pkgs/tools/misc/opentelemetry-collector/update.sh diff --git a/pkgs/tools/misc/opentelemetry-collector/builder.nix b/pkgs/tools/misc/opentelemetry-collector/builder.nix index 3414c4a24218..2a608bdbbf51 100644 --- a/pkgs/tools/misc/opentelemetry-collector/builder.nix +++ b/pkgs/tools/misc/opentelemetry-collector/builder.nix @@ -6,7 +6,7 @@ buildGoModule rec { pname = "ocb"; # Also update `pkgs/tools/misc/opentelemetry-collector/releases.nix` - # whenever that version changes. + # whenever this version changes. version = "0.155.0"; src = fetchFromGitHub { @@ -31,6 +31,8 @@ buildGoModule rec { "-skip TestGenerateAndCompile|TestReplaceStatementsAreComplete|TestVersioning|TestRunInit" ]; + passthru.updateScript = ./update.sh; + # Rename to ocb (it's generated as "builder") postInstall = '' mv $out/bin/builder $out/bin/ocb diff --git a/pkgs/tools/misc/opentelemetry-collector/releases.nix b/pkgs/tools/misc/opentelemetry-collector/releases.nix index db447e24cddd..8e64957275cc 100644 --- a/pkgs/tools/misc/opentelemetry-collector/releases.nix +++ b/pkgs/tools/misc/opentelemetry-collector/releases.nix @@ -4,9 +4,7 @@ fetchFromGitHub, installShellFiles, testers, - nixosTests, opentelemetry-collector-builder, - pkgs, go, git, cacert, @@ -17,12 +15,10 @@ let builder = "${opentelemetry-collector-builder}/bin/ocb"; # Keep the version in sync with the builder. - rev = opentelemetry-collector-builder.src.rev; - - version = lib.removePrefix "cmd/builder/v" rev; + version = "0.151.0"; # This is a weird meta-repo where all the open-telemetry collectors are. - src = fetchFromGitHub { + releasesSrc = fetchFromGitHub { owner = "open-telemetry"; repo = "opentelemetry-collector-releases"; rev = "v${version}"; @@ -39,7 +35,10 @@ let hash, }: stdenv.mkDerivation { - inherit name; + # Inherit the version from the builder, so that updates there trigger + # a rebuild here. + inherit version; + pname = "${name}-src"; nativeBuildInputs = [ cacert @@ -47,7 +46,7 @@ let go ]; - inherit src; + src = releasesSrc; outputHash = hash; outputHashMode = "recursive"; @@ -117,11 +116,16 @@ let --zsh <($out/bin/${name} completion zsh) ''; - passthru.tests = { - version = testers.testVersion { - inherit package version; - command = "${name} -v"; + passthru = { + tests = { + version = testers.testVersion { + inherit package version; + command = "${name} -v"; + }; }; + # The updatescript for the builder updates the releases + updateScript = null; + inherit releasesSrc; }; meta = { diff --git a/pkgs/tools/misc/opentelemetry-collector/update.sh b/pkgs/tools/misc/opentelemetry-collector/update.sh new file mode 100755 index 000000000000..251b05b7b98a --- /dev/null +++ b/pkgs/tools/misc/opentelemetry-collector/update.sh @@ -0,0 +1,19 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i bash -p curl jq nix-update common-updater-scripts +set -euf + +# Get latest version from releases repo +version=$(curl https://api.github.com/repos/open-telemetry/opentelemetry-collector-releases/releases/latest | jq -r '.name') +version=${version#v} + +# Update builder +nix-update opentelemetry-collector-builder --version="${version}" + +# Update the otel-collector-releases source +update-source-version opentelemetry-collector-releases.otelcol "${version}" --source-key="releasesSrc" + +# Update the individual distributions +for dist in {"",-contrib,-k8s,-otlp} +do + nix-update "opentelemetry-collector-releases.otelcol${dist}" --version skip +done