Replies: 31 comments
-
Thanks for gathering those. Will do. :-)
|
Beta Was this translation helpful? Give feedback.
-
I have also just pushed a github plugin for semantic versioning that looks for a changelog: |
Beta Was this translation helpful? Give feedback.
-
Also Changehub |
Beta Was this translation helpful? Give feedback.
-
I’d like to add auto-changelog to the mix, which is something I’ve been working on recently with this schema in mind. It parses your |
Beta Was this translation helpful? Give feedback.
-
this is a tutorial w an interesting technique for solving the problem. |
Beta Was this translation helpful? Give feedback.
-
I'm working on a service for parsing and subscribing on release notes. This is my pet-project. It is more generic than changehub.io and is not tied to github's releases, though is able to parse not only plain-text files, but also github's releases, html pages, ios and google stores and even group commit messages around version numbers. |
Beta Was this translation helpful? Give feedback.
-
Since changehub was never fully launched, not in proper function at least, we created a Stackrecord. It's a GitHub based web hosting service for changelogs that sticks to keepachangelog guidelines. Registration is free and open, the project is currently in beta phase. The Stackrecord also offers an API and a CLI application. |
Beta Was this translation helpful? Give feedback.
-
@stackrecord it whould be nice to have https://raw.githubusercontent.com/stackrecord/stack-cli/master/CHANGELOG.md in the format suggested by keep a changelog. Right now it is not markdown et all. And it will be cool to have http://stackrecord.com/CHANGELOG.md as I do at https://allmychanges.com/CHANGELOG.md :) |
Beta Was this translation helpful? Give feedback.
-
@svetlyak40wt you are absolutely right! We are working on it. Cheers! |
Beta Was this translation helpful? Give feedback.
-
Hey guys! Been working on changelogapp. It functions as both a command line application to parse, manipulate and stringify keepachangelog changelogs, and as an npm module. This is a hobby project that I believe is mildly similar to @stackrecord, would love for you to check it out and hear your thoughts! 😊 |
Beta Was this translation helpful? Give feedback.
-
@samholmes1337 changelogapp looks interesting. Does it store data in the intermediate json file, or parses a markdown each time when it need to add a section or a new version? |
Beta Was this translation helpful? Give feedback.
-
@samholmes1337 I'll add the changelogapp to the https://allmychanges.com/help/changelog-generators/ if you don't mind. I think it very useful tool which will help people to keep a right formatting which is good for my project too :) |
Beta Was this translation helpful? Give feedback.
-
@svetlyak40wt it just parses the markdown every time a new addition or change is made, trying to make the implementation as clean as possible. And yeah that'd be awesome please do! |
Beta Was this translation helpful? Give feedback.
-
@samholmes1337 Just checked it out, it is a awesome idea. It might also help guide a person how to keep a changelog. For example the generator might contain examples or suggestion where to place the changes (weather to place them to changed or removed etc, or what changed or added means etc.), so that users might be informed of a convention but not forced to comply to it. Adding the option to generate github compare links as well would be a good addition. |
Beta Was this translation helpful? Give feedback.
-
Hi everyone! we are working on a tool to work with the keepachangelog format. All comments and feedback are welcome ! |
Beta Was this translation helpful? Give feedback.
-
Hello, I wrote a git for changelog. It's called devist ; a ruby git-like app that helps you keep proper changelog files. Although this tool does not follow all rules of Head out to website to get started. Also, it's open source so catch up with a star. - https://github.com/duraki/devist |
Beta Was this translation helpful? Give feedback.
-
Is there a tool that can convert a CHANGELOG to an Atom/RSS feed ? |
Beta Was this translation helpful? Give feedback.
-
@Lucas-C |
Beta Was this translation helpful? Give feedback.
-
Thanks @cookpete, but |
Beta Was this translation helpful? Give feedback.
-
@Lucas-C keepachangelog-parser-java provides a decent interface on top of keepachange-formatted markdown. You could combine that with an RSS library like Rome to generate a feed. Rome has a quick tutorial on how to use it. It'd probably look something like this pseudo-Java typed by hand and not checked and my Java 8 is rusty: import cx.cad.keepachangelog.ChangelogParser;
import com.rometools.rome.feed.synd.*;
ChangelogData data = ChangelogParser.parse(markdownTextAsStringOrFile);
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType(feedType);
feed.setTitle("Changelog feed for " + data.getProjectName());
feed.setLink("http://example.com/somewhere/"+data.getProjectName()+".rss");
feed.setDescription(data.getDescription());
SortedSet<ChangelogEntry> changelogEntries = data.getEntries();
SortedSet<SyndEntry> entries = changelogEntries.map( (changelogEntry) -> {
SyndEntry entry = new SyndEntryImpl();
entry.setTitle(changelogEntry.getVersion() + (changelogEntry.isYanked() ? "[YANKED]" : "");
//entry.setLink(""); // may not make sense in this context?
entry.setPublishedDate(changelogEntry.getDate());
entry.setDescription(changelogEntry.getDescription());
SyndContent description = new SyndContentImpl();
String sectionText = formatChangelogEntrySectionText(changelogEntry.getSections());
description.setType("text/plain");
description.setValue(sectionText);
return entry;
});
feed.setEntries(entries);
Writer writer = new FileWriter(fileName);
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,writer);
writer.close();
System.out.println("The feed has been written to the file ["+fileName+"]");
function String formatChangelogEntrySectionText(SortedSet<ChangelogSection> sections) {
//implementation left as an exercise for the reader
} Honestly, I've wanted to do something like this for a long time. I don't know when I'll have time to do it, though! |
Beta Was this translation helpful? Give feedback.
-
TYVM @colindean, that sounds promising and would fit very well in my current stack ! |
Beta Was this translation helpful? Give feedback.
-
Allmychange.com is able to parse almost any changelog format and produce a single RSS feed for all projects you are tracking. However, I've abandoned the project last year. Wan't to rewrite it from Python to Common Lisp some day. That will be fun! |
Beta Was this translation helpful? Give feedback.
-
Thanks @svetlyak40wt ! I had seen it in this thread above, and it looks awesome. |
Beta Was this translation helpful? Give feedback.
-
@Lucas-C actually, AllMyChanges is a service for end users who want to track software changed. It is for subscription. All you need it to add your library's changelog there. Just paste a github URL if it is opensource, or URL pointing to a changelog, if it is closed. For example, here is a plain text changelog of AMCH: http://allmychanges.com/CHANGELOG.md and here is it's parsed version which you can subscribe on: https://allmychanges.com/p/web/allmychanges/ |
Beta Was this translation helpful? Give feedback.
-
You don't want to generate RSS youself, belive me :) |
Beta Was this translation helpful? Give feedback.
-
Pitching in one I just pushed to PyPi creates a CHANGELOG.md based on keep-a-changelog -> https://github.com/akshaybabloo/release-exporter |
Beta Was this translation helpful? Give feedback.
-
Just released https://github.com/brightcove/kacl for automating changelog releases for node projects. It pairs really nicely with gh-release for fully automated releasing by just running |
Beta Was this translation helpful? Give feedback.
-
Just to add to the noise here, I wrote https://github.com/ianfixes/keepachangelog_manager_gem As far as I can tell, it's the only one of these tools that's focused on automating the release process of these changelogs -- the point in time at which the In other words, the release process becomes scriptable: #!/bin/bash
# assuming you've just merged a pull request on GitHub, this script
# releases your code and updates the relevant files with the new version
# pull down the merged commit
git pull --rebase
# Update the changelog to a new patch version
NEW_VERSION=$(bundle exec keepachangelog_manager.rb --increment-patch)
# could also explicitly set one of the fields:
# NEW_VERSION=$(bundle exec keepachangelog_manager.rb --minor=3)
echo "Do any other steps related to releasing $NEW_VERSION"
git add CHANGELOG.md # and any other files
git commit -m "v$NEW_VERSION" bump"
git tag -a v$NEW_VERSION -m "Released version $NEW_VERSION"
git push && git push --tags |
Beta Was this translation helpful? Give feedback.
-
I recently shipped spotless-changelog. If you happen to have used the spotless code formatter, it's the same idea, but for the keepachangelog format. There's a gradle plugin, and also a separate library if you want to just grab the parser on its own. The workflow for the gradle plugin is that as you update the I think it would be great if the keepachangelog site aggregated tools compatible with keepachangelog. It's the difference between "you should indent with two spaces and always use semicolons!" vs prettier, gofmt, rustfmt, google-java-format, etc. |
Beta Was this translation helpful? Give feedback.
-
Yet another changelog parser which works nicely on monorepo. We have nearly a hundred CHANGELOG.md files in our monorepo, so it was impossible to maintain the versions manually. The release cli saves my time, a lot. It's written in Go, so please try it and love to hear your feedbacks! |
Beta Was this translation helpful? Give feedback.
-
This is not strictly an issue, but FYI a few folks have been making tools based around the conventions established so far by this project. Here are a few I have participated in or found:
Might be helpful/beneficial to link to these in the README. 😄
Beta Was this translation helpful? Give feedback.
All reactions