Skip to content

0.9.18+ retains rc in lockfile when non-rc is available #18123

@osroc

Description

@osroc

Summary

In uv 0.9.18+, if a pre-release (e.g. mypkg==1.0.0rc1) is locked and the dependency specifier is later widened to a non-prerelease range (e.g. mypkg==1.*), uv sync retains the pre-release in the lockfile even after the stable 1.0.0 is available.

In <= 0.9.17, the resolver would upgrade to the stable release.

Example repro:

  1. Publish mypkg 1.0.0rc1
  2. In another package, set dependency to mypkg==1.0.0rc1 (sync to update lock)
  3. Publish mypkg 1.0.0
  4. In the other package, set dependency to mypkg==1.* (sync updates specifier but retains 1.0.0rc1)

Platform

Ubuntu 24.04

Version

0.9.18+

Python version

3.14

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionAsking for clarification or support

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions