Skip to content

fix(prqlc/deps): set chrono minimum to 0.4.40 for arrow-arith compatibility#5841

Merged
max-sixty merged 2 commits intomainfrom
fix/chrono-min-version-25019920802
Apr 28, 2026
Merged

fix(prqlc/deps): set chrono minimum to 0.4.40 for arrow-arith compatibility#5841
max-sixty merged 2 commits intomainfrom
fix/chrono-min-version-25019920802

Conversation

@prql-bot
Copy link
Copy Markdown
Collaborator

@prql-bot prql-bot commented Apr 27, 2026

Summary

test-deps-min-versions started failing on PRs that trigger the nightly path (e.g. #5838 run) after #5834 loosened the chrono constraint from 0.4.44 to 0.4. Under cargo minimal-versions test --direct, prqlc's chrono = "0.4" resolves to chrono 0.4.0, but arrow-arith (transitive via connector_arrow -> arrow) requires chrono ^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 polars 0.4.41 or the latest 0.4.44 alongside prqlc (the original motivation in #5834).

Test plan

  • test-deps-min-versions passes in CI

#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>
Copy link
Copy Markdown
Collaborator Author

@prql-bot prql-bot left a comment

Choose a reason for hiding this comment

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

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.

@max-sixty
Copy link
Copy Markdown
Member

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?

@prql-bot
Copy link
Copy Markdown
Collaborator Author

Added the pr-nightly label — that should trigger the nightly path so the test plan can flip green.

…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 prql-bot changed the title fix(prqlc/deps): set chrono minimum to 0.4.22 for duckdb compatibility fix(prqlc/deps): set chrono minimum to 0.4.40 for arrow-arith compatibility Apr 28, 2026
Copy link
Copy Markdown
Collaborator Author

@prql-bot prql-bot left a comment

Choose a reason for hiding this comment

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

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 selectedcargo release publish --package prqlc-parser fails 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-run still 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.

@max-sixty max-sixty merged commit af9c65a into main Apr 28, 2026
80 of 82 checks passed
@max-sixty max-sixty deleted the fix/chrono-min-version-25019920802 branch April 28, 2026 01:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants