pksunkara / cargo-workspaces

A tool for managing cargo workspaces and their crates, inspired by lerna
MIT License
483 stars 46 forks source link

Unable to publish package while the necessary permissions #165

Closed patrickelectric closed 3 months ago

patrickelectric commented 3 months ago

The message is a bit confuse, is not clear what is a true error or not. Like:

error: all dependencies must have a version specified when publishing.
dependency `mavlink-core` does not specify a version

Is this from cargo workspaces ? Because following this message:

Note: The published dependency will use the version from crates.io,
the `path` specification will be removed from the dependency declaration.

Implies that is from cargo workspaces, right ? But, soon after, it just fails with:

error: unable to publish package mavlink

Without clear explanation.

...
warning: manifest has no documentation, homepage or repository.
See https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info.
   Packaging mavlink-bindgen v0.13.1 (/home/runner/work/rust-mavlink/rust-mavlink/mavlink-bindgen)
    Updating crates.io index
    Packaged 11 files, 72.7KiB (16.0KiB compressed)
   Uploading mavlink-bindgen v0.13.1 (/home/runner/work/rust-mavlink/rust-mavlink/mavlink-bindgen)
    Uploaded mavlink-bindgen v0.13.1 to registry `crates-io`
note: waiting for `mavlink-bindgen v0.13.1` to be available at registry `crates-io`.
You may press ctrl-c to skip waiting; the crate should be available shortly.
   Published mavlink-bindgen v0.13.1 at registry `crates-io`
info published mavlink-bindgen v0.13.1
    Updating crates.io index
error: all dependencies must have a version specified when publishing.
dependency `mavlink-core` does not specify a version
Note: The published dependency will use the version from crates.io,
the `path` specification will be removed from the dependency declaration.
error: unable to publish package mavlink

https://github.com/mavlink/rust-mavlink/actions/runs/9997234125/job/27679993546

And the token has power for that: image

pksunkara commented 3 months ago

Cargo don't allow publishes when the crate dependencies doesn't specify a version. Your dependency at https://github.com/mavlink/rust-mavlink/blob/master/mavlink/Cargo.toml#L30 doesn't specify a version and that's why cargo failed.

It's not related to cargo-workspaces at all. But we do have #96 to improve our handling in this scenario.