Skip to content

Commit 5749442

Browse files
author
Zac
committed
Directly land Homebrew tap updates
1 parent c2477a6 commit 5749442

7 files changed

Lines changed: 30 additions & 23 deletions

File tree

‎.beads/issues.jsonl‎

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

‎.github/workflows/release.yml‎

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ on:
88
permissions:
99
contents: write
1010
id-token: write
11-
pull-requests: write
1211

1312
jobs:
1413
verify-version:
@@ -243,24 +242,27 @@ jobs:
243242
token: ${{ env.HOMEBREW_TAP_TOKEN }}
244243
path: homebrew-tap
245244

246-
- name: Update Homebrew formula
245+
- name: Land Homebrew formula in tap
247246
if: ${{ env.HOMEBREW_TAP_TOKEN != '' }}
248247
shell: bash
249248
run: |
250249
set -euo pipefail
250+
version="${{ needs.verify-version.outputs.version }}"
251+
252+
# Spine release policy: the release tag is the review gate, so tap
253+
# updates land directly instead of opening a follow-up Homebrew PR.
254+
mkdir -p homebrew-tap/Formula
251255
cp dist/archives/airlock.rb homebrew-tap/Formula/airlock.rb
252256
253-
- name: Open Homebrew tap PR
254-
if: ${{ env.HOMEBREW_TAP_TOKEN != '' }}
255-
uses: peter-evans/create-pull-request@v7
256-
with:
257-
token: ${{ env.HOMEBREW_TAP_TOKEN }}
258-
path: homebrew-tap
259-
commit-message: "airlock v${{ needs.verify-version.outputs.version }}"
260-
branch: "release/airlock-v${{ needs.verify-version.outputs.version }}"
261-
delete-branch: true
262-
title: "airlock v${{ needs.verify-version.outputs.version }}"
263-
body: |
264-
Update `Formula/airlock.rb` for `airlock` v${{ needs.verify-version.outputs.version }}.
265-
add-paths: |
266-
Formula/airlock.rb
257+
cd homebrew-tap
258+
git config user.name "github-actions[bot]"
259+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
260+
git add Formula/airlock.rb
261+
262+
if git diff --cached --quiet; then
263+
echo "Formula unchanged. No-op."
264+
exit 0
265+
fi
266+
267+
git commit -m "airlock v${version}"
268+
git push origin HEAD:main

‎Cargo.lock‎

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "airlock"
3-
version = "0.2.0"
3+
version = "0.2.1"
44
edition = "2021"
55
rust-version = "1.80"
66
description = "Prove what crossed the model boundary"

‎README.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@ brew install cmdrvl/tap/airlock
4545
### From Source
4646

4747
```bash
48-
cargo install --git https://github.com/cmdrvl/airlock --tag v0.2.0
48+
cargo install --git https://github.com/cmdrvl/airlock --tag v0.2.1
4949
```
5050

5151
### Verify
5252

5353
```bash
5454
airlock --version
55-
# airlock 0.2.0
55+
# airlock 0.2.1
5656
```
5757

5858
## Quick Start
@@ -399,7 +399,7 @@ evidence patterns, and real model-boundary sensitivity.
399399

400400
## Roadmap
401401

402-
v0.2.0 is the current foundational release. Next:
402+
v0.2.1 is the current foundational release. Next:
403403

404404
1. Seal integration with `pack` for immutable manifest bundles
405405
2. Register Airlock proofs in catalog

‎docs/airlock_plan.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1084,6 +1084,9 @@ Airlock should ship with the same release posture as the mature spine tools:
10841084
- keyless signing / attestation for release checksums
10851085
- published SBOM artifact
10861086
- Homebrew tap update in `cmdrvl/homebrew-tap`
1087+
- generated Homebrew formula lands directly on the tap default branch when
1088+
`HOMEBREW_TAP_TOKEN` is configured; Airlock follows the spine-tool policy
1089+
that the release tag is the review gate, not a follow-up tap PR
10871090

10881091
The release workflow should validate that the requested release version matches
10891092
`Cargo.toml` before publishing immutable artifacts.
@@ -1289,6 +1292,8 @@ Airlock follows the same pattern:
12891292
- Versioning: independent semver via `Cargo.toml`
12901293
- Interop: `operator.json` declaring pipeline position
12911294
- CI: `.github/workflows/release.yml` matching existing spine release template
1295+
- Tap landing: direct-push `Formula/airlock.rb` into the `main` branch of
1296+
`cmdrvl/homebrew-tap` during release, instead of opening a tap PR
12921297

12931298
### Execution guardrails live outside this repo
12941299

‎operator.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "airlock",
3-
"version": "0.2.0",
3+
"version": "0.2.1",
44
"description": "Prove what crossed the model boundary",
55
"pipeline_position": {
66
"upstream": [

0 commit comments

Comments
 (0)