Skip to content

chore: automate Changelog generation - #229

Draft
Gudsfile wants to merge 5 commits into
mainfrom
chore-release-workflow
Draft

chore: automate Changelog generation#229
Gudsfile wants to merge 5 commits into
mainfrom
chore-release-workflow

Conversation

@Gudsfile

@Gudsfile Gudsfile commented Dec 22, 2025

Copy link
Copy Markdown
Owner

1️⃣ First

🔇 Problem

The release stage is manual and tedious.

🎹 Proposal

Automate it in a GitHub action. This GitHub action is launched manually by specifying the type of release to be made (patch, minor, ‘major’) or by letting the action determine it based on the commits (auto).

  • A changelog is generated.
  • A bump is performed on all subprojects.
  • A release is created (tag + release + release note).
  • SECURITY.md is updated

🎶 Comments

🎤 Test

To test it, I ran the action several times on a test fork repo.

Release commit Release note result

@Gudsfile
Gudsfile force-pushed the chore-release-workflow branch 4 times, most recently from 5c13adc to 5ea6a3a Compare December 23, 2025 17:12
@Gudsfile Gudsfile self-assigned this Dec 23, 2025
@Gudsfile Gudsfile added documentation Improvements or additions to documentation ci/cd Impacts continuous integration and continuous delivery [ [ meta ] ] Refers to project management, organizational decisions… labels Dec 23, 2025
@Gudsfile
Gudsfile marked this pull request as ready for review December 23, 2025 22:46
@Gudsfile Gudsfile changed the title wip chore: add release workflow Dec 23, 2025
@Gudsfile
Gudsfile force-pushed the chore-release-workflow branch 3 times, most recently from e14989a to ddf6e87 Compare December 23, 2025 22:52

@Tarektouati Tarektouati 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.

Thanks for your PR.

Can you please document why you have chosen cliff instead of any other solution ?

We are changing a bit of paradigm.
Today, when a commit lands on main, depending on the directory impacted, everything is deployed in production.
I don't really understand why behind this PR, it also highlights some questions:

  • How do we manage the monorepo life-cycle (a diagram can be helpful) ?
    • Do we also generate new synthetics and upload them to HF on new releases ?
    • Does it also deploy the blog ?

Important
We can get rid of .moon/tasks.yml‎ and avoid writing bash, let not re-invent the wheel and let moon manage which application should be bumped

Comment thread .github/cliff.toml

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.

What's the difference between .github/cliff-release.toml and .github/cliff-changelog.toml

@Gudsfile Gudsfile Feb 5, 2026

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

The only difference was the display of statistics. I combined the templates into a single file (cliff.toml) and managed the display of statistics via a variable.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

It doesn't work; it doesn't seem possible to have a variable. I suggest removing the statistics display; it wasn't necessary.

Comment thread .moon/tasks.yml Outdated
Comment on lines +14 to +19
pnpm version "$BUMP_STRATEGY" --no-git-tag-version
fi

if [[ -f "pyproject.toml" ]]; then
echo "• Python: pyproject.toml"
uv version --bump "$BUMP_STRATEGY"

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.

suggestion: I would split this task and move it to each application app/moon.yml and synthetic-datasets/moon.yml
This way, you will be able to perform a moon run :bump-version on the concerned packages. without writing any bash

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

That's right, I hadn't been able to do it any other way, but it turns out it's entirely possible. I modified the configuration so that app and synthetic-dataset have their bump-version command based on a given strategy.

@Gudsfile

Copy link
Copy Markdown
Owner Author

We can get rid of .moon/tasks.yml‎ and avoid writing bash, let not re-invent the wheel and let moon manage which application should be bumped

I don't want to change the paradigm (with this PR). What's merged into main is sent to production. Today, our GitHub releases are mainly communications/milestones in our development. I don't want to change that for now, but we can talk about it again later.
I was doing the releases and writing the release notes manually, hence this PR, which automates that in addition to updating the subproject versions and maintaining a CHANGELOG.md.

I'll take care of the documentation as soon as I have time! Thanks for proofreading.

Regarding tasks and moon, I'll have a look, but it seems to me that this was the only solution I had to get a single version between projects based on commit names while taking into account the different package managers. I'll double-check and document that, too.

@Tarektouati

Copy link
Copy Markdown
Collaborator

We can get rid of .moon/tasks.yml‎ and avoid writing bash, let not re-invent the wheel and let moon manage which application should be bumped

I don't want to change the paradigm (with this PR). What's merged into main is sent to production. Today, our GitHub releases are mainly communications/milestones in our development. I don't want to change that for now, but we can talk about it again later. I was doing the releases and writing the release notes manually, hence this PR, which automates that in addition to updating the subproject versions and maintaining a CHANGELOG.md.

I'll take care of the documentation as soon as I have time! Thanks for proofreading.

Regarding tasks and moon, I'll have a look, but it seems to me that this was the only solution I had to get a single version between projects based on commit names while taking into account the different package managers. I'll double-check and document that, too.

Can you then rename the PR title to something chore: automate Changelog generation to be more crystal clear about what we want to achieve here?

Thanks for your time and work on this topic.

@Gudsfile
Gudsfile marked this pull request as draft January 6, 2026 01:58
@Gudsfile Gudsfile changed the title chore: add release workflow chore: automate Changelog generation Feb 4, 2026
@Gudsfile
Gudsfile force-pushed the chore-release-workflow branch 3 times, most recently from 8603919 to 6c36842 Compare February 5, 2026 01:20
@github-actions

github-actions Bot commented Feb 5, 2026

Copy link
Copy Markdown
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://Gudsfile.github.io/tracksy/pr-preview/pr-229/

Built to branch gh-pages at 2026-02-05 22:23 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

github-actions Bot pushed a commit that referenced this pull request Feb 5, 2026
Comment thread .github/cliff.toml Outdated
Comment thread .github/cliff.toml Outdated
@Gudsfile
Gudsfile force-pushed the chore-release-workflow branch from ce7b1f0 to ada2349 Compare February 5, 2026 22:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/cd Impacts continuous integration and continuous delivery documentation Improvements or additions to documentation [ [ meta ] ] Refers to project management, organizational decisions…

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants