- Run
mage init
to install tooling. - Install trunk (quick install script:
curl https://get.trunk.io -fsSL | bash
) - Install aqua and have it configured in your path per directions.
- This will allow faster installs of project tooling by grabbing binaries for your platform more quickly (most of the time release binaries instead of building from source).
- Run
aqua install
for tooling such as changie or others for the project.- At this time, it expects you have to Go pre-installed.
This project uses an different approach to release, driving it from changelog and versioned changelog notes instead of tagging.
Use changie quick start for basic review.
- During development, new changes of note get tracked via
changie new
. This can span many pull requests, whatever makes sense as version to ship as changes to users. - To release the changes into a version,
changie batch <major|minor|patch>
(unless breaking changes occur, you'll want to stick with minor for feature additions, and patch for fixes or non app work.
Keep your summary of changes that users would care about in the .changes/
files it will create.
Update CHANGELOG.md by running changie merge
which will rebuild the changelog file with all the documented notes.
- Run
trunk fmt --all; trunk check --all
to finalize run through. - Push changelog via PR or direct if you have permissions and this will trigger the release-composite. If any issues, retrigger manually via
gh workflow run release-composite
. - Release should be published in the releases
- Edit the release and click "update release" to ensure it publishes to the marketplace. Unfortunately, creating a release doesn't trigger the marketplace release without doing this step. While this can be automated through other actions, I've opted due to time constraints to leave that last step as a manual one.
Changie notes are named like v1.0.4.md
.
This version number will be used to set the version of the release, so the docs in essence will be the version source of truth.
We use conventional commit. Pull requests must adhere to this to be merged.
Description should be bullet point list or longer-form content to describe anything the title doesn't make clear.