Skip to content

Scope changelog entry IDs to releases - #39

Merged
mavam merged 7 commits into
mainfrom
fix/release-scoped-entry-ids
Jul 21, 2026
Merged

Scope changelog entry IDs to releases#39
mavam merged 7 commits into
mainfrom
fix/release-scoped-entry-ids

Conversation

@mavam

@mavam mavam commented Jul 21, 2026

Copy link
Copy Markdown
Member

🔍 Problem

Entry slugs were treated as globally unique across the complete changelog
history. Reusing a slug from an older release could hide the new entry from
release creation, collapse distinct occurrences in show and statistics, and
let validation resolve a manifest reference against the wrong release.

🛠️ Solution

  • Scope each entry ID to unreleased or one release.
  • Preserve release context in rendering, JSON, modules, and statistics.
  • Apply scope tokens to explicit entry lookups.
  • Resolve manifest references within their release and reject duplicates in a
    manifest.
  • Reject collisions within a target release while allowing reuse from history.
  • Reserve IDs only for outstanding release-candidate series when updating a
    stable release.

💬 Review

Focus on the release-scoped identity invariant and the release-candidate
lineage exception. Exact show lookups intentionally return every matching
occurrence.

📚 Docs PR: tenzir/content#138

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

Copy link
Copy Markdown

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: 04ea320c61

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tenzir_ship/cli/_show.py

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

Copy link
Copy Markdown

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: 38c291bc8c

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tenzir_ship/cli/_show.py
@mavam
mavam force-pushed the fix/release-scoped-entry-ids branch from caf34f4 to 6ea7b29 Compare July 21, 2026 11:47

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

Copy link
Copy Markdown

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: 6ea7b29df4

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tenzir_ship/cli/_show.py
mavam and others added 6 commits July 21, 2026 14:48
Preserve each historical entry occurrence and resolve release manifests
against their own entry directories. Reused IDs remain eligible for
release creation and retain release context in show output and
statistics.

Assisted-by: GPT-5 (Codex)
Assisted-by: GPT-5 (Codex)
Ignore retained release-candidate manifests after their stable release
exists. Historical RC IDs no longer suppress reused unreleased entries
when another stable release is updated.

Assisted-by: GPT-5 (Codex)
Cover the outstanding-to-closed candidate transition in the existing
helper test instead of reproducing the full release workflow.

Assisted-by: GPT-5 (Codex)
Remove product behavior from the bundled add-entry instructions. The
skill explains how to use the command. Product documentation remains the
source for system semantics.

Assisted-by: GPT-5 (Codex)
Apply scope tokens before resolving row, exact, and partial entry
identifiers. Constrain release identifiers to the same scope so reused
IDs return only the requested namespace.

Assisted-by: GPT-5 (Codex)
@mavam
mavam force-pushed the fix/release-scoped-entry-ids branch from 6ea7b29 to 9717308 Compare July 21, 2026 12:48
Prevent scoped show queries from rendering or exporting a release manifest when a newer stable release defines the latest scope.

Assisted-by: GPT-5 (pi)
@mavam
mavam merged commit a321dcc into main Jul 21, 2026
9 checks passed
@mavam
mavam deleted the fix/release-scoped-entry-ids branch July 21, 2026 13:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant