You can use the provided flake.nix
file to stand up a
nix-develop
shell containing all dependencies required for developing collie, including the
cloud CLIs (aws, az, gcloud). Using the nix develop shell is optional, you can
of course use it as a recipe for installing depencies with your package manager
of choice.
The repository contains some conventional git hooks that make it easier to comply with enforced code style by automating code formatting. Using these is optional, though CI will of course enforce code style for pull requests.
git config core.hooksPath .githooks
For changes on code a new branch must be created from main
. E.g. you create a
new great feature that is ready for review. You create a branch
feature/something-really-great
and submit it as a PR against main
.
After approval queue your changes for merging via GitHub's merge queue.
We are using GitHub Action as CI/CD pipeline for collie, specifically this release workflow.
The versions have this format vMAJOR.MINOR.PATCH
, e.g. v0.1.0
.
MAJOR
representing a breaking changeMINOR
indicates new featuresPATCH
indicates backwards-compatible patches
The release is triggered by creating a new release via GitHub's UI as a prerelease. This gives us a good workflow to review and edit release notes before publishing as well as running end to end tests before publishing the release.
The full workflow from forth to back is as follows:
- decide on the version number you want to use for the release choose a new tag "vMAJOR.MINOR.PATCH"
- click "Generate release notes" and tick *
- the release binaries are created automatically by the release workflow
- the e2e tests are run after the release workflow completes e2e workflow
- manually inspect the e2e test outcomes and publish the release
Note: The install script also always works with thse latest version, so you're done. Nice! 🎉