Skip to content

Workspace path is not fully resolved #7686

Closed
@jfrimmel

Description

@jfrimmel

Setup

I have the following (potentially strange) setup:

$project
├── a
│  ├── Cargo.toml
│  └── src
│     └── main.rs
├── b
│  ├── Cargo.toml
│  └── src
│     └── main.rs
├── c
│  ├── Cargo.toml
│  └── src
│     └── main.rs
└── Cargo.toml # containing `workspace.members = ["a", "b", "c"]`

Problem

If I'm executing cargo install --path ../c in directory b the following error occurs:

error: package `/home/jfrimmel/git/$project/a/Cargo.toml` is a member of the wrong workspace
expected: /home/jfrimmel/git/$project/b/../Cargo.toml
actual:   /home/jfrimmel/git/$project/Cargo.toml

It seems like the paths are not canonicalized before comparison.

Reproducation

~ $ mkdir mwe
~ $ cd mwe/
~/mwe $ cargo new a
     Created binary (application) `a` package
~/mwe $ cargo new b
     Created binary (application) `b` package
~/mwe $ cargo new c
     Created binary (application) `c` package
~/mwe $ cat <<EOF > Cargo.toml
[workspace]
members = ["a", "b", "c"]
EOF
~/mwe $ cd b
~/mwe/b $ cargo install --path ../c --force
error: package `/home/jfrimmel/mwe/a/Cargo.toml` is a member of the wrong workspace
expected: /home/jfrimmel/mwe/b/../Cargo.toml
actual:   /home/jfrimmel/mwe/Cargo.toml
~/mwe/b $ 

Metadata

$ cargo --version
cargo 1.41.0-nightly (8280633db 2019-11-11)

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-workspacesArea: workspacesC-bugCategory: bugS-needs-mentorStatus: Issue or feature is accepted, but needs a team member to commit to helping and reviewing.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions