rrt eol
rrt eol
Section titled “rrt eol”Runtime end-of-life (EOL) tracking for repo-release-tools.
Overview
Section titled “Overview”Supports Python, Go, Node.js, and Rust. Bundled data provides offline
operation; pass fetch_live=True to pull fresh data from
https://endoflife.date/api/v1/products/<slug>/.
Rust uses a rolling-release model — only the latest stable is supported. The meaningful check for Rust is how many releases behind the host/project minimum is, not a date-based deadline.
Supported languages
Section titled “Supported languages”| Keyword | Checked via | EOL model |
|---|---|---|
python |
python --version / requires-python |
Date-based |
go |
go version / go.mod |
Date-based (two latest minors supported) |
nodejs / node |
node --version / engines.node |
Date-based (LTS only) |
rust |
rustc --version / Cargo.toml rust-version |
Rolling-release (lag-based) |
Pass the lowercase keyword to --language or languages in [tool.rrt.eol].
Data sources
Section titled “Data sources”rrt ships a bundled snapshot of EOL data (updated with each release). This enables fully offline operation with no external requests.
Pass --fetch-live to pull fresh records from
endoflife.date for the current
invocation. Live data is never cached — the bundled snapshot is always the
default.
Rust rolling-release model
Section titled “Rust rolling-release model”Rust does not use date-based EOL windows. The community supports only the latest stable release. rrt models this as a lag-based check:
RUST_WARN_LAG = 2— warn if the detected version is 2 or more releases behind the latest stableRUST_ERROR_LAG = 4— error if 4 or more releases behind
These thresholds are not configurable in [tool.rrt.eol]; they reflect the
upstream support model.
[tool.rrt.eol] configuration
Section titled “[tool.rrt.eol] configuration”Add to pyproject.toml (or .rrt.toml):
[tool.rrt.eol]languages = ["python", "node"]warn_days = 180error_days = 0allow_eol = falsefetch_live = false
[[tool.rrt.eol.overrides]]language = "python"cycle = "3.9"eol = "2026-06-01"Examples
Section titled “Examples”rrt eol --language python --fetch-liveLibrary
Section titled “Library”from repo_release_tools.eol.core import check_eol_status
status, record = check_eol_status("3.9", "python", fetch_live=False)Caveats
Section titled “Caveats”fetch_live_data swallows network and JSON errors and returns an empty
list. When live data is unavailable, get_eol_records falls back to the
bundled snapshot. Rust’s RUST_WARN_LAG and RUST_ERROR_LAG thresholds
are fixed constants and cannot be overridden in [tool.rrt.eol].
check_eol_status returns ("unknown", None) when the version string
does not parse into a release cycle. Passing an explicit records list
also requires passing language, or the call raises TypeError.
Related docs
Section titled “Related docs”Badge families are intentionally complete for the current icon registry across platform, registry, and language labels; see src/repo_release_tools/tools/platform.py if you think one is missing.
Chat is powered by Context7, a third-party service with its own terms and privacy policy.