# Releasing GerberGuard-MBT

Mooncakes versions are immutable. Update `version` in `moon.mod` and
`CHANGELOG.md` before publishing any release after 0.1.0.

## 1. Verify identity and repository state

```bash
moon whoami
git status --short
git rev-list --count HEAD
```

The Mooncakes account must match the `001-Elsa` namespace in `moon.mod`, and
the working tree must be clean.

## 2. Run the release gate

```bash
moon update
moon fmt --check
moon check --target all --deny-warn
moon test --target all --deny-warn
moon build --release --target native
moon info
git diff --exit-code
moon package --list
moon publish --dry-run
```

Inspect the packaged file list and ensure it contains source, tests, generated
interfaces, documentation, fixtures, and the root Apache-2.0 license, without
build caches or local credentials.

## 3. Publish and verify

```bash
moon publish
```

After publishing, confirm that `001-Elsa/gerberguard` and the intended version
are visible on mooncakes.io before announcing the release.

## 4. Synchronize public repositories

Push the same verified commit to the default branches on both public remotes:

```bash
git push github master
git push gitlink master
```

Confirm each remote's HEAD with `git remote show github` and
`git remote show gitlink`, then wait for the latest GitHub Actions run to pass.
