Lula Release
2 minute read
This document provides guidance on how to create Lula releases, address release issues, and other helpful tips.
Creating releases
This project uses goreleaser for releasing binaries and release-please for creating release PR’s.
How should I write my commits?
We use conventional commit messages Conventional Commit messages.
The most important prefixes you should have in mind are:
fix:
which represents bug fixes, and correlates to a SemVer patch.feat:
which represents a new feature, and correlates to a SemVer minor.feat!:
, orfix!:
,refactor!:
, etc., which represent a breaking change (indicated by the!
) and will result in a SemVer major.
How can I influence the version number for a release?
PR titles should also follow this pattern and are linted using commitlint. The PR title will determine the version bump. When a PR is merged (squashed) release-please will kick off a release PR. When that release PR is approved and merged, release-please will create a draft release. Once that draft release is published go-releaser with build and publish the assets, including creating a release in our Homebrew tap repository: https://github.com/defenseunicorns/homebrew-tap
- Pre-v1.0.0 release-please is configured to bump minors on breaking changes and patches otherwise. per release-please-config
How do I fix a release issue?
There are some different ways that something could go wrong with a release, below are some example scenarios and how to fix them.
A release is “broken” and should not be used
Rather than removing a release that is deemed to be broken in some fashion, it should be noted as a broken release in the release notes as soon as possible, and a new release created that fixes the issue(s).
The CHANGELOG is not required to be updated, only the release notes must be updated either manually or with CI automation.
- Manual approach: Find the impacted release, edit the release notes, and put this warning at the top:
>[!WARNING]
>PLEASE USE A NEWER VERSION (there are known issues with this release)
Other issues and helpful tips
- Manual approach: Confirm that the goreleaser configuration is valid by using the goreleaser cli.
goreleaser check .goreleaser.yaml [flags]
- Automated approach: On Push and Pull Request the GoReleaserGitHub Action Workflow will run the
goreleaser check
command
Feedback
Was this page helpful?