towncrier
release-plz
towncrier | release-plz | |
---|---|---|
5 | 6 | |
734 | 655 | |
1.0% | - | |
7.6 | 9.7 | |
7 days ago | 5 days ago | |
Python | Rust | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
towncrier
-
Changelog-Driven Releases
I don't really like writing the change log automatically from commits. I think those both have a slightly different audience and thus need different wording.
I know the frustration of merge conflicts on the change log file.
Right now, I'm creating change logs by hand which is time consuming to do on release time. I'm considering switching to using towncrier or something similar, where you have a changes dir with one file per change for creating change logs --> https://towncrier.readthedocs.io/
-
towncrier VS cf_changelog - a user suggested alternative
2 projects | 10 Jan 2024
-
What are some examples of good release notes from open source projects that you have come across?
Here is an example of another decent one. Not perfect, but it is generated with TownCrier, so it is easy to maintain.
-
The Subtle Art of the Changelog
We used to... somewhat attempt manual changelogs. Every time it came to a release the release manager would ask around for what the key changes were, and we usually ended up with only a couple of entries.
Now, we use https://github.com/twisted/towncrier . Every change goes through pull requests, and every PR must have a newsfragment file - and we enforce this with a test that fails if it isn't present (with convenience functions of rewriting the number to match the PR if you name the news file XXX.{category}). If it's not a user-facing change, then we just have a category that is ignored.
On releases (or on individual PRS along the way), the release manager generates the changelog, but also edits them into a relatively coherent style (or rewrites developers news fragments along the way).
Every change has a note written aimed at the user. Every entry in the changelog has a link to the relevant PR or commit. We have much better changelogs now.
-
Changie - Automated Changelog Tool
Twisted's Town Crier is a generic tool
release-plz
-
Changelog-Driven Releases
My problem with maintaining a changelog during development is it can serve as a source of merge conflicts. Instead, I follow Covnentional Commit style and manually write my changelog entries based on the commits. I have a tool [0] that can show me the relevant commits for a package in my repo and automates the entire release process, including doing sanity checks.
I also feel like releasing from CI is hard, especially if you have multiple packages in a repo [1], including
- You can't as easily introspect the process
- You can't as easily recover from failure
- Getting a lot of the nuance right, like handling releases concurrent to merging of PRs, is difficult
- When the workflow is an ever-present "release PR" that you merge when ready has issues with selecting which packages to release and at what version
I have been considering making a tool to generate changelogs from fragments. Been keeping notes at https://github.com/epage/epage.github.io/issues/23
[0]: https://github.com/crate-ci/cargo-release
[1]: https://github.com/MarcoIeni/release-plz/discussions/1019
- Release Rust Crates from CI with a Release PR
-
Any new Opensource projects in (rust) looking for contributors. I want to start my journey as an OSS contributor.
Hi 👋 I maintain release-plz, a project enabling maintainers to release Rust packages automatically.
-
Release engineering is exhausting so here's cargo-dist
How does this tool differ from release-plz?: https://github.com/marcoIeni/release-plz
-
GitHub action for version incrementing and publishing to crates.io in single click
Nice, very simple. I like it! You might also want to check out my project: https://github.com/MarcoIeni/release-plz
- Announcing release-plz: update the version of your packages automatically based on conventional commits
What are some alternatives?
standard-version - :trophy: Automate versioning and CHANGELOG generation, with semver.org and conventionalcommits.org
websurfx - :rocket: An open source alternative to searx which provides a modern-looking :sparkles:, lightning-fast :zap:, privacy respecting :disguised_face:, secure :lock: meta search engine
changie - Automated changelog tool for preparing releases with lots of customization options
kitsune - 🦊 (fast) ActivityPub-federated microblogging
conventional-changelog-config-spec - a spec describing the config options supported by conventional-config for upstream tooling
cargo-dist - 📦 shippable application packaging
nextrelease - One-click release publishing by merging an automated PR.
SquireCore - The backend library used by Squire Tournament Services
semver - Semantic Versioning Specification
cargo-install-favorites - Use the `cargo` command install our favorite crates
pyscaffold - 🛠Python project template generator with batteries included
springtime - A framework for advanced Rust applications.