-
Couldn't load subscription status.
- Fork 2
initial changelog #230
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
vivus-ignis
wants to merge
2
commits into
main
Choose a base branch
from
229-create-changelog-file
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
initial changelog #230
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| # Changelog | ||
|
|
||
| > [!TIP] | ||
| > Changelog format guideline: https://common-changelog.org | ||
|
|
||
| ## [0.11.0] | ||
|
|
||
| ### Added | ||
|
|
||
| - Semver support for the release notes generation code ([219](https://github.com/gardenlinux/python-gardenlinux-lib/pull/219)) (vivus-ignis, ByteOtter) | ||
|
|
||
| ### Changed | ||
|
|
||
| - Update GLVD URL ([226](https://github.com/gardenlinux/python-gardenlinux-lib/pull/226)) (vivus-ignis) | ||
|
|
||
| ## [0.10.2] - 2025-10-17 | ||
|
|
||
| ### Fixed | ||
|
|
||
| - Explicitly set `make_latest` value for github release creation JSON payload in `create_github_release` function (nkraetzschmar) | ||
|
|
||
| ## [0.10.1] - 2025-10-17 | ||
|
|
||
| ### Added | ||
|
|
||
| - gl-gh script for creating Github releases ([222](https://github.com/gardenlinux/python-gardenlinux-lib/pull/222)) (vivus-ignis) | ||
| - Github release notes generation code ([202](https://github.com/gardenlinux/python-gardenlinux-lib/pull/202), [198](https://github.com/gardenlinux/python-gardenlinux-lib/pull/198), [217](https://github.com/gardenlinux/python-gardenlinux-lib/pull/217), [206](https://github.com/gardenlinux/python-gardenlinux-lib/pull/206)) (vivus-ignis) | ||
| - Support for reading metadata files, especially feature sets and platforms, without parsing data from the features directory ([172](https://github.com/gardenlinux/python-gardenlinux-lib/pull/172)) (NotTheEvilOne) | ||
|
|
||
| ### Changed | ||
|
|
||
| - New dependency: `gitpython` | ||
| - Improve type annotations in apt module ([201](https://github.com/gardenlinux/python-gardenlinux-lib/pull/201)) (ByteOtter) | ||
| - Improve type annotations in git module ([203](https://github.com/gardenlinux/python-gardenlinux-lib/pull/203)) (ByteOtter) | ||
| - Improve type annotations in s3 module ([204](https://github.com/gardenlinux/python-gardenlinux-lib/pull/204)) (ByteOtter) | ||
|
|
||
| ### Changed (dev setup) | ||
|
|
||
| - Improve configuration for local linting and code coverage generation | ||
| - New dev dependencies: `isort`, `requests-mock`, `pyright` | ||
|
|
||
| ## [0.10.0] - 2025-09-16 | ||
|
|
||
| ### Added | ||
|
|
||
| - Code for artifacts upload to github release page ([191](https://github.com/gardenlinux/python-gardenlinux-lib/pull/191)) (vivus-ignis) | ||
| - Add support to additionally tag an existing OCI manifest ([176](https://github.com/gardenlinux/python-gardenlinux-lib/pull/176)) (NotTheEvilOne) | ||
|
|
||
| ### Changed | ||
|
|
||
| - Python dependencies update | ||
| - Replace GitPython implementation with pygit2 one ([187](https://github.com/gardenlinux/python-gardenlinux-lib/pull/187)) (NotTheEvilOne) |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file should be generated automatically if we do not or want to additionally use GitHub release pages and the version changelog integrated there. Manual writing of the file is error prone and inefficient.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I second the auto generation of changelogs. This is very simple with github tooling and e.g. GLRD already does this:
https://github.com/gardenlinux/glrd/blob/fdba74c24ddd2b7eb81c49df8ab94a0f2c7d7751/.github/workflows/image-release.yml#L73-L86
The changelog itself it not the problem we currently have but the version publishing process is. Currently this is error-prone and manual as we have to manually define version strings in multiple files (correct me if I am wrong).
Again GLRD as an example does not hard-code versions anywhere but uses dynamic versioning, based on a pushed tag:
https://github.com/gardenlinux/glrd/blob/fdba74c24ddd2b7eb81c49df8ab94a0f2c7d7751/pyproject.toml#L33-L38
The pushing of a tag triggers, python package build and image build (used to consume as github action) and generation of release notes. Adapting the release notes and adding e.g. breaking changes is currently manually. I am pretty sure this could be combined with some automatism to read user defined release note input, e.g. a file as @vivus-ignis suggested (or just done in this way).
I would like to see a concept before implementing something.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking of tools like git-changelog. It basically requires a bit higher quality commit messages to generate a changelog (release notes) including "breaking changes" and other important information automatically out of it.
The information purely relies on the author and committer both hopefully knowing best what has been changed for which reason and what the implications are. Commit messages should be self-contained and therefore everyone reading a commit message should know what this commit does, why it is needed and what may break in the process. All upper level tooling like GitHub PRs are only build on top of this basic concept.
Please consider that a Git repository can be moved to another service provider. Git messages are here to stay, that may not be true for tools build on top of it (like PRs).
changelog.mdfiles are some kind of bridges to the old world of hosting a web page for a project and manually announcing releases. It is useful for certain projects but contains a burden of maintaining it. And no, a changelog should not contain the whole history of the project since 1970 AD. As we have GitHub releases at hand I would personally say we don't need the file at all. The generated content should go to a GitHub pre-release and reviewed there before release.Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Your suggestion unfortunately has a bunch of "ifs". If commit messages are self-contained, if they are equally important etc. Yes, curated changelog means additional work, just like documentation and examples that have to be kept in sync with the code changes.
And this is the whole point: manual process (or tools-assisted, but still curated by a human) is the work done by humans for humans. Even if we pretend this library is not a public product, it's a public repository and it has users (our team at the very least).
Curated changelog is not a sign of an "old world" just like books are not outdated in the times of TikTok and GenAI. Because tools are not able to bring meaning.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We may both @vivus-ignis think of a similar solution but different responsibilities and maybe misunderstanding of if changelogs are useful at all.
Yes, changelogs are useful and we should be able to document what has changed and especially what breaking changes are in a new release.
I would like to move the burden of "curated changelog entries" to the author itself. He should know best what he has done in a certain commit and why. If a PR for this project has no meaningful commit messages meaning a tool can read them it will be simply not be accepted in that form.
Then the commit history is parsed by tooling to generate a "changelog" (of any meaning in this discussion). It is not automatically accepted or ignored afterwards. It should be read by a human (for humans ;)) to remove duplicates and commit messages that are reverted afterwards if not detected by a tool. Meaningless commits are also removed from the list by the way, because "code cleanup" will be required in the future but does not really bring additional value to the public audience.
And than the changelog (or release notes) are published (again, in any meaning in this discussion).
I think we will have another interesting discussion about that and may find a conclusion we'll document and maybe even adapt in this PR later :)