Fietsboek 0.7.0 has been released! The main thing in this release — besides
some small ergonomic improvements — is the fact that we now have profile pages,
and with it, integration with hittekaart!
This integration now provides you with the ability to render heatmaps for the
user, either manually via fietsctl
, or automatically as part of the
fietscron
maintenance jobs.
The release is available via git
(tag: v0.7.0
) and PyPI.
Rust & Fietsboek
Usually, rust and bicycles are not a great combination, but for Fietsboek it's
a good fit. Rust helps to make performance critical sections of the code fast,
or allows us to use crates from the Rust ecosystem for functionality that does
not exist in form of a Python package.
We already use Rust code via pydantic, but now there is more thanks to nh3 —
and I am not opposed to adding more Rust code in the future, e.g. to speed up
GPX parsing or the transformers.
However, as nice as Rust is, distributing the Rust/Python packages is a bit
more cumbersome than plain Python packages, as they need to be compiled for the
different platforms and architectures. Not all packages can provide precompiled
versions for all platforms and architectures combinations, and might just
provide the most common ones.
Thanks to maturin, Rust crates can be built automatically by pip
during
their installation, but that does require a working Rust toolchain. Thus, if
you see the following error (or something similar, depending on your system and
pip
versions), make sure to install the Rust compiler and cargo:
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [6 lines of output]
Checking for Rust toolchain....
Cargo, the Rust package manager, is not installed or is not on PATH.
This package requires Rust and Cargo to compile extensions. Install it through
the system's package manager or via https://rustup.rs/
[end of output]
The bottom line is this: Version 0.7.0 is not the first one to ship with Rust
code, but due to the addition of another Rust dependency, you might need to
install a Rust toolchain now. More Rust code might be added in the future, so
be ready ;-)
Changelog
Added
Profile pages with "milestone tracks" (longest, shortest, ...).
Integration with hittekaart
for heatmaps on the profile.
A data version check at startup.
The Remove Breaks transformer.
Unfinished uploads are now shown to the user on the home page.
Changed
fietsctl
now uses click
for argument parsing, some CLI behavior might
have changed.
All commands now assume fietsboek.ini
as the default configuration path.
bleach has been replaced with nh3.