Commit Graph

13 Commits

Author SHA1 Message Date
Brian 7baa30c567
fix(publish): advance @next dist-tag after stable release (#2320)
* fix(publish): advance @next dist-tag after stable release

When a stable release publishes via workflow_dispatch, @latest can leapfrog
the existing @next prerelease (e.g. latest=6.5.0 while next=6.4.1-next.0),
turning `npx bmad-method@next install` into a silent downgrade until the
next qualifying push to main republishes a fresh -next.0.

- publish.yaml: after stable publish, repoint @next at the just-published
  stable version. The existing derive-prerelease step picks max(latest, next)
  as its base, so subsequent push-driven prereleases bump from there.
- bmad-cli.js: checkForUpdate was querying the @beta dist-tag (which this
  package does not use). Replace string-matching with semver.prerelease()
  and query @next for prerelease users.

* fix(publish): harden next-tag advance step and broaden path filter

- continue-on-error on the dist-tag advance: failure leaves @next stale
  until the next push-driven prerelease, which is recoverable; failing the
  job after a successful publish + git tag + GH release is not.
- Status echo so release-log triage can confirm the advance ran.
- Add removals.txt to the push-trigger path filter. Installer-affecting
  changes outside src/** (like the post-6.5.0 removals.txt fix) should
  still trigger a fresh -next.0 publish.
2026-04-26 10:30:41 -05:00
Alex Verkhovsky 513f440a23
refactor(installer): restructure installer with clean separation of concerns (#2129)
* refactor(installer): restructure installer with clean separation of concerns

Move tools/cli/ to tools/installer/ with major structural cleanup:

- InstallPaths async factory for path resolution and directory creation
- Config value object (frozen) replaces mutable config bag
- ExistingInstall value object replaces stateful Detector class
- OfficialModules + CustomModules + ExternalModuleManager replace monolithic ModuleManager
- install() is prompt-free; all user interaction in ui.js
- Update state returned explicitly instead of mutating customConfig
- Delete dead code: dependency-resolver, _base-ide, IdeConfigManager,
  platform-codes helpers, npx wrapper, xml-utils
- Flatten directory structure: custom/handler → custom-handler,
  tools/cli/ → tools/installer/, lib/ directories removed
- Update all path references in package.json, tests, CI, and docs

* fix(installer): guard ExistingInstall.version and surface module.yaml errors

Guard ExistingInstall.version access with .installed check in
uninstall.js, ui.js, and installer.js to prevent throwing on
empty/partial _bmad dirs. Surface invalid module.yaml parse errors
as warnings instead of silently returning empty results.
2026-03-27 06:50:07 -06:00
Brian a5640c890d
chore: add v6.2.2 changelog and use CHANGELOG.md for GH release notes (#2127)
Update publish workflow to extract release notes from CHANGELOG.md
instead of using --generate-notes, with fallback if no entry found.
2026-03-25 21:43:25 -05:00
Brian Madison 2e88b846f7 fix(publish): use GitHub App token to bypass branch protection
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 22:53:54 -05:00
Alex Verkhovsky 75ec4aa504 ci(publish): restrict workflow to upstream repo only
Prevent publish job from running on forks by gating on
github.repository == 'bmad-code-org/BMAD-METHOD'.
2026-03-12 11:00:52 -06:00
Alex Verkhovsky b7315c6e32 chore(publish): remove trusted publishing diagnostics 2026-03-10 05:23:33 -06:00
Alex Verkhovsky 6a0046917a fix(publish): pin npm for trusted publishing 2026-03-10 04:09:10 -06:00
Alex Verkhovsky c8f5b60598 fix(publish): remove empty token env and improve auth diagnostics 2026-03-10 03:57:58 -06:00
Alex Verkhovsky 7bc2b5e0e0
fix: isolate npm publish from injected auth config (#1886) 2026-03-10 03:49:01 -06:00
Alex Verkhovsky 1ed5c9d94b
fix: force trusted publish without token auth (#1885)
* fix: force trusted publish without token auth

* chore: always print npm debug logs
2026-03-10 02:42:49 -06:00
Alex Verkhovsky fb76895145
feat: allow manual next channel publish (#1884) 2026-03-10 01:20:28 -06:00
Alex Verkhovsky ebf1513069
fix: remove duplicate publish workflows (#1883)
* fix: remove duplicate publish workflows

* chore: add publish workflow diagnostics
2026-03-09 22:55:07 -06:00
Alex Verkhovsky 7857b17626
chore: unify npm publish workflow (#1881)
* ci: add continuous delivery workflows for npm publishing

Add publish-next (auto-prerelease on push to main) and publish-latest
(manual stable release with Discord notification). Update CONTRIBUTING.md
to describe the trunk-based CD model.

* fix(ci): guard publish-latest against non-main dispatch

Reject workflow_dispatch runs from non-main refs to prevent
publishing unintended code or fast-forwarding main unexpectedly.

* chore: unify npm publish workflow
2026-03-09 21:57:44 -06:00