Skip to content

polars-arrow-format not building without =1.1.1 planus backpin following v1.2 release #24208

@lmmx

Description

@lmmx

Checks

  • I have checked that this issue has not already been reported.
  • I have confirmed this bug exists on the latest version of Polars.

Reproducible example

  • Make a project using polars-arrow-format 0.2.0
  • Try to cargo check
  • polars-arrow-format will pull in planus v1.2.0 (even though it was declared as 1.1.1), it is not hard pinned so allows to pull in the newer crate
louis 🌟 ~/dev/polite $ cargo tree -i planus
planus v1.2.0
└── polars-arrow-format v0.2.0
    ├── polars-arrow v0.49.1

I think this can be resolved by regenerating the planus-generated code

Log output

error[E0080]: evaluation of constant value failed
  --> /home/louis/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/polars-arrow-format-0.2.0/src/ipc/generated.rs:3:15
   |
3  | const _: () = ::planus::check_version_compatibility("planus-1.1.1");
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ evaluation panicked: Your generated code is out of date, please regenerate using planus version 1.2.0
   |
note: inside `check_version_compatibility`
  --> /home/louis/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/planus-1.2.0/src/lib.rs:44:14
   |
44 |           _ => panic!(
   |  ______________^
45 | |             "Your generated code is out of date, please regenerate using planus version 1.2.0"
46 | |         ),
   | |_________^ the failure occurred here

Issue description

Polars arrow 0.49.1 is pulling in polars-arrow-format 0.2.0 which was generated on Planus 1.1.1, which is leading to a cargo check error when the more recent planus 1.2.0 crate is pulled in (I think because planus is not pinned exactly with =1.1.1)

I expect this could be resolved for future Polars releases by regenerating the codegen in the repo but am not sure about the previous one, 0.49.1 seems to not work now unless you pin planus to =1.1.1 if I understand this rightly?

Expected behavior

I would have expected a previous release of Polars to remain stable to install without pinning the transitive dep myself.. (but I may be misunderstanding the dependency resolution)

Pinning the planus dep myself works as expected

Installed versions

polars = { default-features = false, features = ["fmt"], version = "0.49.1" }

Metadata

Metadata

Assignees

Labels

P-highPriority: highacceptedReady for implementationbugSomething isn't workingrustRelated to Rust Polars

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions