-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
add CHANGELOG.md, back to the dawn of time #2368
Conversation
Signed-off-by: H. Vetinari <[email protected]>
(I'm not a maintainer on this repo, just providing my thoughts.) If it's just the It could also include links like https://github.com/opencontainers/runc/releases/tag/v1.0.0-rc7 and v1.0.0-rc9...v1.0.0-rc10 for folks that want to drill down into the low-level details. |
CHANGELOG.md
Outdated
## v1.0.0-rc9 [2019-10-05] | ||
|
||
* VERSION: update to 1.0.0-rc9 (#2134 by @cyphar) | ||
* *: verify operations on /proc/... are on procfs (#2130 by @cyphar) |
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.
should exclude or escape formatting symbols in some way
I agree with @tianon. When I said that it would be hard to do, I meant producing a useful A better place to start than the commit log would be the release notes (at least for the last 8 or so releases). For all of those releases, I went through the commit log by hand and picked out all of the major features (explaining what the changes were). |
I'm not sure if others people will agree, but I think this is separate from the release notes, as in: the release notes would IMO be a distilled version of the changelog, possibly grouped further into features/fixes etc.
I know these of course, but it doesn't give nearly a full picture, IMO.
Sure, absolutely. |
I disagree about the purpose of a changelog (though I do recognise this is a historical disagreement between different camps -- the whole GNU In addition, the |
For a maintainer, the difference might be negligible, but the difference for someone who hasn't cloned the repo yet is not trivial.
Absolutely, but deciding what is a feature worthy of mentioning is already a non-trivial task (and IMO the difference between a changelog and release notes). But I'm not claiming to have the solution here already, only possibly a basis for forming that. If such a log is considered trivial (again: that's fair enough), then no worries. |
eb73eef
to
f5d2e7c
Compare
Signed-off-by: H. Vetinari <[email protected]>
Some more thoughts: Even for someone who cloned the repo (rather than the likely larger group of people just browsing on Github), I'd argue that the most granular unit of change that is reasonable for an indepth overview is a PR (not a commit), but that's not easy to get from the log at all. Either you get the full firehose of all individual commits, or the following with
Compared to that I think there's added value for having something like the following, and in an easily accessible manner (which would also make it very easy to dive in deeper into specific PRs where necessary/interesting).
Now, release notes fill a different role IMO. They should definitely categorize (features/security/etc.), collect and filter the PRs from the CHANGELOG into a more high-level overview. There are two variants that I see often:
|
The larger question is: how should the CHANGELOG be maintained in the future? (because, with some effort, it should be possible to restructure the log here along those lines...) For example, it's common practice in other projects that PRs need to write their own news item (reviewed along with everything else). If it qualifies for a highlight, even that can already be done within the PR. This could be filled in in a preformatted file (e.g.
All the release notes would have to do is add a summary at the top and the thanks at the bottom. This is quite close to what was used for the release notes from |
We can just maintain them in https://github.com/opencontainers/runc/releases |
Of course, but I was talking about the format of the release notes. |
Can I suggest
|
@kolyshkin |
@AkihiroSuda @cyphar |
I've created a more human-friendly changelog from the release notes from 1.0.0 and later releases in #3320. If you'd still like to help back-fill the changelog you can open a PR afterwards to add new entries for old releases (it's fairly easy to back-fill data for old releases since all of the release notes are available in a human-readable form on GitHub). |
Would that be welcome? Given the fate of this PR, it feels like the appetite is low, and hence the chance of me wasting my time high... |
The issue with this PR was that it wasn't based on the human-readable release notes. Since we already have human-readable release notes written (in the GitHub release text) it would most just be a reformatting job (that's how I created the entries for 1.0.0 to 1.0.3 and it only took a few minutes each). But I wouldn't say it's high priority, since adding data for several-year old releases isn't going to be something a lot of people would need. It's up to to you, and if you don't feel you want to spend the time on it that's also perfectly okay. :D |
In #2364, the following came up:
Well, this is actually pretty easy (in a basic form at least), so I here's a PR. Note that this is limited to detecting and annotating merges to master, so it will not detect direct commits (to the extent that they happened).
The way I produced this:
git log --oneline --merges v1.0.0-rc10..HEAD >> CHANGELOG_raw.md
git log --oneline --merges v1.0.0-rc9..v1.0.0-rc10 >> CHANGELOG_raw.md
...
git log --oneline --merges v0.0.1..v0.0.2 >> CHANGELOG_raw.md
git log --oneline --merges 6415e8be..v0.0.1 >> CHANGELOG_raw.md
Splitting this by tag is important because merges of release commits sometimes happen after other merges have happened. Here I also inserted breaks to easily recognise the different blocks.
The core of the python script is:
I'm happy to share the full script and/or the prepared
CHANGELOG_raw.md
, if someone wants to write their own parser.