Skip to content

feat: add global install target and --minor-only flag to update-packages#137

Merged
chrisjwalk merged 3 commits intomainfrom
feat/update-packages-install-136
Apr 20, 2026
Merged

feat: add global install target and --minor-only flag to update-packages#137
chrisjwalk merged 3 commits intomainfrom
feat/update-packages-install-136

Conversation

@chrisjwalk-bot
Copy link
Copy Markdown
Collaborator

@chrisjwalk-bot chrisjwalk-bot commented Apr 19, 2026

Closes #136

Changes

Global install target

  • Added nx run update-packages:install target that installs the tool globally via npm install -g --prefix $HOME/.local
  • Added shebang injection to the pack step so the binary is directly executable
  • System-wide sudo npm install -g ./dist/...tgz also works

--minor-only / -m flag

  • Skips all major version bumps automatically
  • Interactive mode: major bumps are pre-selected in the omit MultiSelect so you can review/adjust
  • Non-interactive mode: major bumps are auto-omitted without prompting
  • PackageTable shows a yellow MAJOR badge for major version bumps
  • MultiSelect labels include a ⚠ MAJOR indicator for quick identification

Usage examples

# Skip all major bumps interactively (pre-selected for omission)
update-packages --minor-only

# Skip major bumps, no prompts
update-packages --minor-only --interactive false

# Combine with explicit omit list
update-packages --minor-only --omit typescript

- Add `install` target that depends on `pack` and runs
  `npm install -g --prefix $HOME/.local` (no root required)
- Add shebang injection in `pack` step so the installed binary
  is executable without specifying a runtime

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown

Azure Static Web Apps: Your stage site is ready! Visit it here: https://green-water-08792290f-137.eastus2.2.azurestaticapps.net

- Add isMajorBump(current, latest) helper to lib.ts
- Extend PackageInfo with isMajor: boolean, computed in fetchOutdatedPackages
- Add --minor-only / -m CLI flag to skip major version bumps
  - Non-interactive: auto-omits all major bumps
  - Interactive: pre-selects major bumps in the omit MultiSelect
- PackageTable shows 'MAJOR' badge in yellow for major bumps
- MultiSelect labels include ⚠ MAJOR indicator for major bump packages
- Add isMajorBump tests in lib.spec.ts (6 new test cases)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@chrisjwalk-bot chrisjwalk-bot changed the title feat: add global install target for update-packages tool feat: add global install target and --minor-only flag to update-packages Apr 19, 2026
@github-actions
Copy link
Copy Markdown

Azure Static Web Apps: Your stage site is ready! Visit it here: https://green-water-08792290f-137.eastus2.2.azurestaticapps.net

- Add -j / --json CLI flag (implies --interactive=false)
- Ink UI is silenced (redirected to a null stream) in JSON mode
- On success, prints structured JSON to stdout:
  { updated, omitted, failed, hasMigrations, nextSteps }
- On error, prints { "error": "..." } to stderr and exits with code 1
- "no packages found" in JSON mode is a success (empty updated array)
- Add onError prop to App for programmatic error handling

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown

Azure Static Web Apps: Your stage site is ready! Visit it here: https://green-water-08792290f-137.eastus2.2.azurestaticapps.net

@chrisjwalk chrisjwalk merged commit eedd3f4 into main Apr 20, 2026
7 checks passed
@chrisjwalk chrisjwalk deleted the feat/update-packages-install-136 branch April 20, 2026 15:22
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.

feat: add global install target for update-packages tool

2 participants