Skip to content

feat(releasing): add deprecation.d fragment system#25442

Open
thomasqueirozb wants to merge 34 commits into
masterfrom
website-deprecation-d-releasing
Open

feat(releasing): add deprecation.d fragment system#25442
thomasqueirozb wants to merge 34 commits into
masterfrom
website-deprecation-d-releasing

Conversation

@thomasqueirozb
Copy link
Copy Markdown
Member

@thomasqueirozb thomasqueirozb commented May 15, 2026

Summary

Introduces a structured deprecation.d/ directory to track deprecation notices as versioned markdown fragments, replacing the hand-maintained docs/DEPRECATIONS.md table.

Each fragment has YAML frontmatter with what, deprecation_version (semver or TBD; accepts major.minor shorthand), and a required announcement_version. Both fields accept next as a value (the very next release) — the release tooling rewrites next to the concrete version automatically. The body is free-form Markdown for migration guidance.

Two new vdev commands:

  • cargo vdev check deprecations — validates all fragments (wired into CI via .github/workflows/deprecation.yaml)
  • cargo vdev deprecation show [--version X.Y.Z] — displays notices grouped by enacted in next release, announced in next release, and pre-existing

The release CUE generator now reads deprecation.d/ and renders three new sections: deprecations (enacted), deprecation_announcements (newly announced), and planned_deprecations (pre-existing). Enacted and announced fragment files are rewritten/retired automatically, mirroring changelog fragment handling.

All 6 existing entries from docs/DEPRECATIONS.md have been migrated to fragments. docs/DEPRECATION.md and the minor release issue template are updated accordingly.

Notes for reviewers

The following commits are intentionally reverted from this PR and should be restored after review:

  • 986bc32feat(releasing): expose generate-cue as standalone release subcommand
  • 55fc56dfeat(releasing): in dry-run mode, create branches from current branch instead of master
  • a0d2606 — fake deprecation entry and generated 0.56.0 CUE used for local website testing

Vector configuration

NA

How did you test this PR?

  • cargo test -p vdev — 66 tests pass

  • cargo vdev check deprecations — validates all 6 migrated fragments

  • cargo vdev deprecation show — verified grouped output with color

  • cargo vdev release prepare --version 0.56.0 --vrl-version 0.32.0 --dry-run

    • Generated the full 0.56.0 CUE
    • Deprecation sections render correctly at http://localhost:1313/releases/0.56.0/
    • Verified that example-fake-deprecation.md updates next to 0.56.0

Change Type

  • Bug fix
  • New feature
  • Dependencies
  • Non-functional (chore, refactoring, docs)
  • Performance

Is this a breaking change?

  • Yes
  • No

Does this PR include user facing changes?

  • Yes. Please add a changelog fragment based on our guidelines.
  • No. A maintainer will apply the no-changelog label to this PR.

References

NA

@thomasqueirozb thomasqueirozb added the no-changelog Changes in this PR do not need user-facing explanations in the release changelog label May 15, 2026
@github-actions github-actions Bot added domain: ci Anything related to Vector's CI environment domain: vdev Anything related to the vdev tooling docs review on hold The documentation team reviews PRs only after a PR is approved by the COSE team. labels May 15, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the vector.dev will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
vector.dev preview

@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the vector.dev will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
vector.dev preview

@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the vector.dev will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
vector.dev preview

@github-actions github-actions Bot added the domain: external docs Anything related to Vector's external, public documentation label May 15, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the vector.dev will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
vector.dev preview

@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the vector.dev will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
vector.dev preview

@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the vector.dev will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
vector.dev preview

@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the vector.dev will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
vector.dev preview

@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the vector.dev will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
vector.dev preview

@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the Rust Doc will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
Rust Doc preview

@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the VRL Playground will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
VRL Playground preview

@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the vector.dev will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
vector.dev preview

@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the Rust Doc will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
Rust Doc preview

@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the VRL Playground will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
VRL Playground preview

@thomasqueirozb thomasqueirozb force-pushed the website-deprecation-d-releasing branch from d2b0864 to 0bc71cc Compare May 15, 2026 18:05
@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the vector.dev will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
vector.dev preview

@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the Rust Doc will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
Rust Doc preview

@github-actions
Copy link
Copy Markdown
Contributor

Your preview site for the VRL Playground will be ready in a few minutes, please allow time for it to build.

Heres your preview link:
VRL Playground preview

@thomasqueirozb thomasqueirozb marked this pull request as ready for review May 15, 2026 18:10
@thomasqueirozb thomasqueirozb requested review from a team as code owners May 15, 2026 18:10
@thomasqueirozb thomasqueirozb changed the title feat(releasing): add deprecation.d fragment system with vdev check/show commands and release integration feat(releasing): add deprecation.d fragment system May 15, 2026
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0bc71ccdd4

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread deprecation.d/bool-or-vector-compression.md
@@ -0,0 +1,7 @@
---
what: "FAKE EXAMPLE — `fake_option` on the `fake_sink` sink [remove before merging]"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Remove the fake deprecation fragment before merge

This file is parsed as a real deprecation entry (the loader includes all .md files except README.md), so it is emitted into release metadata and user-facing notes; the generated 0.56.0.cue in this same commit already includes this fake item under deprecation_announcements. Leaving it in deprecation.d will pollute future release outputs with test-only content.

Useful? React with 👍 / 👎.

Comment thread docs/DEPRECATION.md
the deprecated configuration or feature being used (when possible).
- Add the deprecation to [docs/DEPRECATIONS.md](../docs/DEPRECATIONS.md) to track migration (if applicable) and removal
- Add a deprecation notice file to [`deprecation.d/`](../deprecation.d/) following the format described in
[`deprecation.d/README.md`](../deprecation.d/README.md). Both `announcement_version` and `deprecation_version`
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we need announcement_version? We can incorporate to the release process like we do for the changelog.d fragments.

Also, let's remove the TBD and next from the accepted values for deprecation_version. We should always set a version number.

One more concern, setting the deprecation_version is a new commitment now, we could keep it like this for now but I wouldn't want to delay a release for this. I think the simplest way to workaround this is to bump deprecation_version before a release.

Copy link
Copy Markdown
Member Author

@thomasqueirozb thomasqueirozb May 19, 2026

Choose a reason for hiding this comment

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

Do we need announcement_version? We can incorporate to the release process like we do for the changelog.d fragments.

Useful since I added a planned_deprecations section to the release, which gets rendered at the bottom. It is fully incorporated into the release process.

Also, let's remove the TBD and next from the accepted values for deprecation_version. We should always set a version number.

OK with removing TBD, but keeping next is a good idea so that PRs don't need to hard code deprecation versions. Hypothetical scenario: PR opened after 0.55 release set the deprecation_version to 0.56 but the PR only got merged after the 0.56 release. The deprecation version would then be in the past

One more concern, setting the deprecation_version is a new commitment now, we could keep it like this for now but I wouldn't want to delay a release for this. I think the simplest way to workaround this is to bump deprecation_version before a release.

Agreed. I added the deprecation vdev command helper to help us keep track of this a little better. Worst case scenario we just bump the version before the release.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Useful since I added a planned_deprecations section to the release, which gets rendered at the bottom. It is fully incorporated into the release process.

My goal is to simplify this process as much as possible. I believe we can drop this version completely and bundle this in the deprecation policy. We can state that once the deprecation fragment is merged, it will be announced with the next release.

The deprecation version would then be in the past

I believe that's fine since we don't promise to actually delete the deprecated functionality. The intention is to communicate that we will not remove functionality before a version X.

Comment thread docs/DEPRECATIONS.md
for line in e.description.lines() {
writeln!(s, "\t\t\t\t{line}").unwrap();
}
s.push_str("\t\t\t\t\"\"\"#\n");
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nit: Is there any cue related crate to help with this?


whats_next: []

deprecations: [
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Reminder to delete release artifacts.

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

Labels

docs review on hold The documentation team reviews PRs only after a PR is approved by the COSE team. domain: ci Anything related to Vector's CI environment domain: external docs Anything related to Vector's external, public documentation domain: vdev Anything related to the vdev tooling no-changelog Changes in this PR do not need user-facing explanations in the release changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants