Skip to content

Release v2.1.0 - #151

Merged
jakwinkler merged 3 commits into
mainfrom
release/2.1.0
Sep 22, 2026
Merged

jakwinkler merged 3 commits into
mainfrom
release/2.1.0

Conversation

@jakwinkler

Copy link
Copy Markdown
Contributor

Prepares the 2.1.0 release. The three merged contributions it covers (#148, #145, #143) are already on main; this branch adds the follow-up work, the version bump and the changelog.

What is in this branch

  • Harden port forwarding start and stop paths (Free ports 80/443 on magebox global stop (#108) #143) — follow-up to the merged PR:
    • Start had a second daemon-starting path that skipped the plist version check, so it could load an outdated daemon. It now delegates to EnsureRulesActive, the single reconciler that installs, upgrades and kickstarts.
    • Stop reported failure whenever port 80 was still busy after the daemon was unloaded, even though another local service taking the port is exactly what freeing it allows. stopVerdict now fails only while MageBox's own daemon is still loaded.
    • Stop returns early when nothing is listening, so an already-stopped environment no longer prompts for a sudo password, and the unload path wires stdin and stderr so the prompt and any launchctl error are visible.
    • Docs: the sudo requirement is documented in the command reference, the FAQ no longer claims that no daily operation needs sudo, and the testing matrix notes the macOS step.
  • Correct MageOS 3.x PHP compatibility in the version registry — every MageOS 3.x entry advertised PHP 8.2 and omitted 8.5, while upstream mage-os/mageos-magento2 requires ~8.3 || ~8.4 || ~8.5 for 3.2.0 through 3.5.0. magebox new offers that list, so it steered people onto a PHP version the install cannot run on and hid a supported one. New tests guard the advertised versions against upstream drift and keep the embedded and shipped copies of the registry identical.
  • Release v2.1.0 — VERSION bump and the changelog entry, covering the two version registry PRs, the port-freeing feature and the MageOS autoload fix already on main.

Verification

Check Result
make test 25 packages pass
golangci-lint v2 0 issues
gofmt clean

The port forwarding code paths are macOS-only and were verified by unit tests and review, not on a macOS machine.

After merging

Merging changes VERSION on main, which fires the auto-tag workflow. Tags created by that workflow use GITHUB_TOKEN and therefore do not trigger the release build, so the tag still has to be deleted and re-pushed from a local machine before binaries are built.

🤖 Generated with Claude Code

jakwinkler and others added 3 commits September 22, 2026 21:22
Follow-up to #143, which freed ports 80/443 on `magebox global stop`.

`Start` had its own daemon-starting path that skipped the plist version
check, so it could load an outdated daemon; it now delegates to
`EnsureRulesActive`, the single reconciler that installs, upgrades and
kickstarts.

`Stop` reported failure whenever port 80 was still busy after the daemon
was unloaded, even though an unrelated local service is free to take the
port — which is the whole point of releasing it. `stopVerdict` now fails
only while MageBox's own daemon is still loaded. `Stop` also returns
early when nothing is listening, so an already-stopped environment no
longer prompts for a sudo password, and the unload path wires stdin and
stderr so that prompt and any launchctl error are visible.

Docs: document the sudo requirement in the command reference, correct the
FAQ claim that no daily operation needs sudo, and note the macOS step in
the testing matrix.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Every MageOS 3.x entry advertised PHP 8.2 and omitted 8.5, while upstream
mage-os/mageos-magento2 requires ~8.3 || ~8.4 || ~8.5 for 3.2.0 through
3.5.0. `magebox new` offers that list, so it steered people onto a PHP
version the install cannot run on and hid a supported one.

Add tests guarding the advertised versions against upstream drift and
guarding the two copies of the registry against diverging.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

📦 PR build artifacts

Built from 95c9035 — view run. Artifacts expire in 14 days.

Note: artifact download links require being signed in to GitHub with access to this repository.

@jakwinkler
jakwinkler merged commit be0a1ed into main Sep 22, 2026
12 checks passed
@jakwinkler
jakwinkler deleted the release/2.1.0 branch September 22, 2026 19:38
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