Skip to content

Add Homebrew formula, cask, and packable simbroker npm CLI - #12

Merged
VladimirBrejcha merged 4 commits into
mainfrom
release/homebrew-notarized-npm
Aug 19, 2026
Merged

Add Homebrew formula, cask, and packable simbroker npm CLI#12
VladimirBrejcha merged 4 commits into
mainfrom
release/homebrew-notarized-npm

Conversation

@VladimirBrejcha

Copy link
Copy Markdown
Contributor

Strangers still needed a clone or a manual tarball extract. The Alpha GitHub Release already had a CLI tarball, but docs said there was no Homebrew formula or npm package.

This is the Homebrew / notarized-app cask / npm slice only. It does not submit to homebrew-core. It does not change OpenCodeReview. It does not stop brokerd.

What landed

  • Formula/simbroker.rb installs the v0.1.0-alpha.1 CLI tarball: brew install fiveonecode/simulator-broker/simbroker.
  • Casks/simulator-broker.rb installs Simulator Broker.app from the signed, notarized GitHub Release zip Simulator-Broker-<version>.zip. That zip is not attached to the current Alpha release. Produce it with npm run package:distribution after Developer ID signing and notarytool. The cask is not package:local.
  • packages/simbroker is a packable npm CLI with a bin field. npm run package:npm writes simbroker-0.1.0-alpha.1.tgz. The repo-root package stays private.
  • That tarball is attached to v0.1.0-alpha.1 so npm install -g https://github.com/fiveonecode/simulator-broker/releases/download/v0.1.0-alpha.1/simbroker-0.1.0-alpha.1.tgz works.
  • README, getting-started, status, SECURITY, CHANGELOG, and front-door tests advertise the one-liners and drop the old not-yet wording.

Verification

  • npm run agent:verify -- --profile spec-only — pass
  • node --test docs/test/front-door.test.mjs — 15/15 pass
  • npm run verify:public-surface — pass (261 files)
  • npm run agent:complete — pass
  • brew audit / brew fetch / brew install then uninstall via a scratch tap — formula installable; help is human, not JSON-only
  • Live npm publish not done (prerelease needs --tag; GitHub Release tgz is the one-liner)
  • No Developer ID Application identity here; notarized app zip is not attached and is not advertised as downloadable

Head: 5e6b28cc7a0751a9b448cbe7f8a5fb4e70b68e65
Session: task-sessions/20260819-homebrew-notarized-npm

Why:
Strangers still needed a clone or a manual tarball extract to get
simbroker. The Alpha GitHub Release already had a CLI tarball, but there
was no brew or npm one-liner, and docs said those packages did not exist.

Changed:
Formula/simbroker.rb installs the v0.1.0-alpha.1 CLI tarball through
Homebrew. Casks/simulator-broker.rb installs Simulator Broker.app from
the signed, notarized GitHub Release zip Simulator-Broker-<version>.zip
when that zip is attached; it is not package:local. packages/simbroker
is a packable npm CLI with a bin field; scripts/package_npm.sh stages
the runtime without tests. The repo-root package stays private. README,
getting-started, status, SECURITY, CHANGELOG, and front-door tests
advertise brew and npm installs and drop the old not-yet wording. A
signed notarized app zip is not attached in this change.

Verification:
npm run agent:verify -- --profile spec-only --paths .agents/manifests/specs.yaml,.agents/verify/spec-only.yaml,.github/ISSUE_TEMPLATE/feature.yml,Casks/simulator-broker.rb,Formula/simbroker.rb,packages/simbroker/package.json,packages/simbroker/bin/simbroker.js,packages/simbroker/README.md,scripts/package_npm.sh,scripts/package_cli.sh,package.json,README.md,CHANGELOG.md,SECURITY.md,docs/getting-started.md,docs/status.md,docs/test/front-door.test.mjs,spec/project-structure.md,spec/README.md,spec/build-and-test.md --session-dir task-sessions/20260819-homebrew-notarized-npm
node --test docs/test/front-door.test.mjs
npm run verify:public-surface

Affected:
.agents/manifests/specs.yaml
.agents/verify/spec-only.yaml
.github/ISSUE_TEMPLATE/feature.yml
CHANGELOG.md
Casks/simulator-broker.rb
Formula/simbroker.rb
README.md
SECURITY.md
docs/getting-started.md
docs/status.md
docs/test/front-door.test.mjs
package.json
packages/simbroker/README.md
packages/simbroker/bin/simbroker.js
packages/simbroker/package.json
scripts/package_cli.sh
scripts/package_npm.sh
spec/README.md
spec/build-and-test.md
spec/project-structure.md

