Skip to main content

Version 0.7.0 released!

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.