Skip to content

refactor: lockfile-v7#5607

Draft
baszalmstra wants to merge 15 commits intomainfrom
feature/lockfile-v7
Draft

refactor: lockfile-v7#5607
baszalmstra wants to merge 15 commits intomainfrom
feature/lockfile-v7

Conversation

@baszalmstra
Copy link
Contributor

@baszalmstra baszalmstra commented Mar 5, 2026

@baszalmstra baszalmstra force-pushed the feature/lockfile-v7 branch 4 times, most recently from 6471a50 to 39e98b5 Compare March 5, 2026 14:20
@baszalmstra baszalmstra changed the title wip: feature lockfile-v7 refactor: lockfile-v7 Mar 5, 2026
@baszalmstra baszalmstra force-pushed the feature/lockfile-v7 branch 5 times, most recently from f352b94 to 63e87d8 Compare March 6, 2026 15:09
@baszalmstra baszalmstra mentioned this pull request Mar 6, 2026
5 tasks
@baszalmstra baszalmstra force-pushed the feature/lockfile-v7 branch 9 times, most recently from 69f2c3e to 0fb3a83 Compare March 13, 2026 11:08
@ruben-arts

This comment was marked as resolved.

@ruben-arts

This comment was marked as resolved.

@baszalmstra baszalmstra mentioned this pull request Mar 17, 2026
8 tasks
@uwu-420
Copy link

uwu-420 commented Mar 20, 2026

Just built pixi from this branch and checked again, the bug with relative paths for local PyPI dependencies not working still exists here, see #5483 (comment) If this is fixed, I can test on my monorepo and provide more feedback :)

@baszalmstra baszalmstra force-pushed the feature/lockfile-v7 branch 3 times, most recently from 5aac6f9 to 86e0ad6 Compare March 20, 2026 10:55
@hunger
Copy link
Contributor

hunger commented Mar 20, 2026

@uwu-420: I think I fixed the relative pypi paths again in a PR I will push as soon as I have rebased it on top of the new lockfile-v7 branch rebase @baszalmstra is currently doing :-)

When using `pixi list`, use data from the cached index data
that we have stored. Fall back to leaving the data blank
if nothing is cached.

We do run into the blank data case occasionally:
* Some repositories are to not get cached and uv accepts that
* Some are not "simple"

The `pytorch` index falls into both of those categories.

Fixes: #5114

WIP: rattler-overrides, ABANDON THIS

chore: Remove jlap support

Rattler removed this, so it needs to go here as well.

feat: Relative path support for pypi deps in Lockfile

This PR replaces #4788!

Make pixi handle relative paths to pypi dependencies in the LockFile. This
helps when checking in pixi.lock files that reference local python packages.
Instead of ending up with a machine specific path in the lock file we have
relative path that should work for all developers.

This depends on the rattler part which is here: conda/rattler#1760 -- as
seen in the feature/lockfile-v7 branch in the `conda/rattler` repository!

The PR consists of several changes:

 - Update to the rattler_lock API changes made in feat: Relative path
   support in LockFile conda/rattler#1760
 - Make sure the non-pep508-extensions are enabled in pixi as well
   Convert between uv relative paths and pixi relative paths
 - It adapts pyproject.toml parsing to preserve relative path in
   python requirements and in the `tool.pixi.pypi-dependencies` section

The last is the big improvement over #4788.

Relates to: #4680

chore: Handle rattler removing the editable flag from PyPiSourced

chore: update to CondaSourceData having lost its input field

chore: update to new errors being raised by rattler

chore: Add initial platform support to pixi

Simplistic approach: It just creates platforms based
on conda's `Platform` without any virtual packages.

Handle pypi-prerelease-mode no longer being an Option

chore_ Update to pypi environment not being in the lockfile anymore

chore: Handle optional version in pypi source dependencies

We do not want to store the version number in case it is dynamic.

chore: Implement support for index_url in pypi packages
All 3 lock-file read sites now use UnresolvedPixiRecord. Partial source
records (from mutable path-based sources) are resolved to full PixiRecord
via source_metadata() at the read boundary. No partial records propagate
downstream.

Write path: mutable source packages are now stored as partial records in
the lock file (only name, depends, sources — no version/build/subdir).
Immutable sources (git, url) remain full.

Removed panicking PixiRecord::from_conda_package_data() and
SourceRecord<Full>::from_conda_source_data() — all callers now go
through UnresolvedPixiRecord which handles partial data safely.
@baszalmstra baszalmstra force-pushed the feature/lockfile-v7 branch from 86e0ad6 to 4555235 Compare March 20, 2026 13:42
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.

4 participants