Skip to content

[FEATURE] Split release changelog by project (lexical-graph | byokg | both) - #521

Merged
oussamahansal merged 4 commits into
mainfrom
feat/changelog-by-project
Sep 14, 2026
Merged

[FEATURE] Split release changelog by project (lexical-graph | byokg | both)#521
oussamahansal merged 4 commits into
mainfrom
feat/changelog-by-project

Conversation

@oussamahansal

@oussamahansal oussamahansal commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Description

Add a path-based changelog generator that classifies each commit by the project folders it touched, so per-project releases no longer list the other project's changes.

Changes

  • classify commits by changed top-level folders
  • release_message.sh now delegates to the generator for local previews (release_message.sh lexical-graph|byokg|both)
  • Unit tests

Problem

Related issue (if any): #

Testing

  • Unit tests added/updated
  • Integration tests added (as appropriate)
  • Existing tests pass (pytest)
  • Tested manually (describe below)

Checklist

  • Code follows existing style and conventions
  • License headers present on new files
  • Documentation updated (if applicable)
  • No breaking changes (or clearly documented)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

BYOKG-RAG Coverage Report: The coverage is at 94.71% (target: 80%). Download the HTML report here.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

Lexical Graph Coverage Report: The coverage is at 65.77% (target: 80%). Download the HTML report here.

@mykola-pereyma mykola-pereyma left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM — nice, well-tested per-project changelog tooling, and thanks for resolving the RELEASE.md TODOs. No shell-injection concerns (git via subprocess list form; the ref passed as a quoted env var rather than a ${{ }} expansion), least-privilege on the new test workflow, and strong unit coverage of the classifier.

One non-blocking thing worth a follow-up: the changelog append isn't idempotent.

softprops/action-gh-release with append_body: true appends RELEASE_CHANGELOG.md to the release body on every execution. These workflows run on release: [released|prereleased] events, which can be re-run from the Actions UI (or a released event can follow a prereleased one for the same release on the lexical-graph workflow). Each execution would append another copy of the generated changelog to the same release notes, so a retried/re-published release ends up with duplicated changelog blocks.

A couple of ways to make it safe under re-runs:

  • Have the step compute the full release body (author notes + a single delimited changelog section) and set the body via the API rather than appending, replacing any prior auto-generated block (e.g. delimit with an HTML-comment marker like <!-- auto-changelog:start -->…<!-- auto-changelog:end --> and regenerate between the markers); or
  • Guard the append so it only runs once per release (skip if the marker is already present in the release body).

Not blocking — approving as-is — but worth hardening before this is relied on for a release that gets re-run.

(Also minor, for later: previous_release_tag is the one logic-heavy piece without a unit test since it needs git — a small git-backed test over a temp repo with a couple of tags, including a .dev one, would lock in the baseline-selection behavior.)

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

Lexical Graph Coverage Report: The coverage is at 65.82% (target: 80%). Download the HTML report here.

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

BYOKG-RAG Coverage Report: The coverage is at 94.71% (target: 80%). Download the HTML report here.

1 similar comment
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

BYOKG-RAG Coverage Report: The coverage is at 94.71% (target: 80%). Download the HTML report here.

@noel-improv noel-improv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

The changes for the path-based change-log generator looks cleanly implemented and workflows look decent just a few questions I added below the main ones revolve tag names.

Comment thread .github/scripts/generate_changelog.py Outdated
Comment thread .github/scripts/generate_changelog.py Outdated
Comment thread .github/workflows/lexical-graph-release.yml
Comment thread .github/scripts/generate_changelog.py Outdated
Comment thread .github/scripts/generate_changelog.py Outdated
@github-actions

Copy link
Copy Markdown

Lexical Graph Coverage Report: The coverage is at 65.95% (target: 80%). Download the HTML report here.

@github-actions

Copy link
Copy Markdown

BYOKG-RAG Coverage Report: The coverage is at 94.71% (target: 80%). Download the HTML report here.

@noel-improv noel-improv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

looks good, just one non-blocking comment raised

Comment thread .github/scripts/test_generate_changelog.py Outdated
@github-actions

Copy link
Copy Markdown

BYOKG-RAG Coverage Report: The coverage is at 94.71% (target: 80%). Download the HTML report here.

@github-actions

Copy link
Copy Markdown

Lexical Graph Coverage Report: The coverage is at 65.95% (target: 80%). Download the HTML report here.

@oussamahansal
oussamahansal merged commit dd1545f into main Sep 14, 2026
19 checks passed
@oussamahansal
oussamahansal deleted the feat/changelog-by-project branch September 14, 2026 19:20
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.

3 participants