Skip to content

feat: refactor spec implementation handling in global#4138

Merged
baszalmstra merged 15 commits intoprefix-dev:mainfrom
tdejager:feat/global-source-deps
Jul 17, 2025
Merged

feat: refactor spec implementation handling in global#4138
baszalmstra merged 15 commits intoprefix-dev:mainfrom
tdejager:feat/global-source-deps

Conversation

@tdejager
Copy link
Contributor

@tdejager tdejager commented Jul 14, 2025

I've decided to split the task of installing source dependencies some more, this should lay a bit of the groundwork

Intro

This is the first step in a multi-phase implementation that will enable users to install packages from Git repositories, local
paths, and conda files directly - similar to cargo install --path ., npm install -g, and pipx install ..

Specifically, this PR focuses on refactoring the spec handling system to support the new GlobalSpec and PixiSpec formats required for the
upcoming source dependency features.

Before:

  • pixi global install and pixi global add used MatchSpec handling
  • No unified system for handling different dependency types

After:

  • Introduced GlobalSpec and NamedGlobalSpec types for unified dependency handling
  • Added GlobalSpecs CLI parser supporting --git, --path, --branch, --tag, --rev, and --subdir options
  • Refactored manifest and project code to use the new spec system

Current limitation: Source dependencies are detected but filtered out with warning messages (full implementation coming in follow-up PRs)

Testing

Relying on global test suite for now, which is excellent (thanks @Hofer-Julian) helped me find some bugs and will extend it some more in subsequent PR's

@tdejager tdejager marked this pull request as ready for review July 17, 2025 13:22
@tdejager tdejager changed the title feat: use source deps for global install feat: refactor spec implementation handling in global Jul 17, 2025
@tdejager tdejager requested a review from baszalmstra July 17, 2025 13:26
@baszalmstra baszalmstra merged commit e419cf0 into prefix-dev:main Jul 17, 2025
46 checks passed
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.

2 participants