Skip to content

feat(inkless:release): add changelog generator and backfill 0.33..0.44 - #713

Open
jeqo wants to merge 2 commits into
mainfrom
jeqo/changelog
Open

feat(inkless:release): add changelog generator and backfill 0.33..0.44#713
jeqo wants to merge 2 commits into
mainfrom
jeqo/changelog

Conversation

@jeqo

@jeqo jeqo commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Adds Inkless changelog generation and wires it into the release notes. Stacks on #714 (which owns inkless-publish.yml).

Changes

  • gen-changelog.py + the inkless-changelog skill: diff conventional-commit history and configs.rst/metrics.rst between two inkless-release-* tags to produce a detailed CHANGELOG.md entry and a curated release-notes summary. Detects upstream syncs (apache/kafka merges + gradle version delta).
  • Backfill docs/inkless/CHANGELOG.md for increments 0.33..0.44 and link it from the docs index.
  • finalize-release now runs the generator against the freshly created tag and injects the curated summary into the GitHub Release body (best-effort: falls back to boilerplate notes if generation fails). Documents the changelog/release-notes flow in RELEASES.md.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds an Inkless release-docs workflow for generating changelog entries and release-notes summaries from git history plus configs.rst/metrics.rst diffs, and backfills the Inkless changelog for release increments 0.33 through 0.44.

Changes:

  • Add a new inkless-changelog skill and gen-changelog.py helper to draft changelog/release-notes content between inkless-release-* tags.
  • Backfill docs/inkless/CHANGELOG.md for increments 0.33..0.44.
  • Link the changelog from the Inkless docs index.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.

File Description
docs/inkless/README.md Adds a docs index link to the new changelog page.
docs/inkless/CHANGELOG.md Introduces and backfills per-increment changelog entries for 0.33..0.44.
.ai-agents/skills/inkless-changelog/SKILL.md Documents how to generate/curate changelog entries and release notes.
.ai-agents/skills/inkless-changelog/gen-changelog.py Implements changelog/release-notes draft generation from git + docs diffs.

Comment thread .ai-agents/skills/inkless-changelog/gen-changelog.py
Comment thread .ai-agents/skills/inkless-changelog/gen-changelog.py
Comment thread .ai-agents/skills/inkless-changelog/gen-changelog.py
Comment thread .ai-agents/skills/inkless-changelog/gen-changelog.py
Comment thread .ai-agents/skills/inkless-changelog/SKILL.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

.ai-agents/skills/inkless-changelog/gen-changelog.py:43

  • git() returns None on any git failure and the rest of the script treats that like empty output (e.g., show() failing makes config/metric deltas look like “no changes”). For a release tool this is risky because it can silently generate an incorrect changelog when tags/paths are wrong or git isn’t available. Prefer failing fast with a clear error message.
def git(*args):
    r = subprocess.run(["git", *args], capture_output=True, text=True)
    if r.returncode != 0:
        if r.stderr.strip():
            print(f"warning: git {' '.join(args)}: {r.stderr.strip()}", file=sys.stderr)
        return None
    return r.stdout

Comment thread .ai-agents/skills/inkless-changelog/gen-changelog.py

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

Comment thread .ai-agents/skills/inkless-changelog/gen-changelog.py

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

.ai-agents/skills/inkless-changelog/gen-changelog.py:129

  • parse_metrics() treats the per-section table header line (Attribute name Description) as a metric attribute named Attribute, so newly added/removed MBeans will also emit a bogus ... :: Attribute attr delta. Skipping the header line avoids this noise in generated changelog drafts.
        m = re.match(r"^([A-Za-z][a-zA-Z0-9\-\._]+)\s{2,}\S", line)
        if m and cur:
            attrs.add(f"{cur} :: {m.group(1)}")

@jeqo
jeqo marked this pull request as ready for review July 22, 2026 07:17
@jeqo
jeqo requested a review from EelisK July 22, 2026 07:54
@jeqo
jeqo marked this pull request as draft July 22, 2026 18:26
@jeqo
jeqo force-pushed the jeqo/changelog branch from a3e5c5b to 1d5b64f Compare July 22, 2026 18:36
@jeqo
jeqo changed the base branch from main to jeqo/fix-releases July 22, 2026 18:37
@jeqo
jeqo force-pushed the jeqo/fix-releases branch 2 times, most recently from f7f0022 to 20fbce8 Compare July 22, 2026 18:51
Base automatically changed from jeqo/fix-releases to main July 29, 2026 12:50
@jeqo
jeqo force-pushed the jeqo/changelog branch from 1d5b64f to 4db9e0b Compare July 29, 2026 18:28
jeqo added 2 commits July 30, 2026 23:39
Add gen-changelog.py + the inkless-changelog skill: diff conventional-commit
history and configs.rst/metrics.rst between two inkless-release tags to produce a
detailed CHANGELOG.md entry and a curated release-notes summary. Detects upstream
syncs (apache/kafka merges + gradle version delta) and notes them.

Backfill docs/inkless/CHANGELOG.md for increments 0.33..0.46 and link it from the
docs index.
…otes

The finalize-release job now runs gen-changelog.py --summary against the freshly
created inkless-release-<N> tag and appends the curated feat/fix/config summary to
the Release body (best-effort: falls back to boilerplate notes if generation fails).
Requires fetch-depth: 0 so the generator can diff the previous tag.

Also documents the changelog/release-notes flow in RELEASES.md. Depends on the
inkless-changelog generator added in the previous commit; stacks on the release
workflow (#714) which owns inkless-publish.yml.
@jeqo
jeqo force-pushed the jeqo/changelog branch from 4db9e0b to e3f77c4 Compare July 30, 2026 20:40
@jeqo
jeqo marked this pull request as ready for review July 30, 2026 20:40
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.

2 participants