Skip to content

Adopt package manager command classes - #1678

Closed
Eduardo Villalpando Mello (edvilme) wants to merge 3 commits into
package-manager-command-testsfrom
package-manager-command-adoption
Closed

Adopt package manager command classes#1678
Eduardo Villalpando Mello (edvilme) wants to merge 3 commits into
package-manager-command-testsfrom
package-manager-command-adoption

Conversation

@edvilme

Copy link
Copy Markdown
Contributor

Summary

Adopts the package manager command classes introduced in #1621 and covered by the smoke tests in #1677 across Pip/UV, Conda, and Poetry.

Changes

  • Replaces existing command construction and execution paths with the new command classes.
  • Preserves existing command flags, environment targeting, version ordering, prerelease defaults, timeouts, and Poetry cwd behavior.
  • Removes superseded utility wrappers and obsolete tests tied to those utilities.

Dependency

This PR is stacked on #1677 and intentionally contains only the migration and cleanup commit. Review and merge #1621 and #1677 first; this PR can then be retargeted to main.

This replaces #1675, whose base branch could not be changed after GitHub registered it as part of the original stack.

Testing

  • npm run lint
  • npm run compile-tests
  • npm run unittest (1,451 passing, 4 pending)

Eduardo Villalpando Mello (edvilme) added a commit that referenced this pull request Jul 29, 2026
## Summary

Introduces the reusable command-object layer for package management
while leaving existing package-manager call sites unchanged.

## Scope

- Adds the `PackageManagerCommand` base class and shared execution
options.
- Adds abstract templates for install, uninstall, list, version,
available versions, and direct package names.
- Adds concrete Pip/UV, Conda, and Poetry implementations.
- Adds command factories, exports, and command-local execution helpers
required by those implementations.
- Preserves the existing executables, flags, environment targeting,
prerelease defaults, and list-command timeouts.

## Non-goals

This PR does not add command tests or migrate package managers to the
new classes. Those changes are isolated in follow-up PRs #1677 and
#1678.

## PR stack

1. This PR: command classes and implementations, based on `main`.
2. #1677: command smoke tests, based on this branch.
3. #1678: adoption and cleanup, based on #1677.

## Testing

- `npm run lint`
- `npm run compile-tests`
- `npm run unittest` (1,448 passing, 4 pending)
@edvilme

Copy link
Copy Markdown
Contributor Author

Superseded by #1686, which targets main directly. Recreated to undo the GitHub-registered stack (base could not be retargeted). The branch is unchanged; only the PR base moved from package-manager-command-tests to main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

debt Code quality issues skip tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant