Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make dora-rs publishable on crates.io #211

Merged
merged 17 commits into from
Mar 21, 2023
Merged

Make dora-rs publishable on crates.io #211

merged 17 commits into from
Mar 21, 2023

Conversation

haixuanTao
Copy link
Collaborator

@haixuanTao haixuanTao commented Mar 13, 2023

This Pull Request simplify the dependency tree by:

  • Removing unnecessary dependency with: cargo +nightly udeps --all --all-targets
  • Centralize dependencies to the workspace declaration

It then adds a github job to publish most of dora-rs packages to crates.io.
Some packages can still not be published due to git dependencies.

Blocked on:

@haixuanTao haixuanTao force-pushed the add-rust-api-info branch 2 times, most recently from 2131f26 to 9b99ee5 Compare March 13, 2023 18:18
@phil-opp phil-opp changed the base branch from main to remove-workspace-path March 14, 2023 12:43
@haixuanTao haixuanTao marked this pull request as draft March 14, 2023 12:56
@haixuanTao
Copy link
Collaborator Author

Just for info, I think that we can leave this one for the 0.2.1 release.

@phil-opp
Copy link
Collaborator

phil-opp commented Mar 14, 2023

Sounds good!

@phil-opp
Copy link
Collaborator

I updated the PR description with git dependencies that are still blocking this.

Base automatically changed from remove-workspace-path to main March 14, 2023 13:09
@haixuanTao haixuanTao force-pushed the add-rust-api-info branch 2 times, most recently from c2328c6 to f9719fb Compare March 14, 2023 13:13
@phil-opp
Copy link
Collaborator

Looks like the raw-sync crate is really the last git dependency that we currently have. Unfortunately it's not clear if the crate is maintained anymore since there was no reply to the PR that we need. So maybe it makes sense to publish a fork to crates.io instead of waiting any longer...

@haixuanTao
Copy link
Collaborator Author

Looks like the raw-sync crate is really the last git dependency that we currently have. Unfortunately it's not clear if the crate is maintained anymore since there was no reply to the PR that we need. So maybe it makes sense to publish a fork to crates.io instead of waiting any longer...

Yep, I'll do it. Just for info, i'm still debugging some issues with cargo publish https://github.com/dora-rs/dora/actions/workflows/release.yml . Cargo publish isolate the crates from the workspace which makes some workspace dependency surface, and block the publication.

@haixuanTao haixuanTao force-pushed the add-rust-api-info branch 2 times, most recently from c43b6e6 to 9ff320d Compare March 20, 2023 02:27
@haixuanTao
Copy link
Collaborator Author

haixuanTao commented Mar 21, 2023

So, I finally managed to push all crates to crates.io as release candidates and fix all the issues. Mainly:

  • Make sure to have license, description, and documentation page on all crates.
  • Make sure to have the right dependency and that they are published with the right set of feature flags ( as they sometimes might inherit feature flags from the workspace )
  • Make sure to publish the crates in the right order (outer leaf to inner leaf)

As you may now crates.io is quite picky.

You can find both:

  • dora-node-api: dora-node-api
  • dora-operator-api: dora-operator-api

for the Rust API.

As well as:

  • dora-runtime: dora-runtime
  • dora-daemon: dora-daemon
  • dora-coordinator: dora-coordinator
  • dora-cli: dora-cli

They should be installable via:

cargo install dora-cli

@haixuanTao haixuanTao requested a review from phil-opp March 21, 2023 01:38
Copy link
Collaborator

@phil-opp phil-opp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for all your work on this! Looks all good to me, there are just two small things.

binaries/cli/src/template/c/mod.rs Outdated Show resolved Hide resolved
Cargo.lock Outdated Show resolved Hide resolved
@haixuanTao haixuanTao marked this pull request as ready for review March 21, 2023 10:48
Copy link
Collaborator

@phil-opp phil-opp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@haixuanTao haixuanTao merged commit 18d2c55 into main Mar 21, 2023
@haixuanTao haixuanTao deleted the add-rust-api-info branch March 21, 2023 12:07
haixuanTao added a commit that referenced this pull request Mar 22, 2023
* [Make dora-rs publishable on crates.io](#211)
* [Add an internal cli argument to create template with path dependencies](#212)

* [Avoid blocking the daemon main loop by using unbounded queue](#230)
* [Inject YAML declared env variable into the runtime](#227)
* [Use rustls instead of system SSL implementation](#216)

* [Refactor python error](#229)
* [The first letter of rust should be lowercase in the command](#226)
* [Add documentation to the cli within the helper mode](#225)
* [Update to safer-ffi v0.1.0-rc1](#218)
* [remove unused variable: data_bytes](#215)
* [Clean up: Remove workspace path](#210)
* [Decouple opentelemetry from tracing](#222)
* [Remove zenoh dependency from dora node API to speed up build](#220)
* [Update to Rust v1.68](#221)
* [Deny unknown fields to avoid typos](#223)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants