fix(prqlc/deps): set chrono minimum to 0.4.40 for arrow-arith compatibility#5841
fix(prqlc/deps): set chrono minimum to 0.4.40 for arrow-arith compatibility#5841
Conversation
#5834 loosened the chrono constraint from 0.4.44 to 0.4 (i.e. >=0.4.0) so downstream apps using prqlc alongside polars (which depends on 0.4.41) could resolve. But duckdb, a direct dependency of prqlc, requires chrono ^0.4.22, so `cargo minimal-versions test --direct` now picks chrono 0.4.0 and fails to resolve. Pin the minimum to 0.4.22 — still permits polars 0.4.41 and the latest 0.4.44 to coexist. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
prql-bot
left a comment
There was a problem hiding this comment.
Diagnosis confirmed. duckdb 1.10501.0 declares chrono = "^0.4.22" (crates.io), and the failing nightly run shows the resolver picking chrono 0.4.0 from chrono = "0.4" and conflicting with that bound. Bumping to 0.4.22 is the smallest fix.
One verification gap worth noting: this PR can't actually exercise test-deps-min-versions in its own CI. That job is gated on needs.rules.outputs.nightly == 'true', which the paths-filter only sets for changes to the root Cargo.toml/Cargo.lock/etc. — not nested ones like prqlc/prqlc/Cargo.toml. The PR test plan checkbox will only flip green if a maintainer applies the pr-nightly label, or after this lands and the next scheduled nightly runs.
can you add the label? |
|
Added the |
…bility #5834 loosened the chrono constraint from 0.4.44 to 0.4 (i.e. >=0.4.0) so downstream apps using prqlc alongside polars (which depends on chrono 0.4.41) could resolve. But this broke `cargo minimal-versions test --direct`: arrow-arith (transitive via connector_arrow -> arrow) requires chrono ^0.4.40, so the resolver could not satisfy 0.4.0. Pin the minimum to 0.4.40 — still permits polars 0.4.41 and the latest 0.4.44 to coexist. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
prql-bot
left a comment
There was a problem hiding this comment.
CI is otherwise green; test-deps-min-versions passes (job) — the fix works. The two failing nightly publish jobs are pre-existing, post-0.13.12 release issues unrelated to this PR — the same failures occurred on the prior dependabot run that triggered this fix:
publish-to-cargo:warning: disabled due to previous publish (0.13.12), skipping prqlc-parser/error: no packages selected—cargo release publish --package prqlc-parserfails because 0.13.12 is already on crates.io.publish-js:npm error You cannot publish over the previously published versions: 0.13.12.—npm publish --dry-runstill validates against the registry.
Both will keep failing on pr-nightly runs until the version in Cargo.toml/package.json is bumped past 0.13.12 (or the dry-runs are skipped on PR triggers). Out of scope for this chrono fix; flagging for visibility.
Summary
test-deps-min-versionsstarted failing on PRs that trigger the nightly path (e.g. #5838 run) after #5834 loosened the chrono constraint from0.4.44to0.4. Undercargo minimal-versions test --direct, prqlc'schrono = "0.4"resolves to chrono0.4.0, butarrow-arith(transitive viaconnector_arrow->arrow) requireschrono ^0.4.40, causing the resolver to fail.Pin the minimum to
0.4.40— that's the highest known transitive minimum, and it still allows downstream apps to use polars0.4.41or the latest0.4.44alongside prqlc (the original motivation in #5834).Test plan
test-deps-min-versionspasses in CI