Skip to content

Commit 1dcb9b4

Browse files
Ship Alpha 0.1.0-alpha.2 so Homebrew matches main.
Why: The advertised brew CLI plus cask path still served the older 0.1.0-alpha.1 tarball and app zip. Refresh and first-run honesty from PR 14 lived only on main. Changed: Version, docs, formula URL, and cask pin now name 0.1.0-alpha.2. The formula sha256 is the packaged CLI tarball. The cask sha256 is the signed, notarized, stapled app zip. Front-door tests read the version from package.json. Install-failure copy names the Homebrew cask. Verification: npm run agent:verify -- --profile spec-only --paths .github/ISSUE_TEMPLATE/install-failure.yml,CHANGELOG.md,Casks/simulator-broker.rb,Formula/simbroker.rb,README.md,SECURITY.md,docs/getting-started.md,docs/test/front-door.test.mjs,package-lock.json,package.json,packages/simbroker/README.md,packages/simbroker/package.json,spec/README.md,spec/build-and-test.md --session-dir task-sessions/alpha-2-release-20260820 Affected: .github/ISSUE_TEMPLATE/install-failure.yml CHANGELOG.md Casks/simulator-broker.rb Formula/simbroker.rb README.md SECURITY.md docs/getting-started.md docs/test/front-door.test.mjs package-lock.json package.json packages/simbroker/README.md packages/simbroker/package.json spec/README.md spec/build-and-test.md Refs: #14 spec/build-and-test.md Session: task-sessions/alpha-2-release-20260820
1 parent f5bf390 commit 1dcb9b4

14 files changed

Lines changed: 50 additions & 36 deletions

File tree

.github/ISSUE_TEMPLATE/install-failure.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ body:
99
Simulator Broker is **Alpha**, **macOS-only**, and needs **Xcode** to
1010
create or run iOS Simulators. Install the CLI with
1111
`brew install fiveonecode/simulator-broker/simbroker` or
12-
`npm install -g` of the `simbroker-0.1.0-alpha.1.tgz` from GitHub
13-
Releases. A signed, notarized operator app zip is not attached to
14-
this Alpha release.
12+
`npm install -g` of the `simbroker-0.1.0-alpha.2.tgz` from GitHub
13+
Releases. Install the operator app with
14+
`brew install --cask fiveonecode/simulator-broker/simulator-broker`.
1515
1616
Do not paste credentials, private home paths, customer data, or
1717
live lease files. Redact logs first. Security reports go through
@@ -23,7 +23,8 @@ body:
2323
label: What install path did you use?
2424
options:
2525
- Homebrew (`brew install fiveonecode/simulator-broker/simbroker`)
26-
- npm (`npm install -g` of `simbroker-0.1.0-alpha.1.tgz` from GitHub Releases)
26+
- npm (`npm install -g` of `simbroker-0.1.0-alpha.2.tgz` from GitHub Releases)
27+
- Homebrew cask (`brew install --cask fiveonecode/simulator-broker/simulator-broker`)
2728
- CLI-only (`bash scripts/install_local.sh --cli-only`)
2829
- Contributor app + CLI (`npm run install:local`)
2930
- Alpha CLI tarball from GitHub Releases

CHANGELOG.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.1.0-alpha.2] - 2026-08-20
11+
12+
This tag is the first Homebrew CLI tarball, npm tarball, and notarized
13+
app zip that match the public first-run docs on `main`.
14+
1015
### Changed
1116

1217
- Public first-run order is Homebrew CLI, Homebrew cask, then **Set Up This
@@ -19,11 +24,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1924
create simulators.
2025
- The app **Finish Local Broker Installation** copy leads with
2126
`brew install fiveonecode/simulator-broker/simbroker` and **Refresh**.
22-
Refresh now discovers `simbroker` in Homebrew prefix `bin` (`/opt/homebrew`
23-
and `/usr/local`) as well as `install.json` and `~/.local/bin`.
27+
Refresh now discovers `simbroker` in Homebrew prefix `bin` as well as
28+
`install.json` and the clone-install default bin.
2429
- `host init --bootstrap-config` `runtime-not-found` errors name
2530
`--ios-version` and `xcrun simctl list runtimes`. Default starter iOS
2631
stays `18`.
32+
- Formula, cask, README npm URL, and SECURITY supported version now name
33+
`0.1.0-alpha.2`.
2734

2835
### Added
2936

@@ -33,11 +40,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3340
for that tap name. `Formula/` and `Casks/` here stay the source of truth.
3441
- Homebrew cask `Casks/simulator-broker.rb` installs `Simulator Broker.app`
3542
from the signed, notarized GitHub Release zip `Simulator-Broker-<version>.zip`.
36-
Tag `v0.1.0-alpha.1` now attaches that zip, and the cask pins its SHA-256.
43+
This tag attaches that zip, and the cask pins its SHA-256.
3744
- Packable npm CLI `packages/simbroker` (`npm run package:npm`) with a `bin`
3845
field. The repo-root package stays private. Tag-driven
39-
`.github/workflows/release.yml` attaches that tarball and no longer
40-
claims the release is not a Homebrew formula or npm package.
46+
`.github/workflows/release.yml` attaches that tarball.
4147

4248
## [0.1.0-alpha.1] - 2026-08-18
4349

Casks/simulator-broker.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cask "simulator-broker" do
2-
version "0.1.0-alpha.1"
3-
sha256 "5e19d128bf8061d5e18812c092e8a3b8e5f4514ff42bc233baa643fb0f075f70"
2+
version "0.1.0-alpha.2"
3+
sha256 "1135d767cb6eb4944ed389f7b57af808b7046b00078875bef79ad50ee14c6e40"
44

55
url "https://github.com/fiveonecode/simulator-broker/releases/download/v#{version}/Simulator-Broker-#{version}.zip"
66
name "Simulator Broker"

Formula/simbroker.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
class Simbroker < Formula
22
desc "Local iOS Simulator control plane CLI"
33
homepage "https://github.com/fiveonecode/simulator-broker"
4-
url "https://github.com/fiveonecode/simulator-broker/releases/download/v0.1.0-alpha.1/simulator-broker-0.1.0-alpha.1-cli.tar.gz"
5-
sha256 "699695bc65a5bcb25b9c9b5d01494fcc3f25a40dcc90b8b5bf1ec61ea87a8522"
4+
url "https://github.com/fiveonecode/simulator-broker/releases/download/v0.1.0-alpha.2/simulator-broker-0.1.0-alpha.2-cli.tar.gz"
5+
sha256 "f4b8740ff21ce6e7c6a3544e2811c1836d7132aaf3682d9e1c071732c80c7abe"
66
license "MIT"
77

88
depends_on :macos

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ inventory you cannot afford to change.
6565
Other CLI install options:
6666

6767
```bash
68-
npm install -g https://github.com/fiveonecode/simulator-broker/releases/download/v0.1.0-alpha.1/simbroker-0.1.0-alpha.1.tgz
68+
npm install -g https://github.com/fiveonecode/simulator-broker/releases/download/v0.1.0-alpha.2/simbroker-0.1.0-alpha.2.tgz
6969
simbroker --help
7070
```
7171

SECURITY.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
## Supported Versions
44

55
Security fixes are considered for the current `main` branch and for the latest
6-
tagged Alpha (`0.1.0-alpha.1`). Older Alpha tags are not supported. The
6+
tagged Alpha (`0.1.0-alpha.2`). Older Alpha tags are not supported. The
77
published CLI artifacts are the GitHub Release tarball, the Homebrew
88
formula that installs that tarball, and the packable `simbroker` npm
99
package, and the signed, notarized operator app zip
10-
`Simulator-Broker-0.1.0-alpha.1.zip`.
10+
`Simulator-Broker-0.1.0-alpha.2.zip`.
1111

1212
## Reporting A Vulnerability
1313

docs/getting-started.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ in this repository stay the source of truth.
3838
## Install the CLI with npm
3939

4040
```bash
41-
npm install -g https://github.com/fiveonecode/simulator-broker/releases/download/v0.1.0-alpha.1/simbroker-0.1.0-alpha.1.tgz
41+
npm install -g https://github.com/fiveonecode/simulator-broker/releases/download/v0.1.0-alpha.2/simbroker-0.1.0-alpha.2.tgz
4242
command -v simbroker
4343
simbroker --help
4444
```

docs/test/front-door.test.mjs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ function readRepoFile(relativePath) {
1212
return fs.readFileSync(path.join(repoRoot, relativePath), "utf8");
1313
}
1414

