Skip to content

Commit 4558b56

Browse files
Tighten tap validation workflow (#1)
* Tighten tap validation workflow * Add tap review templates and release docs
1 parent 0ca42d2 commit 4558b56

6 files changed

Lines changed: 131 additions & 1 deletion

File tree

.github/pull_request_template.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
## Why
2+
3+
- What problem does this change solve in the tap or formula workflow?
4+
- Why should we take it now?
5+
6+
## What Changed
7+
8+
-
9+
10+
## Decision Record
11+
12+
- ADR updated: `none` / `docs/adr/XXXX-title.md`
13+
- Alternatives considered:
14+
- Why they were not chosen:
15+
16+
## Release Impact
17+
18+
- Formula behavior changed: `yes` / `no`
19+
- Release SOP updated: `yes` / `no` / `not needed`
20+
- Coordination needed with `amberframework/amber_cli`: `yes` / `no`
21+
22+
## Verification
23+
24+
-
25+
26+
## Risks And Rollback
27+
28+
- Risk level:
29+
- Rollback plan:

.github/workflows/update-formula.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
name: Update Formula
22

3+
permissions:
4+
contents: write
5+
36
on:
47
repository_dispatch:
58
types: [release-published]
@@ -10,7 +13,7 @@ jobs:
1013

1114
steps:
1215
- name: Checkout tap
13-
uses: actions/checkout@v4
16+
uses: actions/checkout@v6
1417

1518
- name: Get release info
1619
id: release

.github/workflows/validate-install.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ jobs:
4343
fi
4444
brew tap amberframework/amber_cli
4545
brew install amber_cli
46+
brew test amber_cli
4647
amber --version
4748
test -x "$(command -v amber-lsp)"
4849
crystal --version
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# ADR 0001: Keep Amber CLI Distribution In A Dedicated Tap During The Release-Candidate Phase
2+
3+
## Context
4+
5+
Amber v2 needs a trustworthy install path before the public announcement goes out. The immediate requirement is to verify the exact commands users will run:
6+
7+
```bash
8+
brew tap amberframework/amber_cli
9+
brew install amber_cli
10+
amber new my_app
11+
```
12+
13+
The CLI release process is still evolving, and the team wants to keep the tap formula, checksum updates, and smoke tests under direct control before pursuing `homebrew/core`.
14+
15+
## Decision
16+
17+
During the Amber v2 release-candidate phase:
18+
19+
- the tap formula will point at released Amber CLI assets from `amberframework/amber_cli`
20+
- the tap will update itself from the CLI release workflow
21+
- tap CI will verify both `brew test amber_cli` and a scaffold smoke test on macOS and Ubuntu
22+
23+
## Consequences
24+
25+
### Positive
26+
27+
- the actual end-user install path is under CI coverage
28+
- release regressions are caught before announcement posts go live
29+
- the tap can evolve quickly while the CLI and docs stabilize
30+
31+
### Tradeoffs
32+
33+
- the tap is one more repository to keep aligned
34+
- this is a stepping stone, not the final `homebrew/core` story
35+
36+
### Follow-up
37+
38+
Once the release process and scaffold stabilize, evaluate a source-built formula path for `homebrew/core`.

docs/adr/README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Architecture Decision Records
2+
3+
This directory records the durable reasons behind how the Amber CLI Homebrew tap works.
4+
5+
Add or update an ADR when a change affects:
6+
7+
- formula distribution strategy
8+
- tap CI expectations
9+
- release handoff from `amberframework/amber_cli`
10+
- the verified install path users run on fresh machines
11+
12+
Keep ADRs short:
13+
14+
1. Context
15+
2. Decision
16+
3. Consequences

docs/release-handoff.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Release Handoff
2+
3+
This repository is the Homebrew distribution layer for `amberframework/amber_cli`.
4+
5+
## Purpose
6+
7+
The tap exists to make the Amber v2 install path real and testable before broader package distribution work begins.
8+
9+
The path we care about is:
10+
11+
```bash
12+
brew tap amberframework/amber_cli
13+
brew install amber_cli
14+
brew test amber_cli
15+
amber new my_app
16+
```
17+
18+
## Responsibilities
19+
20+
This repo is responsible for:
21+
22+
- updating `Formula/amber_cli.rb` after a CLI release
23+
- keeping macOS and Ubuntu install smoke tests green
24+
- documenting any packaging decisions that affect users
25+
26+
## PR Expectations
27+
28+
Any PR that touches the formula or workflows should explain:
29+
30+
- why the tap behavior is changing
31+
- whether coordination with `amberframework/amber_cli` is required
32+
- how the change was verified
33+
34+
Use the repository PR template so this context is captured in review.
35+
36+
## Release Verification
37+
38+
After a CLI release:
39+
40+
1. confirm the formula version and checksums updated
41+
2. confirm `Validate Install` passed on macOS
42+
3. confirm `Validate Install` passed on Ubuntu
43+
4. if the update fails, patch the formula manually and rerun the smoke workflow

0 commit comments

Comments
 (0)