feat/per-ref-node-version #8

Merged
shawn_hurley merged 4 commits from feat/per-ref-node-version into main 2026-04-24 10:28:45 -04:00
Owner
No description provided.
When analyzing framework upgrades that span a Node.js major version
boundary (e.g., PatternFly v5 on Node 16 → v6 on Node 18), both
worktrees previously inherited the parent process's PATH and failed
to build one side. This adds CLI flags to specify different Node.js
versions, install commands, and build commands for each ref:

  --from-node-version / --to-node-version
  --from-install-command / --to-install-command
  --from-build-command / --to-build-command

Node versions are resolved via nvm (`nvm which <version>`) and the
resulting bin directory is prepended to PATH for all npm/yarn/tsc
subprocess calls in that worktree. The Analyzer struct now carries
separate lang_from/lang_to instances so per-ref config flows through
the orchestrator without modifying the Language trait.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
./hack/run-patternfly.sh \
    --from v5.3.3 --to v6.4.1 \
    --from-node-version 18 --to-node-version 20 \
    --from-install-command "corepack yarn install" \
    --konveyor \
    --release
- Fix thread-unsafe env mutation in nvm tests by adding serial_test
  crate and #[serial] attribute to prevent concurrent env var races
- Extract shared needs_shell() helper to worktree/mod.rs, fixing
  missing pipe operator check in run_custom_install
- Remove redundant build_command field from TypeScript struct; change
  extract_at_ref() to accept &RefBuildConfig directly so both extract
  paths read from a single source of truth
- Clarify lang construction in main.rs uses default config (None)
  since the shared instance only does diff/report, not worktree builds
- Restrict nvm module visibility to pub(crate) since it is an
  internal implementation detail

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
style: replace inline crate::worktree::RefBuildConfig paths with use imports
Some checks failed
CI / Check & Test (pull_request) Failing after 1m25s
259ce4f799
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
shawn_hurley force-pushed feat/per-ref-node-version from 259ce4f799
Some checks failed
CI / Check & Test (pull_request) Failing after 1m25s
to 0e78ffc36d
Some checks failed
CI / Check & Test (pull_request) Failing after 2m1s
2026-04-24 10:28:39 -04:00
Compare
shawn_hurley referenced this pull request from a commit 2026-04-24 10:28:46 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
shawn_hurley/semver-analyzer!8
No description provided.