Skip to content

cargo update downgrading crates, it is not clear why #14883

Open
@kamulos

Description

@kamulos

Problem

So I have a strange interaction between two tools. I am using cargo upgrade --incompatible from cargo-edit to update all packages even if the updates are semver incompatible. After that everything still works fine. Cargo builds without complaining, everything seems fine. But if I run cargo update after that cargo will downgrade some of the packages.

There might be a good reason for this, I mean cargo-edit is not an official tool and might do things in a wrong way. But it also is absolutely unclear why cargo downgrades some dependencies, especially since it is building without an issue before the downgrade.

Steps

  1. clone https://github.com/kamulos/cargoissue
  2. run cargo upgrade --incompatible (version 0.13.0) => a few packages will be updated and the Cargo.toml will be changed
  3. run cargo update the following output will appear
    Updating crates.io index
     Locking 4 packages to latest compatible versions
 Downgrading litemap v0.7.4 -> v0.7.3 (available: v0.7.4)
    Updating ureq v2.10.1 -> v2.11.0
 Downgrading yoke v0.7.5 -> v0.7.4 (available: v0.7.5)
 Downgrading zerofrom v0.1.5 -> v0.1.4 (available: v0.1.5)

Possible Solution(s)

No response

Notes

No response

Version

cargo 1.85.0-nightly (4c39aaff6 2024-11-25)
release: 1.85.0-nightly
commit-hash: 4c39aaff66862cc0da52fe529aa1990bb8bb9a22
commit-date: 2024-11-25
host: x86_64-unknown-linux-gnu
libgit2: 1.8.1 (sys:0.19.0 vendored)
libcurl: 8.9.0-DEV (sys:0.4.74+curl-8.9.0 vendored ssl:OpenSSL/1.1.1w)
ssl: OpenSSL 1.1.1w  11 Sep 2023
os: Arch Linux [64-bit]

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-dependency-resolutionArea: dependency resolution and the resolverC-bugCategory: bugCommand-updateS-triageStatus: This issue is waiting on initial triage.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions