release-plz
goreleaser
release-plz | goreleaser | |
---|---|---|
6 | 60 | |
659 | 13,128 | |
- | 2.3% | |
9.7 | 9.8 | |
7 days ago | 2 days ago | |
Rust | Go | |
Apache License 2.0 | MIT License |
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.
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
goreleaser
-
Show HN: Docker-phobia: Analyze Docker image size with a treemap
> This is a much faster way than setting up Github Actions to build an executable for every possible platform on every release
It's not even that hard. Just use GoReleaser.
https://goreleaser.com/
-
FOSDEM 2024 - Summary and Reflections
I also got my eyes on GoReleaser, which I will use in my (Go) projects.
- Distribuindo uma aplicação Go sem o Docker
- goreleaser: Deliver Go binaries as fast and easily as possible
- Goreleaser
-
Build an Open Source Project: Behind the Scenes
With "xq", I went even further and automated the release process using GoReleaser. To publish a new release, the only thing I need is to create and push the Git tag. The corresponding GitHub Action will trigger a release process, and GoReleaser prepares the binaries and changelog based on declared conventions. The result has a high level of predictability, and no manual work is required.
-
How to start a Go project in 2023
Things I can't live without in a new Go project in no particular order:
- https://github.com/golangci/golangci-lint - meta-linter
- https://goreleaser.com - automate release workflows
- https://magefile.org - build tool that can version your tools
- https://github.com/ory/dockertest/v3 - run containers for e2e testing
- https://github.com/ecordell/optgen - generate functional options
- https://golang.org/x/tools/cmd/stringer - generate String()
- https://mvdan.cc/gofumpt - stricter gofmt
- https://github.com/stretchr/testify - test assertion library
- https://github.com/rs/zerolog - logging
- https://github.com/spf13/cobra - CLI framework
FWIW, I just lifted all the tools we use for https://github.com/authzed/spicedb
We've also written some custom linters that might be useful for other folks: https://github.com/authzed/spicedb/tree/main/tools/analyzers
-
What is recommended build tool and process for go project that contains multiple libraries, apis and executables?
Goreleaser is nice. https://goreleaser.com/
-
Best practices for distributing and updating a Go CLI on Linux?
I use goreleaser for packaging my binaries. I'm not currently doing RPM, but it does a lot of services and if you don't hunker down on a single solution, it might help with keeping your releases up to date/in sync.
-
Looking for projects ideas for experienced devops engineers
There's some packaging issues, for example, we've always wanted to publish deb/rpm packages, but never got around to adding it to either promu or completely switching our build tooling over to GoReleaser.
What are some alternatives?
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
Task - A task runner / simpler Make alternative written in Go
kitsune - 🦊 (fast) ActivityPub-federated microblogging
gron - gron, Cron Jobs in Go.
cargo-dist - 📦 shippable application packaging
go-torch
SquireCore - The backend library used by Squire Tournament Services
godropbox - Common libraries for writing Go services/applications.
cargo-install-favorites - Use the `cargo` command install our favorite crates
hub - A command-line tool that makes git easier to use with GitHub.
springtime - A framework for advanced Rust applications.
goreporter - A Golang tool that does static analysis, unit testing, code review and generate code quality report.