From 8a7a648ba6dde700cda498fce19657a17e1b9376 Mon Sep 17 00:00:00 2001 From: Pavlos Rontidis Date: Mon, 10 Aug 2026 17:07:31 -0400 Subject: [PATCH 1/2] chore(releasing): use GitHub Release assets for stable downloads --- deprecation.d/packages-timber-io-artifacts.md | 29 +++++++++++++++++++ distribution/install.sh | 14 ++++++--- vdev/src/commands/release/homebrew.rs | 2 +- .../installation/manual/from-archives.md | 10 +++---- .../installation/package-managers/msi.md | 2 +- .../en/highlights/2021-06-02-drop-jemalloc.md | 2 +- .../reference/administration/downloads.cue | 11 +++++-- .../administration/interfaces/dpkg.cue | 2 +- .../administration/interfaces/msi.cue | 2 +- .../administration/interfaces/rpm.cue | 4 +-- website/cue/reference/urls.cue | 2 +- website/data/deprecations.json | 5 ++++ .../partials/download/download-matrix.html | 10 +++++-- 13 files changed, 72 insertions(+), 23 deletions(-) create mode 100644 deprecation.d/packages-timber-io-artifacts.md diff --git a/deprecation.d/packages-timber-io-artifacts.md b/deprecation.d/packages-timber-io-artifacts.md new file mode 100644 index 0000000000000..004d9a492ac11 --- /dev/null +++ b/deprecation.d/packages-timber-io-artifacts.md @@ -0,0 +1,29 @@ +--- +what: "Stable Vector artifacts hosted at `packages.timber.io`" +deprecated_since: "0.58.0" +--- + +Stable Vector release archives and packages are now available from +[GitHub Releases](https://github.com/vectordotdev/vector/releases). The +`packages.timber.io/vector` URLs are deprecated for stable releases. + +For a pinned version, use the corresponding GitHub Release asset instead of a +direct `packages.timber.io` URL. For example, download the Linux x86_64 GNU +archive for version `0.58.0` from: + +```text +https://github.com/vectordotdev/vector/releases/download/v0.58.0/vector-0.58.0-x86_64-unknown-linux-gnu.tar.gz +``` + +The Vector installer and the download instructions on +[vector.dev](https://vector.dev/download/) use GitHub Releases for stable +artifacts. Existing URLs continue to work during the deprecation period. + +| Artifact | Migration outcome | +| --- | --- | +| Stable Vector releases, installers, and package-manager downloads | [GitHub Releases](https://github.com/vectordotdev/vector/releases) | +| `packages.timber.io/vector` versioned, `latest`, and version-alias URLs | Removed after the deprecation period | +| Nightly builds | Will be deleted; not migrated | +| Custom builds | Will be deleted; not migrated | +| Helm charts | [GitHub Release assets](https://github.com/vectordotdev/helm-charts/releases); `https://helm.vector.dev` remains the Helm repository index | +| Legacy Timber agent, CLI, and CloudWatch Lambda artifacts | Will be deleted; not migrated | diff --git a/distribution/install.sh b/distribution/install.sh index 810ab125c1aa5..dcb0de32686fc 100755 --- a/distribution/install.sh +++ b/distribution/install.sh @@ -10,10 +10,16 @@ set -u -# If PACKAGE_ROOT is unset or empty, default it. -PACKAGE_ROOT="${PACKAGE_ROOT:-"https://packages.timber.io/vector"}" # If VECTOR_VERSION is unset or empty, default it. VECTOR_VERSION="${VECTOR_VERSION:-"0.57.0"}" + +# PACKAGE_ROOT remains an override for package mirrors. Official releases are +# downloaded from the matching immutable GitHub Release. +if [ -n "${PACKAGE_ROOT:-}" ]; then + PACKAGE_URL="${PACKAGE_ROOT}/${VECTOR_VERSION}" +else + PACKAGE_URL="https://github.com/vectordotdev/vector/releases/download/v${VECTOR_VERSION}" +fi _divider="--------------------------------------------------------------------------------" _prompt=">>>" _indent=" " @@ -91,7 +97,7 @@ main() { # Confirm with the user before proceeding to install Vector through a # package manager. Otherwise, we install from an archive. if [ "$prompt" = "yes" ]; then - echo "$_prompt We'll be installing Vector via a pre-built archive at https://packages.timber.io/vector/${VECTOR_VERSION}/" + echo "$_prompt We'll be installing Vector via a pre-built archive at ${PACKAGE_URL}/" echo "$_prompt Ready to proceed? (y/n)" echo "" @@ -167,7 +173,7 @@ install_from_archive() { ;; esac - local _url="${PACKAGE_ROOT}/${VECTOR_VERSION}/vector-${VECTOR_VERSION}-${_archive_arch}.tar.gz" + local _url="${PACKAGE_URL}/vector-${VECTOR_VERSION}-${_archive_arch}.tar.gz" local _dir _dir="$(mktemp -d 2>/dev/null || ensure mktemp -d -t vector-install)" diff --git a/vdev/src/commands/release/homebrew.rs b/vdev/src/commands/release/homebrew.rs index cf36b8f75f834..8082c76bc451e 100644 --- a/vdev/src/commands/release/homebrew.rs +++ b/vdev/src/commands/release/homebrew.rs @@ -61,7 +61,7 @@ where { // URLs and SHA256s for both architectures let arm_package_url = format!( - "https://packages.timber.io/vector/{vector_version}/vector-{vector_version}-arm64-apple-darwin.tar.gz" + "https://github.com/vectordotdev/vector/releases/download/v{vector_version}/vector-{vector_version}-arm64-apple-darwin.tar.gz" ); let arm_package_sha256 = hex::encode(sha2::Sha256::digest( reqwest::blocking::get(&arm_package_url)?.bytes()?, diff --git a/website/content/en/docs/setup/installation/manual/from-archives.md b/website/content/en/docs/setup/installation/manual/from-archives.md index 94fac333100e5..cd8c4e202c3ef 100644 --- a/website/content/en/docs/setup/installation/manual/from-archives.md +++ b/website/content/en/docs/setup/installation/manual/from-archives.md @@ -19,7 +19,7 @@ Download and unpack the archive: ```shell # Latest ({{< version >}}) mkdir -p vector && \ - curl -sSfL --proto '=https' --tlsv1.2 https://packages.timber.io/vector/{{< version >}}/vector-{{< version >}}-aarch64-unknown-linux-musl.tar.gz | \ + curl -sSfL --proto '=https' --tlsv1.2 https://github.com/vectordotdev/vector/releases/download/v{{< version >}}/vector-{{< version >}}-aarch64-unknown-linux-musl.tar.gz | \ tar xzf - -C vector --strip-components=2 # Nightly @@ -54,7 +54,7 @@ Download and unpack the archive: ```shell # Latest ({{< version >}}) mkdir -p vector && \ - curl -sSfL --proto '=https' --tlsv1.2 https://packages.timber.io/vector/{{< version >}}/vector-{{< version >}}-armv7-unknown-linux-gnueabihf.tar.gz | \ + curl -sSfL --proto '=https' --tlsv1.2 https://github.com/vectordotdev/vector/releases/download/v{{< version >}}/vector-{{< version >}}-armv7-unknown-linux-gnueabihf.tar.gz | \ tar xzf - -C vector --strip-components=2 # Nightly @@ -89,7 +89,7 @@ Download and unpack the archive: ```shell # Latest (version {{< version >}}) mkdir -p vector && \ - curl -sSfL --proto '=https' --tlsv1.2 https://packages.timber.io/vector/{{< version >}}/vector-{{< version >}}-arm64-apple-darwin.tar.gz | \ + curl -sSfL --proto '=https' --tlsv1.2 https://github.com/vectordotdev/vector/releases/download/v{{< version >}}/vector-{{< version >}}-arm64-apple-darwin.tar.gz | \ tar xzf - -C vector --strip-components=2 # Nightly @@ -123,7 +123,7 @@ Download the Vector release archive: ```powershell # Latest (version {{< version >}}) -powershell Invoke-WebRequest https://packages.timber.io/vector/{{< version >}}/vector-{{< version >}}-x86_64-pc-windows-msvc.zip -OutFile vector-{{< version >}}-x86_64-pc-windows-msvc.zip +powershell Invoke-WebRequest https://github.com/vectordotdev/vector/releases/download/v{{< version >}}/vector-{{< version >}}-x86_64-pc-windows-msvc.zip -OutFile vector-{{< version >}}-x86_64-pc-windows-msvc.zip # Nightly @@ -155,7 +155,7 @@ Download and unpack the archive: ```shell # Latest (version {{< version >}}) mkdir -p vector && \ - curl -sSfL --proto '=https' --tlsv1.2 https://packages.timber.io/vector/{{< version >}}/vector-{{< version >}}-x86_64-unknown-linux-musl.tar.gz | \ + curl -sSfL --proto '=https' --tlsv1.2 https://github.com/vectordotdev/vector/releases/download/v{{< version >}}/vector-{{< version >}}-x86_64-unknown-linux-musl.tar.gz | \ tar xzf - -C vector --strip-components=2 # Nightly diff --git a/website/content/en/docs/setup/installation/package-managers/msi.md b/website/content/en/docs/setup/installation/package-managers/msi.md index 2409980ab346c..16e44bf7299a7 100644 --- a/website/content/en/docs/setup/installation/package-managers/msi.md +++ b/website/content/en/docs/setup/installation/package-managers/msi.md @@ -9,7 +9,7 @@ MSI is the file format and command line utility for the [Windows Installer][inst ## Installation ```powershell -powershell Invoke-WebRequest https://packages.timber.io/vector/{{% version %}}/vector-x64.msi -OutFile vector-{{% version %}}-x64.msi +powershell Invoke-WebRequest https://github.com/vectordotdev/vector/releases/download/v{{% version %}}/vector-{{% version %}}-x64.msi -OutFile vector-{{% version %}}-x64.msi msiexec /i vector-{{% version %}}-x64.msi ``` diff --git a/website/content/en/highlights/2021-06-02-drop-jemalloc.md b/website/content/en/highlights/2021-06-02-drop-jemalloc.md index f7eeeb8b52978..7d7697f69f48b 100644 --- a/website/content/en/highlights/2021-06-02-drop-jemalloc.md +++ b/website/content/en/highlights/2021-06-02-drop-jemalloc.md @@ -33,7 +33,7 @@ allocator which is a sensible default otherwise. As we have a better understandi likely we will revisit this decision. [0_14]: /releases/0.14.0 -[0_14_full]: https://packages.timber.io/vector/v0.14.0 +[0_14_full]: https://github.com/vectordotdev/vector/releases/tag/v0.14.0 [gnu_allocator]: https://www.gnu.org/software/libc/manual/html_node/The-GNU-Allocator.html [jemalloc]: https://github.com/jemalloc/jemalloc [musl_allocator]: https://musl.libc.org/releases.html diff --git a/website/cue/reference/administration/downloads.cue b/website/cue/reference/administration/downloads.cue index 7ce887155e49e..7ba52f6bc1d1f 100644 --- a/website/cue/reference/administration/downloads.cue +++ b/website/cue/reference/administration/downloads.cue @@ -25,12 +25,16 @@ administration: { filename: "\(tag)-\(extra).\(_file_type)" } - // Calculate the download URL without needing site templating + // Calculate the stable-release download URL without needing site templating. + // Nightly downloads remain on packages.timber.io and are selected by the + // website template. if _file_type != "deb" { - download_url: "\(urls.vector_packages_root)/vector/{v1}/vector-{v2}-\(_version_postfix)\(filename)" + download_url: "\(urls.vector_github_release_assets)/v{v2}/vector-{v2}-\(_version_postfix)\(filename)" + nightly_download_url: "https://packages.timber.io/vector/{v1}/vector-{v2}-\(_version_postfix)\(filename)" } if _file_type == "deb" { - download_url: "\(urls.vector_packages_root)/vector/{v1}/vector_{v2}-1_\(_version_postfix)\(filename)" + download_url: "\(urls.vector_github_release_assets)/v{v2}/vector_{v2}-1_\(_version_postfix)\(filename)" + nightly_download_url: "https://packages.timber.io/vector/{v1}/vector_{v2}-1_\(_version_postfix)\(filename)" } // Unused fields @@ -113,6 +117,7 @@ administration: { { target: "armv7-rpm" arch: "ARMv7" + tag: "armv7hl" }, { target: "x86_64-rpm" diff --git a/website/cue/reference/administration/interfaces/dpkg.cue b/website/cue/reference/administration/interfaces/dpkg.cue index 524725afc3a0b..c3e4b4a468da5 100644 --- a/website/cue/reference/administration/interfaces/dpkg.cue +++ b/website/cue/reference/administration/interfaces/dpkg.cue @@ -20,7 +20,7 @@ administration: interfaces: dpkg: { role_implementations: [Name=string]: { commands: role_implementations._systemd_commands & { install: #""" - curl --proto '=https' --tlsv1.2 -O https://packages.timber.io/vector/{version}/vector_{version}-1_{arch}.deb && \ + curl --proto '=https' --tlsv1.2 -LO https://github.com/vectordotdev/vector/releases/download/v{version}/vector_{version}-1_{arch}.deb && \ sudo dpkg -i vector_{version}-1_{arch}.deb """# uninstall: "sudo dpkg -r vector" diff --git a/website/cue/reference/administration/interfaces/msi.cue b/website/cue/reference/administration/interfaces/msi.cue index d657c2054e23d..131af0571c847 100644 --- a/website/cue/reference/administration/interfaces/msi.cue +++ b/website/cue/reference/administration/interfaces/msi.cue @@ -27,7 +27,7 @@ administration: interfaces: msi: { VECTORCFG """# install: #""" - powershell Invoke-WebRequest https://packages.timber.io/vector/{version}/vector-{arch}.msi -OutFile vector-{version}-{arch}.msi && \ + powershell Invoke-WebRequest https://github.com/vectordotdev/vector/releases/download/v{version}/vector-{version}-{arch}.msi -OutFile vector-{version}-{arch}.msi && \ msiexec /i vector-{version}-{arch}.msi /quiet """# logs: null diff --git a/website/cue/reference/administration/interfaces/rpm.cue b/website/cue/reference/administration/interfaces/rpm.cue index 6c46f7bd4f080..43f824af360ab 100644 --- a/website/cue/reference/administration/interfaces/rpm.cue +++ b/website/cue/reference/administration/interfaces/rpm.cue @@ -19,7 +19,7 @@ administration: interfaces: rpm: { role_implementations: [Name=string]: { commands: role_implementations._systemd_commands & { - install: "sudo rpm -i https://packages.timber.io/vector/{version}/vector-{version}-1.{arch}.rpm" + install: "sudo rpm -i https://github.com/vectordotdev/vector/releases/download/v{version}/vector-{version}-1.{arch}.rpm" uninstall: "sudo rpm -e vector" upgrade: null } @@ -42,7 +42,7 @@ administration: interfaces: rpm: { } variables: { - arch: ["x86_64", "aarch64", "armv7"] + arch: ["x86_64", "aarch64", "armv7hl"] version: true } } diff --git a/website/cue/reference/urls.cue b/website/cue/reference/urls.cue index 1c92e72090465..e684bfa695d56 100644 --- a/website/cue/reference/urls.cue +++ b/website/cue/reference/urls.cue @@ -610,7 +610,7 @@ urls: { vector_new_relic_sink: "/docs/reference/configuration/sinks/new_relic/" vector_nightly_builds: "https://packages.timber.io/vector/nightly/latest/" vector_nix_package: "\(github)/NixOS/nixpkgs/blob/master/pkgs/tools/misc/vector/default.nix" - vector_packages_root: "https://packages.timber.io" + vector_github_release_assets: "\(github)/vectordotdev/vector/releases/download" vector_performance: "\(vector_repo)/#performance" vector_privacy_policy: "\(vector_repo)/blob/master/PRIVACY.md" vector_pull_requests: "\(vector_repo)/pulls" diff --git a/website/data/deprecations.json b/website/data/deprecations.json index 08e99f13f797d..dcfdd1d14e17e 100644 --- a/website/data/deprecations.json +++ b/website/data/deprecations.json @@ -20,6 +20,11 @@ "deprecated_since": "0.56.0", "description": "The `series_api_version: v1` option is deprecated in favor of `v2` (the default).\nThe v1 series endpoint (`/api/v1/series`) is a legacy endpoint.\n\nUsers should remove `series_api_version: v1` from their configuration or set it to `v2`." }, + { + "what": "Stable Vector artifacts hosted at `packages.timber.io`", + "deprecated_since": "0.58.0", + "description": "Stable Vector release archives and packages are now available from\n[GitHub Releases](https://github.com/vectordotdev/vector/releases). The\n`packages.timber.io/vector` URLs are deprecated for stable releases.\n\nFor a pinned version, use the corresponding GitHub Release asset instead of a\ndirect `packages.timber.io` URL. For example, download the Linux x86_64 GNU\narchive for version `0.58.0` from:\n\n```text\nhttps://github.com/vectordotdev/vector/releases/download/v0.58.0/vector-0.58.0-x86_64-unknown-linux-gnu.tar.gz\n```\n\nThe Vector installer and the download instructions on\n[vector.dev](https://vector.dev/download/) use GitHub Releases for stable\nartifacts. Existing URLs continue to work during the deprecation period.\n\n| Artifact | Migration outcome |\n| --- | --- |\n| Stable Vector releases, installers, and package-manager downloads | [GitHub Releases](https://github.com/vectordotdev/vector/releases) |\n| `packages.timber.io/vector` versioned, `latest`, and version-alias URLs | Removed after the deprecation period |\n| Nightly builds | Will be deleted; not migrated |\n| Custom builds | Will be deleted; not migrated |\n| Helm charts | [GitHub Release assets](https://github.com/vectordotdev/helm-charts/releases); `https://helm.vector.dev` remains the Helm repository index |\n| Legacy Timber agent, CLI, and CloudWatch Lambda artifacts | Will be deleted; not migrated |" + }, { "what": "Environment-variable and secret placeholders in non-string positions", "deprecated_since": "0.57.0", diff --git a/website/layouts/partials/download/download-matrix.html b/website/layouts/partials/download/download-matrix.html index ebe1917b97eea..230a4e5687176 100644 --- a/website/layouts/partials/download/download-matrix.html +++ b/website/layouts/partials/download/download-matrix.html @@ -36,8 +36,10 @@ {{ $showOption = le $version $maxVersion }} {{ end }} {{ if $showOption }} - {{ $vector := cond (eq $version "nightly") "vector/nightly" "vector" }} {{ $url := .download_url | replaceRE "{v1}" $v1 | replaceRE "{v2}" $version }} + {{ if eq $version "nightly" }} + {{ $url = .nightly_download_url | replaceRE "{v1}" $v1 | replaceRE "{v2}" $version }} + {{ end }} -{{ $version = cond (eq $version "nightly") "nightly/latest" $version }} -{{ $link := printf "https://packages.timber.io/vector/%s" $version }} +{{ $link := printf "https://github.com/vectordotdev/vector/releases/tag/v%s" $version }} +{{ if eq $version "nightly" }} + {{ $link = "https://packages.timber.io/vector/nightly/latest" }} +{{ end }}
browse all files... From b86d24d37577b4d4a72f39192ede070900078083 Mon Sep 17 00:00:00 2001 From: Pavlos Rontidis Date: Thu, 13 Aug 2026 14:44:59 -0400 Subject: [PATCH 2/2] fix(website): preserve historical release downloads --- distribution/install.sh | 2 ++ .../reference/administration/downloads.cue | 26 +++++++++++++------ .../partials/download/download-matrix.html | 7 +++++ 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/distribution/install.sh b/distribution/install.sh index dcb0de32686fc..ac1d912e833e6 100755 --- a/distribution/install.sh +++ b/distribution/install.sh @@ -12,6 +12,8 @@ set -u # If VECTOR_VERSION is unset or empty, default it. VECTOR_VERSION="${VECTOR_VERSION:-"0.57.0"}" +# Accept either a bare release number or a Git tag name. +VECTOR_VERSION="${VECTOR_VERSION#v}" # PACKAGE_ROOT remains an override for package mirrors. Official releases are # downloaded from the matching immutable GitHub Release. diff --git a/website/cue/reference/administration/downloads.cue b/website/cue/reference/administration/downloads.cue index 7ba52f6bc1d1f..10fa178c64be1 100644 --- a/website/cue/reference/administration/downloads.cue +++ b/website/cue/reference/administration/downloads.cue @@ -9,14 +9,16 @@ administration: { #Type: "archive" | *"package" #Option: { - _file_type: #FileType - _version_postfix: string | *"" - arch: #Arch - tag: string | *strings.ToLower(arch) - extra?: string - filename: string - min_version?: string - max_version?: string + _file_type: #FileType + _version_postfix: string | *"" + arch: #Arch + tag: string | *strings.ToLower(arch) + extra?: string + filename: string + min_version?: string + max_version?: string + legacy_download_url?: string + legacy_max_minor?: int if extra == _|_ { filename: "\(tag).\(_file_type)" @@ -35,6 +37,11 @@ administration: { if _file_type == "deb" { download_url: "\(urls.vector_github_release_assets)/v{v2}/vector_{v2}-1_\(_version_postfix)\(filename)" nightly_download_url: "https://packages.timber.io/vector/{v1}/vector_{v2}-1_\(_version_postfix)\(filename)" + // Releases through 0.20 used a hyphenated name without the package + // revision. Keep their release-page buttons working after the stable + // download migration. + legacy_download_url: "\(urls.vector_github_release_assets)/v{v2}/vector-{v2}-\(_version_postfix)\(filename)" + legacy_max_minor: 20 } // Unused fields @@ -118,6 +125,9 @@ administration: { target: "armv7-rpm" arch: "ARMv7" tag: "armv7hl" + // Releases through 0.32 used armv7 rather than armv7hl. + legacy_download_url: "\(urls.vector_github_release_assets)/v{v2}/vector-{v2}-1.armv7.rpm" + legacy_max_minor: 32 }, { target: "x86_64-rpm" diff --git a/website/layouts/partials/download/download-matrix.html b/website/layouts/partials/download/download-matrix.html index 230a4e5687176..e6ce8858bd9bd 100644 --- a/website/layouts/partials/download/download-matrix.html +++ b/website/layouts/partials/download/download-matrix.html @@ -39,6 +39,13 @@ {{ $url := .download_url | replaceRE "{v1}" $v1 | replaceRE "{v2}" $version }} {{ if eq $version "nightly" }} {{ $url = .nightly_download_url | replaceRE "{v1}" $v1 | replaceRE "{v2}" $version }} + {{ else if and .legacy_download_url .legacy_max_minor }} + {{/* Historical Vector releases on this site are all 0.x. */}} + {{ $versionParts := split $version "." }} + {{ $minorVersion := int (index $versionParts 1) }} + {{ if le $minorVersion .legacy_max_minor }} + {{ $url = .legacy_download_url | replaceRE "{v1}" $v1 | replaceRE "{v2}" $version }} + {{ end }} {{ end }}