Refs:
https://github.com/fiveonecode/simulator-broker
https://github.com/fiveonecode/simulator-broker/releases/tag/v0.1.0-alpha.1
spec/project-structure.md

Session:
task-sessions/20260819-homebrew-notarized-npm
Why:
The install-failure issue form still said there was no Homebrew formula
or npm package. That contradicted the step-7 CLI one-liners.

Changed:
The install-failure form names brew install and the GitHub Release npm
tarball, and those paths appear in the install-path dropdown. Front-door
tests require every issue form to omit the old not-yet sentence.

Verification:
npm run agent:verify -- --profile spec-only --paths .agents/manifests/specs.yaml,.agents/verify/spec-only.yaml,.github/ISSUE_TEMPLATE/feature.yml,.github/ISSUE_TEMPLATE/install-failure.yml,.github/ISSUE_TEMPLATE/bug.yml,.github/ISSUE_TEMPLATE/config.yml,Casks/simulator-broker.rb,Formula/simbroker.rb,packages/simbroker/package.json,packages/simbroker/bin/simbroker.js,packages/simbroker/README.md,scripts/package_npm.sh,scripts/package_cli.sh,package.json,README.md,CHANGELOG.md,SECURITY.md,docs/getting-started.md,docs/status.md,docs/test/front-door.test.mjs,spec/project-structure.md,spec/README.md,spec/build-and-test.md --session-dir task-sessions/20260819-homebrew-notarized-npm
node --test docs/test/front-door.test.mjs

Affected:
.github/ISSUE_TEMPLATE/install-failure.yml
docs/test/front-door.test.mjs

Refs:
#12
spec/project-structure.md

Session:
task-sessions/20260819-homebrew-notarized-npm
Why:
Homebrew maps fiveonecode/simulator-broker to
fiveonecode/homebrew-simulator-broker. Formula files in this product
repo never made the advertised one-liner work for a stranger.

Changed:
Document that brew install fiveonecode/simulator-broker/simbroker clones
fiveonecode/homebrew-simulator-broker, while Formula/ and Casks/ here
stay the source of truth. Add scripts/sync_homebrew_tap.sh. Front-door
tests require the homebrew- GitHub name and a live tap Formula on main.

Verification:
npm run agent:verify -- --profile spec-only --paths .agents/manifests/specs.yaml,scripts/sync_homebrew_tap.sh,README.md,docs/getting-started.md,docs/status.md,docs/test/front-door.test.mjs,CHANGELOG.md,spec/project-structure.md,spec/README.md,spec/build-and-test.md --session-dir task-sessions/20260819-homebrew-tap-p1
node --test docs/test/front-door.test.mjs

Affected:
.agents/manifests/specs.yaml
scripts/sync_homebrew_tap.sh
README.md
docs/getting-started.md
docs/status.md
docs/test/front-door.test.mjs
CHANGELOG.md
spec/project-structure.md
spec/README.md
spec/build-and-test.md

Refs:
#12
https://github.com/fiveonecode/homebrew-simulator-broker
spec/project-structure.md

Session:
task-sessions/20260819-homebrew-tap-p1
Why:
The tag-driven release notes still said the release was not a Homebrew
formula or npm package, and the workflow never attached the npm tarball.
The spec-only front-door suite also fetched live GitHub, so agent verify
could fail on rate limits or a stale tap.

Changed:
release.yml packages and attaches simbroker-<version>.tgz and rewrites
the release notes. The live tap compare moves to
scripts/sync_homebrew_tap.sh --check-remote. Front-door tests stay
offline and pin the new release.yml contract.

Verification:
npm run agent:verify -- --profile spec-only --paths .github/workflows/release.yml,docs/test/front-door.test.mjs,scripts/sync_homebrew_tap.sh,spec/build-and-test.md,CHANGELOG.md --session-dir task-sessions/20260819-homebrew-p2-review
node --test docs/test/front-door.test.mjs

Affected:
.github/workflows/release.yml
docs/test/front-door.test.mjs
scripts/sync_homebrew_tap.sh
spec/build-and-test.md
CHANGELOG.md

Refs:
#12
spec/build-and-test.md

Session:
task-sessions/20260819-homebrew-p2-review
@VladimirBrejcha
VladimirBrejcha merged commit 92e17da into main Aug 19, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant