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

Rust deployment failed #1927

Closed
mewim opened this issue Aug 12, 2023 · 1 comment · Fixed by #1932
Closed

Rust deployment failed #1927

mewim opened this issue Aug 12, 2023 · 1 comment · Fixed by #1932
Assignees

Comments

@mewim
Copy link
Member

mewim commented Aug 12, 2023

I tested build and deploy pipeline in dry run mode and the Rust build was failing with the following error:

error: failed to verify package tarball

Caused by:
  package `time-macros v0.2.11` cannot be built because it requires rustc 1.67.0 or newer, while the currently active rustc version is 1.65.0

Please refer to https://github.com/kuzudb/kuzu/actions/runs/5838847530/job/15836348078

@mewim mewim changed the title Rust deployment is failing Rust deployment was failing Aug 12, 2023
@mewim mewim changed the title Rust deployment was failing Rust deployment failed Aug 12, 2023
@benjaminwinger
Copy link
Collaborator

It looks like cargo publish won't let you pin package versions since it generates a fresh Cargo.lock as part of the build, so we can't work around the issue like in CI.

There are a few options that I can think of:

  1. Use --no-verify to publish without building first (main concern is that in future more files than what is currently included in the list of directories to include in the crate will be necessary for the build, and this is I think the only real way to test that before publishing)
  2. Update the runners to ubuntu 23.04 or newer (which has rust 1.67).
  3. Install rustup on the runners and use that to manage the rust version
  4. Remove the time dependency and do one of the following:
    4.1. Just have those types be simple structures, which might be sufficient depending on what people are using the types for, and would at least allow users of the kuzu crate to convert the types to the format of their choosing.
    4.2. Use chrono instead, which has a lower MSRV and a stricter policy for updating it. Chrono was unmaintained for a couple of years, but has been more active recently and would still provide interval/date/timestamp types which are easy to use and manipulate.

I think (3) would be the most straightforward and should quickly get it working without code changes, but (4) is worth considering.

It's worth noting that the only reason we aren't running into the same problem with the half dependency of arrow-rs (with MSRV 1.70) is that the arrow feature is disabled by default and isn't being built as part of the deployment test (maybe it should be, but that also means that we will need a newer rust version for deployment).

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 a pull request may close this issue.

2 participants