cider
Automatically increments, sets, prints the package version in pubspec.yaml. Adds, lists, prints entries in the changelog. Creates diff links in the changelog.
0.2.10
38K downloads/mo
#1657 most downloaded on pub.dev
f3ath/cider
What this package is like to depend on
Last release 6 months ago
13 Feb 2026
Ships unpredictably
gaps range from 8 days to 1.5 years
Nearly every release is documented
notes for 27 of 28 stable releases
1 version withdrawn
withdrawn after publishing
6 years old
31 releases · first in 2020
2 releases in the last 12 months
see the full history below
Release timeline
31 releases · Jul 2020 to Feb 2026Releases
latest 31-
0.2.1013 Feb 2026Release notes
Open source →What's Changed
- Support custom tag naming by @davidmartos96 in #88
- Prepare release by @f3ath in #89
- Add contributor details to version tag template by @f3ath in #90
- Update publish.yml to include OIDC permissions by @f3ath in #91
New Contributors
- @davidmartos96 made their first contribution in #88
Full Changelog: 0.2.9...0.2.10
-
0.2.901 Dec 2025 -
0.2.810 Jun 2024 -
0.2.701 Mar 2024Release notes
Open source →Fixed
- The log command used to accept any prefix as an alias, this was broken in 0.2.6
-
0.2.603 Feb 2024Release notes
Open source →What's Changed
- Fix: Test setup does not await file copying by @marvin-kolja in #68
- add!: proper sub commands for bump and log commands by @marvin-kolja in #70
- refactor: rename 'printer' variable to 'console' by @marvin-kolja in #71
- Release by @f3ath in #72
New Contributors
- @marvin-kolja made their first contribution in #68
Full Changelog: 0.2.5...0.2.6
Release notes
Open source →Fixed
- Made
bumpandlogproper subcommands to improve UX (PR by marvin-kolja)
-
0.2.507 Jan 2024 -
0.2.411 Oct 2023 -
0.2.316 Jun 2023Release notes
Open source →Fixed
- The
Diffclass had been erroneously put inlib. Moved back tosrc/where it belongs.
- The
-
0.2.212 Jun 2023Release notes
Open source →Added
- The
--only-bodyoption for thedescribecommand. - Support for the changelog section preamble, a free text right after the header.
- The
-
0.2.111 Jun 2023Release notes
Open source →Fixed
- "Error: No value found at /cider" when run with no configuration in pubspec.yaml
-
0.2.010 Jun 2023Release notes
Open source →Added
- The
listcommand to list all versions from the changelog. - Restored the
--project-rootargument.
Changed
- Bump min SDK version to 3.0.0.
- Exit codes to closer match POSIX.
Release notes
Open source →Changed
- Remove exclusionary mentions of "open source" since this project can benefit both "open" and "closed" source projects equally.
- The
-
0.2.0-aplha.109 Jun 2023 pre-release withdrawnNothing published for this version
-
0.2.0-alpha.209 Jun 2023 pre-releaseNothing published for this version
-
0.1.608 Jun 2023Release notes
Open source →Fixed
- Correctly abort upwards search for project root directory upon reaching filesystem root. (thanks @maltevesper)
-
0.1.531 Mar 2023 -
0.1.401 Mar 2023 -
0.1.316 Dec 2022 -
0.1.210 Dec 2022 -
0.1.2+110 Dec 2022Nothing published for this version
-
0.1.128 Dec 2021 -
0.1.012 May 2021Release notes
Open source →Added
- Sound null-safety.
- Support for pre-release version part.
- Ability to bump build together with other version parts.
- A plugin system to improve extensibility.
Changed
- Configuration moved to pubspec.yaml.
Release notes
Open source →Added
- Answer "Should you ever rewrite a change log?".
Changed
- Improve argument against commit logs.
- Start following [SemVer] properly.
-
0.1.0-dev.012 Apr 2021 pre-releaseNothing published for this version
-
0.0.510 Sep 2020Release notes
Open source →Added
- Setting version explicitly
- Ability to retain pre-release part of the version
Release notes
Open source →Added
- Markdown links to version tags on release headings.
- Unreleased section to gather unreleased changes and encourage note keeping prior to releases.
-
0.0.410 Aug 2020Release notes
Open source →Changed
- Using a yaml manipulation library to updated pubspec.yaml. This expected to be more reliable than a regexp.
Release notes
Open source →Added
- Better explanation of the difference between the file ("CHANGELOG") and its function "the change log".
Changed
- Refer to a "change log" instead of a "CHANGELOG" throughout the site to differentiate between the file and the purpose of the file — the logging of changes.
Removed
- Remove empty sections from CHANGELOG, they occupy too much space and create too much noise in the file. People will have to assume that the missing sections were intentionally left out because they contained no notable changes.
-
0.0.309 Aug 2020Release notes
Open source →Changed
- Using a regex instead of yaml parser to modify pubspec.yaml. This should preserve existing file formatting
-
0.0.227 Jul 2020Release notes
Open source →Added
- Explanation of the recommended reverse chronological release ordering.
-
0.0.2+130 Jul 2020 -
0.0.126 Jul 2020Release notes
Open source →Added
- Minor documentation improvements
Fixed
- Usage exception does not print trace logs anymore
Release notes
Open source →Added
- This CHANGELOG file to hopefully serve as an evolving example of a standardized open source project CHANGELOG.
- CNAME file to enable GitHub Pages custom domain.
- README now contains answers to common questions about CHANGELOGs.
- Good examples and basic guidelines, including proper date formatting.
- Counter-examples: "What makes unicorns cry?".
What is a changelog?
A changelog is a file which contains a curated, chronologically ordered list of notable changes for each version of a project.
Why keep a changelog?
To make it easier for users and contributors to see precisely what notable changes have been made between each release (or version) of the project.
Who needs a changelog?
People do. Whether consumers or developers, the end users of software are human beings who care about what's in the software. When the software changes, people want to know why and how.
How do I make a good changelog?
Guiding Principles
-
Changelogs are for humans , not machines.
-
There should be an entry for every single version.
-
The same types of changes should be grouped.
-
Versions and sections should be linkable.
-
The latest version comes first.
-
The release date of each version is displayed.
-
Mention whether you follow Semantic Versioning .
Types of changes
-
Added for new features.
-
Changed for changes in existing functionality.
-
Deprecated for soon-to-be removed features.
-
Removed for now removed features.
-
Fixed for any bug fixes.
-
Security in case of vulnerabilities.
How can I reduce the effort required to maintain a changelog?
Keep an Unreleased section at the top to track upcoming changes.
This serves two purposes:
-
People can see what changes they might expect in upcoming releases
-
At release time, you can move the Unreleased section changes into a new release version section.
Can changelogs be bad?
Yes. Here are a few ways they can be less than useful.
Commit log diffs
Using commit log diffs as changelogs is a bad idea: they're full of noise. Things like merge commits, commits with obscure titles, documentation changes, etc.
The purpose of a commit is to document a step in the evolution of the source code. Some projects clean up commits, some don't.
The purpose of a changelog entry is to document the noteworthy difference, often across multiple commits, to communicate them clearly to end users.
Ignoring Deprecations
When people upgrade from one version to another, it should be painfully clear when something will break. It should be possible to upgrade to a version that lists deprecations, remove what's deprecated, then upgrade to the version where the deprecations become removals.
If you do nothing else, list deprecations, removals, and any breaking changes in your changelog.
Confusing Dates
Regional date formats vary throughout the world and it's often difficult to find a human-friendly date format that feels intuitive to everyone. The advantage of dates formatted like 2017-07-17 is that they follow the order of largest to smallest units: year, month, and day. This format also doesn't overlap in ambiguous ways with other date formats, unlike some regional formats that switch the position of month and day numbers. These reasons, and the fact this date format is an ISO standard , are why it is the recommended date format for changelog entries.
Inconsistent Changes
A changelog which only mentions some of the changes can be as dangerous as not having a changelog. While many of the changes may not be relevant - for instance, removing a single whitespace may not need to be recorded in all instances - any important changes should be mentioned in the changelog. By inconsistently applying changes, your users may mistakenly think that the changelog is the single source of truth. It ought to be. With great power comes great responsibility - having a good changelog means having a consistently updated changelog. There’s more. Help me collect these antipatterns by opening an issue or a pull request.
Frequently Asked Questions
Is there a standard changelog format?
Not really. There's the GNU changelog style guide , or the two-paragraph-long GNU NEWS file "guideline". Both are inadequate or insufficient.
This project aims to be a better changelog convention. It comes from observing good practices in the open source community and gathering them.
Healthy criticism, discussion and suggestions for improvements are welcome.
What should the changelog file be named?
Call it CHANGELOG.md . Some projects use HISTORY , NEWS or RELEASES .
While it's easy to think that the name of your changelog file doesn't matter that much, why make it harder for your end users to consistently find notable changes?
What about GitHub Releases?
It's a great initiative. Releases can be used to turn simple git tags (for example a tag named v1.0.0 ) into rich release notes by manually adding release notes or it can pull annotated git tag messages and turn them into notes.
GitHub Releases create a non-portable changelog that can only be displayed to users within the context of GitHub. It's possible to make them look very much like the Keep a Changelog format, but it tends to be a bit more involved.
The current version of GitHub releases is also arguably not very discoverable by end-users, unlike the typical uppercase files ( README , CONTRIBUTING , etc.). Another minor issue is that the interface doesn't currently offer links to commit logs between each release.
Can changelogs be automatically parsed?
It’s difficult, because people follow wildly different formats and file names.
Vandamme is a Ruby gem created by the Gemnasium team and which parses many (but not all) open source project changelogs.
What about yanked releases?
Yanked releases are versions that had to be pulled because of a serious bug or security issue. Often these versions don't even appear in change logs. They should. This is how you should display them:
-
0.0.1+126 Jul 2020 -
0.0.1+226 Jul 2020 -
0.0.0+dev.124 Jul 2020