pksunkara/cargo-workspaces

Sometimes the crate graph is wrong leading to failures for dependencies that rely on each other

jkelleyrtp opened this issue · 3 comments

Our very large workspace has almost half a dozen publish failures due to the crate graph being wrong.

I think it has to do with optional crates / features.

The crates that fail for us

  • dioxus-fullstack since it relies on dioxus-mobile (an optional dependency)
  • dioxus-desktop since it relies on dioxus-hot-reload (an optional dependency)
  • dioxus-html since it relies on dioxus-html-macro (a non optional dependency)

There's more but these are just some of the few I just ran into.

The branch I'm publishing from:
https://github.com/DioxusLabs/dioxus/tree/v0.5


Edit: it looks like some stuff is just missing from the crate graph, don't know why.

dioxus-check
dioxus-hot-reload
dioxus-html-internal-macro
rsx-rosetta
dioxus-mobile

The crates cargo-workspaces is saying it's going to publish:

 - dioxus-autofmt: 0.5.6 => 0.5.6
 - dioxus-cli: 0.5.6 => 0.5.6
 - dioxus-cli-config: 0.5.6 => 0.5.6
 - dioxus-core: 0.5.6 => 0.5.6
 - dioxus-core-macro: 0.5.6 => 0.5.6
 - dioxus-desktop: 0.5.6 => 0.5.6
 - dioxus: 0.5.6 => 0.5.6
 - dioxus-lib: 0.5.6 => 0.5.6
 - dioxus-fullstack: 0.5.6 => 0.5.6
 - generational-box: 0.5.6 => 0.5.6
 - dioxus-hooks: 0.5.6 => 0.5.6
 - dioxus-html: 0.5.6 => 0.5.6
 - dioxus-interpreter-js: 0.5.6 => 0.5.6
 - dioxus-liveview: 0.5.6 => 0.5.6
 - dioxus-router: 0.5.6 => 0.5.6
 - dioxus-router-macro: 0.5.6 => 0.5.6
 - dioxus-rsx: 0.5.6 => 0.5.6
 - dioxus_server_macro: 0.5.6 => 0.5.6
 - dioxus-signals: 0.5.6 => 0.5.6
 - dioxus-ssr: 0.5.6 => 0.5.6
 - dioxus-web: 0.5.6 => 0.5.6

The crates that actually need to be published:

dioxus
dioxus-lib
dioxus-core
dioxus-config-macro
dioxus-core-macro
dioxus-router-macro
dioxus-router
dioxus-html-internal-macro
dioxus-html
dioxus-hooks
dioxus-web
dioxus-ssr
dioxus-desktop
dioxus-mobile
dioxus-interpreter-js
dioxus-liveview
dioxus-autofmt
dioxus-check
dioxus-rsx
rsx-rosetta
dioxus-signals
dioxus-cli-config
generational-box
dioxus-hot-reload
dioxus_server_macro
dioxus-fullstack

Maybe cargo workspaces is parsing the associated tomls incorrectly?

Some crates are skipped in publishing because they have no changes. Is it because of that?

Can you also please paste the output of cargo ws plan -al?

@jkelleyrtp Any update on this?