Repository navigation
Conversation
Rust/PyO3 (maturin) datetime library. Verified real upstream (python-pendulum/pendulum, MIT): pyproject.toml/rust/Cargo.toml confirm a plain `features = ["pyo3/extension-module"]` build (no abi3), and cargo metadata's crate set (pyo3/pyo3-ffi/pyo3-macros/libc/once_cell/ portable-atomic/target-lexicon/heck/proc-macro2/quote/syn/unicode-ident) is pure Rust with zero -sys/C crates. Mirrors upstream's own tests.yml Tests job, running its real pytest suite against the built wheel (and once more with PENDULUM_EXTENSIONS=0, as upstream also does). Matrix trimmed to cp312-cp314t: time-machine, one of upstream's own test dependencies, is only published for cp312+ on our registry and has no riscv64 wheel on public PyPI either, so cp310/cp311 wheels could not be tested against upstream's real suite (same trim as build-neo4j-rust-ext.yml's pyarrow note).
luhenry
added a commit
that referenced
this pull request
Oct 15, 2026
…ython-Levenshtein, cytoolz -- no riscv64 gap to close
--no-index disables index lookups entirely, including for pendulum's own runtime deps (python-dateutil, tzdata), which dist/ only has the built wheel for. That made the step fail resolving dependencies before ever reaching the network, since the next line installs those deps explicitly anyway.
python-dateutil 3.0.0 (now resolved by the loose >=2.6 floor) gives tz.gettz() tzfile objects a .key attribute. pendulum's _safe_timezone treats any tzinfo with .key as zoneinfo and keeps the IANA name, so test_instance_with_aware_datetime_any_tzinfo gets 'Europe/Paris' instead of the '+02:00' fixed offset it expects, on every interpreter. This is version drift and isn't specific to riscv64: upstream's CI passes against poetry.lock, which pins python-dateutil 2.9.0.post0, so pin that in the test environment.
Two adjacent single-quoted args with no space between them get concatenated by the shell into one invalid requirement (python-dateutil==2.9.0.post0tzdata>=2020.1), failing uv's install on every job before the test ever runs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
pendulum3.3.0Compiles pendulum's
_pendulumRust extension (date/duration parsing and arithmetic helpers) with PyO3/maturin. Upstream publishes no riscv64 wheel.Mirrors upstream's
tests.ymlTestsjob, narrowed to Linux.Differs from upstream
Testing
PENDULUM_EXTENSIONS=0(upstream's own pure-Python pass).License: OK, MIT, nothing vendored.
Built on cp312;
cargo metadata --filter-platform riscv64gc-unknown-linux-gnuagainst the committedrust/Cargo.lockresolves 14 packages, all pure Rust, none-sys/C crates.