oxidecomputer / oxidecomputer/omicron
Crucible dependencies on oximeter-producer doubling build times for several packages
@leftwo is already working on this.
Since Aug 5, 2022.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
I believe this is the root cause of https://github.com/oxidecomputer/omicron/issues/1481 , but the issue also impacts build times. Filed as a separate issue to track reduction of duplicate dependencies in addition to the build flake.
The following command:
RUSTDOCFLAGS="-Dwarnings" cargo doc --workspace
Returns the following output:
warning: output filename collision.
The lib target `nexus-client` in package `nexus-client v0.1.0 (https://github.com/oxidecomputer/omicron?branch=main#c458fddc)` has the same output filename as the lib target `nexus-client` in package `nexus-client v0.1.0 (/home/smklein/repos/oxide/omicron/nexus-client)`.
Colliding filename is: /home/smklein/repos/oxide/omicron/target/doc/nexus_client/index.html
The targets should have unique names.
This is a known bug where multiple crates with the same name use
the same path; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The lib target `omicron-common` in package `omicron-common v0.1.0 (https://github.com/oxidecomputer/omicron?branch=main#c458fddc)` has the same output filename as the lib target `omicron-common` in package `omicron-common v0.1.0 (/home/smklein/repos/oxide/omicron/common)`.
Colliding filename is: /home/smklein/repos/oxide/omicron/target/doc/omicron_common/index.html
The targets should have unique names.
This is a known bug where multiple crates with the same name use
the same path; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The lib target `oximeter` in package `oximeter v0.1.0 (https://github.com/oxidecomputer/omicron?branch=main#c458fddc)` has the same output filename as the lib target `oximeter` in package `oximeter v0.1.0 (/home/smklein/repos/oxide/omicron/oximeter/oximeter)`.
Colliding filename is: /home/smklein/repos/oxide/omicron/target/doc/oximeter/index.html
The targets should have unique names.
This is a known bug where multiple crates with the same name use
the same path; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The bin target `oximeter` in package `oximeter-collector v0.1.0 (/home/smklein/repos/oxide/omicron/oximeter/collector)` has the same output filename as the lib target `oximeter` in package `oximeter v0.1.0 (https://github.com/oxidecomputer/omicron?branch=main#c458fddc)`.
Colliding filename is: /home/smklein/repos/oxide/omicron/target/doc/oximeter/index.html
The targets should have unique names.
This is a known bug where multiple crates with the same name use
the same path; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The lib target `oximeter-producer` in package `oximeter-producer v0.1.0 (https://github.com/oxidecomputer/omicron?branch=main#c458fddc)` has the same output filename as the lib target `oximeter-producer` in package `oximeter-producer v0.1.0 (/home/smklein/repos/oxide/omicron/oximeter/producer)`.
Colliding filename is: /home/smklein/repos/oxide/omicron/target/doc/oximeter_producer/index.html
The targets should have unique names.
This is a known bug where multiple crates with the same name use
the same path; see <https://github.com/rust-lang/cargo/issues/6313>.
Inspecting the Cargo.lock file, we can see this is a valid complaint, tracing back to oximeter-producer.
In Cargo.lock, there are two [[package]]s for oximeter-producer:
- One is pulled directly from the current tree, as
0.1.0. This is used by most of Omicron. - Another is pinned to the
mainbranch. This appears to be used bycrucible, which itself is used bypropolis-clientand the simulated sled agent.
The other mentioned targets also have duplicate [[package]]s, but I think that's because they're dependencies of oximeter-producer.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.