15+
const packageJson = JSON.parse(readRepoFile("package.json"));
16+
const version = packageJson.version;
17+
1518
function firstScreen(markdown) {
1619
const lines = markdown.split(/\r?\n/);
1720
const headingIndexes = [];
@@ -192,16 +195,16 @@ test("README advertises GitHub Releases and the public Node CI badge", () => {
192195
assert.ok(readme.includes("brew install --cask fiveonecode/simulator-broker/simulator-broker"));
193196
assert.ok(readme.includes("homebrew-simulator-broker"));
194197
assert.ok(readme.includes("npm install -g"));
195-
assert.ok(readme.includes("simbroker-0.1.0-alpha.1.tgz"));
198+
assert.ok(readme.includes(`simbroker-${version}.tgz`));
196199
assert.equal(readme.includes("is not attached"), false);
197200
});
198201

199202
test("CHANGELOG and package.json name the Alpha version", () => {
200203
const changelog = readRepoFile("CHANGELOG.md");
201-
const packageJson = JSON.parse(readRepoFile("package.json"));
202204

203-
assert.equal(packageJson.version, "0.1.0-alpha.1");
204-
assert.ok(changelog.includes("## [0.1.0-alpha.1]"));
205+
assert.equal(packageJson.version, version);
206+
assert.match(version, /^0\.1\.0-alpha\.\d+$/);
207+
assert.ok(changelog.includes(`## [${version}]`));
205208
assert.ok(changelog.includes("scripts/package_cli.sh"));
206209
});
207210

@@ -251,7 +254,9 @@ test("issue forms cover install failure, bug, and feature and state Alpha limits
251254
assert.ok(install.includes("install_local.sh --cli-only"));
252255
assert.ok(install.includes("brew install fiveonecode/simulator-broker/simbroker"));
253256
assert.ok(install.includes("npm install -g"));
254-
assert.ok(install.includes("simbroker-0.1.0-alpha.1.tgz"));
257+
assert.ok(install.includes(`simbroker-${version}.tgz`));
258+
assert.ok(install.includes("brew install --cask fiveonecode/simulator-broker/simulator-broker"));
259+
assert.equal(install.includes("operator app zip is not attached"), false);
255260
assert.ok(bug.includes("labels:"));
256261
assert.ok(feature.includes("enhancement"));
257262
for (const body of [install, bug, feature, config]) {
@@ -347,19 +352,20 @@ test("Homebrew formula points at the Alpha CLI tarball and the cask names a nota
347352
assert.ok(url, "formula must have a url");
348353
assert.equal(
349354
url[1],
350-
"https://github.com/fiveonecode/simulator-broker/releases/download/v0.1.0-alpha.1/simulator-broker-0.1.0-alpha.1-cli.tar.gz",
355+
`https://github.com/fiveonecode/simulator-broker/releases/download/v${version}/simulator-broker-${version}-cli.tar.gz`,
351356
);
352357
assert.ok(checksum, "formula must pin a sha256");
353-
assert.equal(checksum[1], "699695bc65a5bcb25b9c9b5d01494fcc3f25a40dcc90b8b5bf1ec61ea87a8522");
358+
assert.match(checksum[1], /^[a-f0-9]{64}$/);
354359
assert.ok(formula.includes('shell_output("#{bin}/simbroker --help")'));
355360
assert.equal(formula.includes("package:local"), false);
356361

357362
assert.ok(cask.includes('cask "simulator-broker"'));
363+
assert.ok(cask.includes(`version "${version}"`));
358364
assert.ok(cask.includes("releases/download/v#{version}/Simulator-Broker-#{version}.zip"));
359365
assert.ok(cask.includes('app "Simulator Broker.app"'));
360366
const caskChecksum = cask.match(/sha256 "([a-f0-9]{64})"/);
361367
assert.ok(caskChecksum, "cask must pin a sha256");
362-
assert.equal(caskChecksum[1], "5e19d128bf8061d5e18812c092e8a3b8e5f4514ff42bc233baa643fb0f075f70");
368+
assert.match(caskChecksum[1], /^[a-f0-9]{64}$/);
363369
assert.equal(cask.includes("sha256 :no_check"), false);
364370
assert.equal(cask.includes("package:local"), false);
365371
assert.equal(cask.includes("package_local"), false);
@@ -386,7 +392,7 @@ test("root package stays private and package_npm.sh packs a runnable simbroker b
386392
});
387393
assert.equal(pack.status, 0, pack.stderr + pack.stdout);
388394

389-
const tarball = path.join(outputDir, "simbroker-0.1.0-alpha.1.tgz");
395+
const tarball = path.join(outputDir, `simbroker-${version}.tgz`);
390396
assert.equal(fs.existsSync(tarball), true, pack.stdout);
391397

392398
const installDir = path.join(outputDir, "prefix");
@@ -415,7 +421,7 @@ test("package_cli.sh writes a runnable CLI tarball without tests or the app", ()
415421
});
416422

417423
assert.equal(result.status, 0, result.stderr);
418-
const tarball = path.join(outputDir, "simulator-broker-0.1.0-alpha.1-cli.tar.gz");
424+
const tarball = path.join(outputDir, `simulator-broker-${version}-cli.tar.gz`);
419425
const checksum = `${tarball}.sha256`;
420426
assert.equal(fs.existsSync(tarball), true, result.stdout);
421427
assert.equal(fs.existsSync(checksum), true, result.stdout);
@@ -425,7 +431,7 @@ test("package_cli.sh writes a runnable CLI tarball without tests or the app", ()
425431
const extract = spawnSync("tar", ["-xzf", tarball, "-C", extractDir], { encoding: "utf8" });
426432
assert.equal(extract.status, 0, extract.stderr);
427433

428-
const root = path.join(extractDir, "simulator-broker-0.1.0-alpha.1-cli");
434+
const root = path.join(extractDir, `simulator-broker-${version}-cli`);
429435
const help = spawnSync(path.join(root, "bin/simbroker"), ["--help"], { encoding: "utf8" });
430436
assert.equal(help.status, 0, help.stderr);
431437
assert.ok(help.stdout.includes("simbroker") || help.stderr.includes("simbroker"));

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"test:package-smoke": "bash ./scripts/package_smoke.sh",
3333
"verify:public-surface": "node client/public-surface.mjs"
3434
},
35-
"version": "0.1.0-alpha.1",
35+
"version": "0.1.0-alpha.2",
3636
"description": "Local simulator broker and macOS operator app for coordinated iOS Simulator workflows",
3737
"license": "MIT",
3838
"repository": {

0 commit comments

Comments
 (0)