Skip to content

pixi.lock editable flag toggles between dragonfly (pixi 0.63.2) and analysis.sns.gov #1

@bvacaliuc

Description

@bvacaliuc

Problem

pixi.lock oscillates between having editable: true and not having it for the local quicknxs-v1 dependency, depending on which system regenerates the lock file. This produces spurious commits and noisy git diff output every time the lock file is regenerated on a system with an older pixi version.

Root Cause

pixi 0.63.2 (on dragonfly) no longer writes the editable field to pixi.lock for local path dependencies. It infers editability from pyproject.toml at install time. Older pixi versions (on analysis.sns.gov) still write it explicitly.

The toggle is functionally harmless — the package is installed as editable on both systems regardless (confirmed via __editable__.quicknxs_v1-1.1.6.pth and direct_url.json). However, the lock file difference causes noise in git diff and creates unnecessary commits.

See commit e7f008a message for the original observation.

Fix

1. Add requires-pixi to pyproject.toml

[tool.pixi.workspace]
platforms = ["linux-64"]
channels = ["conda-forge"]
requires-pixi = ">=0.63.2"

This causes older pixi to refuse and prompt for an upgrade rather than silently regenerating the lock file in the old format.

2. Upgrade pixi on analysis.sns.gov

pixi self-update
pixi --version   # should show >= 0.63.2

3. Verify and commit

After upgrading on all development systems, run make test on both; git diff pixi.lock should be empty after both systems regenerate it. Commit the stabilised pyproject.toml and pixi.lock.

Verification

make test
git diff pixi.lock   # should be empty after both systems run

# Confirm editable install still works:
pixi run python -c "import quicknxs; print(quicknxs.__file__)"
# Expected: .../quicknxsv1/quicknxs/__init__.py  (source tree, not .pixi/envs/)

Plan document

plan/fix-pixi-editable-lock-toggle.md in the repo contains the full analysis and step-by-step instructions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions