Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 17:26
· 1268 commits to main since this release
Immutable release. Only release title and notes can be modified.
5a8bb42

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 init publishes an installation's non-secret settings to its runs bucket, and anyone allowed to launch runs can use fugaro run, ls, diagnose and the rest in a checkout whose fugaro.yaml names gcp_project:, without running fugaro init themselves.
  • fugaro init --firebase now 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 --name creates a second project when you already have one, init says so when an installation-level flag will also onboard the checkout's repository, and it warns when XDG_CONFIG_HOME points at a temporary directory.
  • The classifier that decides which Terraform plans init applies 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

  1. Upgrade the CLI (brew upgrade dimipaun/tap/fugaro), and every teammate's CLI and every CI job that runs fugaro against a repository, before any repository merges gcp_project:: older versions refuse the key as unknown.
  2. In your own terminal, run fugaro init --publish-config once per installation to publish its shared settings (it works for installations whose runs bucket has the default name fugaro-runs-<gcp-project>, and refuses inside a coding agent's session).
  3. For each repository, in its checkout and in your own terminal: run plain fugaro init first, 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 needs fugaro 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 its fugaro binary from the base image, so a build before the base image is copied bakes in the old binary and refuses gcp_project:.
  4. Run fugaro init again in the checkout (not fugaro init --repo, which does not write the line): it asks Write this to <path>? [y/N], then adds gcp_project: to fugaro.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.0
  • ghcr.io/dimipaun/fugaro-web-node:0 (moves to the highest release of the major)
  • ghcr.io/dimipaun/fugaro-go:0.4.0 and ghcr.io/dimipaun/fugaro-go:0
  • ghcr.io/dimipaun/fugaro-java-services:0.4.0 and ghcr.io/dimipaun/fugaro-java-services:0
  • ghcr.io/dimipaun/fugaro-history:0.4.0 and ghcr.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.