Skip to content

Regression in 2.25.6: building a cross-platform lock file in multiple calls fails #3610

@ncoghlan

Description

@ncoghlan

Describe the bug

pdm lock --append stopped appending files in 2.25.6 (resetting the file entries instead)

To reproduce

Generate lock file for multiple platforms using pdm lock --append with 2.25.6

For example, I noticed the problem with the venvstacks lock script, which runs:

    pdm lock --dev          --platform=manylinux_2_17_x86_64
    pdm lock --dev --append --platform=manylinux_2_17_aarch64
    pdm lock --dev --append --platform=musllinux_1_1_x86_64
    pdm lock --dev --append --platform=windows_amd64
    pdm lock --dev --append --platform=windows_arm64
    pdm lock --dev --append --platform=macos_x86_64
    pdm lock --dev --append --platform=macos_arm64

One of the test dependencies installed solely on Windows is ninja, so a subsequent export to a requirements.txt file emitted a warning due to the lack of any hash information for ninja.

Expected Behavior

pdm lock --append populates the files entries for each project with the file info for each platform

Environment Information

For the failing case:

$ pdm info && pdm info --env
PDM version:
  2.25.6
Python Interpreter:
  /home/acoghlan/devel/venvstacks/.venv/bin/python (3.13)
Project Root:
  /home/acoghlan/devel/venvstacks
Local Packages:

{
  "implementation_name": "cpython",
  "implementation_version": "3.13.7",
  "os_name": "posix",
  "platform_machine": "x86_64",
  "platform_release": "6.6.87.2-microsoft-standard-WSL2",
  "platform_system": "Linux",
  "platform_version": "#1 SMP PREEMPT_DYNAMIC Thu Jun  5 18:30:46 UTC 2025",
  "python_full_version": "3.13.7",
  "platform_python_implementation": "CPython",
  "python_version": "3.13",
  "sys_platform": "linux"
}

Verbose Command Output

No response

Additional Context

Checking the 2.25.6 release notes, #3595 seems like a plausible culprit for the file info from previous runs being lost on each new run.

Are you willing to submit a PR to fix this bug?

  • Yes, I would like to submit a PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    🐛 bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions