Repository navigation
v0.4.0
·
1268 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Fugaro v0.4.0
Install:
- Homebrew:
brew install dimipaun/tap/fugaro - Go:
go install github.com/dimipaun/fugaro/cmd/fugaro@v0.4.0 - Or download an archive below and verify it against
checksums.txt(see docs/release.md).
Highlights
- Teammates need no setup:
fugaro initpublishes an installation's non-secret settings to its runs bucket, and anyone allowed to launch runs can usefugaro run,ls,diagnoseand the rest in a checkout whosefugaro.yamlnamesgcp_project:, without runningfugaro initthemselves. fugaro init --firebasenow adopts a Firebase project that already holds a previous installation's database, web API key, token signer and minter role, instead of failing with "already exists"; it refuses look-alikes and any foreign member who could mint run tokens, so moving an installation no longer needs hand-edited Terraform state.fugaro init --namecreates a second project when you already have one,initsays so when an installation-level flag will also onboard the checkout's repository, and it warns whenXDG_CONFIG_HOMEpoints at a temporary directory.- The classifier that decides which Terraform plans
initapplies under one confirmation now accepts an import only when that stage's own discovery found it, for the installation, repository and Firebase stages alike. - The README is rewritten with safety first: the agent never runs on your machine, and it lists plainly what a run can and cannot reach (the network is unrestricted, and on GitHub a run holds the App's private key). From this release, GitHub releases carry these highlights above a changelog without commit hashes, and are normal releases, no longer marked pre-release.
For operators
- Upgrade the CLI (
brew upgrade dimipaun/tap/fugaro), and every teammate's CLI and every CI job that runsfugaroagainst a repository, before any repository mergesgcp_project:: older versions refuse the key as unknown. - In your own terminal, run
fugaro init --publish-configonce per installation to publish its shared settings (it works for installations whose runs bucket has the default namefugaro-runs-<gcp-project>, and refuses inside a coding agent's session). - For each repository, in its checkout and in your own terminal: run plain
fugaro initfirst, so the 0.4.0 base image for the repository's base kind is copied into the registry and recorded (a repository whose local config uses a development base image needsfugaro init --base <kind>first, for example--base go). Only then rebuild its job image (fugaro image build --repo <owner/name> --workflow <name>): a derived image takes itsfugarobinary from the base image, so a build before the base image is copied bakes in the old binary and refusesgcp_project:. - Run
fugaro initagain in the checkout (notfugaro init --repo, which does not write the line): it asksWrite this to <path>? [y/N], then addsgcp_project:tofugaro.yaml, and must print no "built before fugaro.yaml could carry gcp_project" warning. Merge that change last.
Adopting an existing Firebase root works while the installation's GCP project stays the same; moving to a different GCP project is still refused by the existing database check (see "Known limits" in docs/design/adopt-firebase-root.md).
Changelog
- release: highlights, readable changelog, normal releases from 0.4.0, /new-release skill (#143)
- README: rewrite for 0.4.0, safety first, setup detail moved to docs (#145)
- init --firebase: adopt existing Firebase-root resources; Cover accepts only discovered imports (#144)
- init: second project with --name, installation-flag note, temp XDG warning (#141)
- scripts: make the interrupt test robust when SIGINT is ignored (#142)
- budget show: signed negative money; cover: table-check computed roles, split fugaroAccount (#140)
- Shared installation config: teammates need no setup (#138)
Base images
Published by the images workflow for this tag:
ghcr.io/dimipaun/fugaro-web-node:0.4.0ghcr.io/dimipaun/fugaro-web-node:0(moves to the highest release of the major)ghcr.io/dimipaun/fugaro-go:0.4.0andghcr.io/dimipaun/fugaro-go:0ghcr.io/dimipaun/fugaro-java-services:0.4.0andghcr.io/dimipaun/fugaro-java-services:0ghcr.io/dimipaun/fugaro-history:0.4.0andghcr.io/dimipaun/fugaro-history:0(the sweeper and history job's image)
The images workflow then pulls each one with no login and fails if it is not public or lacks linux/amd64; each image's digest is in that run's summary.
The Terraform modules, the schemas and the plugin are versioned by this same tag.