Skip to content

build(deps): Upgrade dependencies#275

Closed
chitralverma wants to merge 4 commits intoroapi:mainfrom
chitralverma:upgrade-dependencies
Closed

build(deps): Upgrade dependencies#275
chitralverma wants to merge 4 commits intoroapi:mainfrom
chitralverma:upgrade-dependencies

Conversation

@chitralverma
Copy link
Contributor

@chitralverma chitralverma commented May 1, 2023

Which issue does this PR close?

Closes #263
Related PR #264

What changes are included in this PR?

This PR upgrades various dependencies (see list below) of roapi to the latest supported versions.

  • datafusion (14 -> 23)
  • arrow (26 -> 37)
  • object_store (0.5.4 -> 0.5.6)
  • convergence (internal patch -> 0.11.0 latest tag)
  • sqlparser (0.27 -> 0.33)
  • delta-rs (patched 0.5.0 -> patched 0.10.0)

Other than this, this PR includes

  • changes for the deprecated ObjectStoreProvider,
  • changes due to datafusion upgrade,
  • changes for &str -> String to fix lifetime issues.

Are there any user-facing changes?

Mostly these are internal upgrades, so user-facing changes should be none.

Point of consideration for reviewers

  • Seems like the upgrades to datafusion have changed the serialization of timestamp types which required modification in test cases (see changes).
  • the Cargo.toml explicitly includes the object_store dependency which is currently coming from both delta-rs and datafusion. So do you think removing this and using it transitively instead makes sense?

@chitralverma chitralverma mentioned this pull request May 1, 2023
10 tasks
@chitralverma
Copy link
Contributor Author

chitralverma commented May 1, 2023

@houqp @jychen7 please check this out at your convenience. Thanks.

@chitralverma
Copy link
Contributor Author

the breaks in the test cases are due to the older arrow 26 coming from connector-x which is conflicting with the new arrow 37.

raised sfu-db/connector-x#493

@houqp
Copy link
Member

houqp commented May 2, 2023

Seems like the upgrades to datafusion have changed the serialization of timestamp types which required modification in test cases (see changes).

This serialization change looks good to me 👍

the Cargo.toml explicitly includes the object_store dependency which is currently coming from both delta-rs and datafusion. So do you think removing this and using it transitively instead makes sense?

Yes, we can use the export from one of the crates, probably makes more sense to use the one exported from datafusion.

lto = true
codegen-units = 1

[patch.crates-io]
Copy link
Member

@houqp houqp May 2, 2023

Choose a reason for hiding this comment

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

@chitralverma we can patch connectorx to use our own temp fork at https://github.com/roapi/connector-x if it's taking a long time for upstream to merge your PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sounds good, can you please sync that fork with the latest upstream

Copy link
Member

Choose a reason for hiding this comment

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

Just sent you an invite for write access to the repo ;)

@rtyler
Copy link

rtyler commented May 3, 2023

FYI, I just cut deltalake 0.10.0 which has the datafusion 23 and arrow 37 dependencies referenced, roapi might be able to move away from git sha1s now? :)

@chitralverma
Copy link
Contributor Author

FYI, I just cut deltalake 0.10.0 which has the datafusion 23 and arrow 37 dependencies referenced, roapi might be able to move away from git sha1s now? :)

Awesome, I was waiting for this 😁

@chitralverma
Copy link
Contributor Author

chitralverma commented May 3, 2023

Yes, we can use the export from one of the crates, probably makes more sense to use the one exported from datafusion.

@houqp I tried this but apparently, datafusion doesn't export object_store for external use. So we will have to add it explicitly

[dependencies]
# pulling arrow-schema manually to enable the serde feature.
# TODO: add serde feature in datafusion to avoid this workaround
arrow-schema = { version ="26", features = ["serde"] }
Copy link
Member

Choose a reason for hiding this comment

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

@chitralverma we might need to set the arrow-schema version to 38 so it remains the same as the version pinned in datafusion to fix the build issue, see apache/datafusion@fc5d67a#diff-2e9d962a08321605940b5a657135052fbcef87b5e360662bb527c96d9a615542L51

@houqp
Copy link
Member

houqp commented May 30, 2023

Thanks @chitralverma again for the patch, I pushed a fix based off your branch with connectorx upgrade in #279

@houqp houqp closed this May 30, 2023
@chitralverma chitralverma deleted the upgrade-dependencies branch May 30, 2023 06:39
@chitralverma
Copy link
Contributor Author

ushed a fix based off your branch with co

Thanks @houqp

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.

Upgrade to Datafusion v19

3 participants