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

Circular dependency between datafusion and datafusion-sqllogictest crates prevents 0.29.0 from being published to crates.io #7281

Closed
andygrove opened this issue Aug 14, 2023 · 6 comments · Fixed by #7284
Labels
bug Something isn't working

Comments

@andygrove
Copy link
Member

Describe the bug

I was attempting to publish DataFusion 29, and I could not publish the core datafusion crate because it has a dev-dependency on datafusion-sqllogictest, which is not yet published.

   Packaging datafusion v29.0.0 (/home/andy/git/apache/arrow-datafusion/datafusion/core)
    Updating crates.io index
error: failed to prepare local package for uploading

Caused by:
  no matching package named `datafusion-sqllogictest` found
  location searched: registry `crates-io`
  required by package `datafusion v29.0.0 (/home/andy/git/apache/arrow-datafusion/datafusion/core)`

I cannot publish datafusion-sqllogictest either, because it depends on datafusion.

   Packaging datafusion-sqllogictest v29.0.0 (/home/andy/git/apache/arrow-datafusion/datafusion/sqllogictest)
   Verifying datafusion-sqllogictest v29.0.0 (/home/andy/git/apache/arrow-datafusion/datafusion/sqllogictest)
    Updating crates.io index
error: failed to verify package tarball

Caused by:
  failed to select a version for the requirement `datafusion = "^29.0.0"`
  candidate versions found which didn't match: 28.0.0, 27.0.0, 26.0.0, ...
  location searched: crates.io index
  required by package `datafusion-sqllogictest v29.0.0 (/home/andy/git/apache/arrow-datafusion/target/package/datafusion-sqllogictest-29.0.0)`

To Reproduce

Try publishing datafusion crates from source release.

Expected behavior

No response

Additional context

No response

@andygrove andygrove added the bug Something isn't working label Aug 14, 2023
@andygrove
Copy link
Member Author

It looks like the circular dependency was introduced in #7134

cc @tshauck @alamb

@comphead
Copy link
Contributor

rust-analyzer plugin in VSCode also complains

[ERROR project_model::workspace] cyclic deps: datafusion_sqllogictest(Idx::<CrateData>(168)) -> datafusion(Idx::<CrateData>(100)), alternative path: datafusion(Idx::<CrateData>(100)) -> datafusion_sqllogictest(Idx::<CrateData>(168))

@alamb
Copy link
Contributor

alamb commented Aug 14, 2023

Sorry @andygrove

I think we can fix this by cutting the sqllogictest dependency on datafusion (essentially by moving the sqllogictest driver into the sqllogictest crate).

I can make a PR to do this later today

@tshauck
Copy link
Contributor

tshauck commented Aug 14, 2023

Sorry all 🙇... and thanks @alamb, you're certainly in a better position to fix this quicker. Happy to help out another way if needed.

@alamb
Copy link
Contributor

alamb commented Aug 14, 2023

I have a draft here #7284 but I ran out of time this evening. I'll finish this up first thing tomorrow morning.

@alamb
Copy link
Contributor

alamb commented Aug 15, 2023

#7284 is ready for review

@alamb alamb changed the title Circular dependency between datafusion and datafusion-sqllogictest crates Circular dependency between datafusion and datafusion-sqllogictest crates prevents 0.29.0 from being published to crates.io Aug 25, 2023
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants