Skip to content
repo-release-tools
GitHub

rrt eol

Runtime end-of-life (EOL) tracking for repo-release-tools.

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.

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].

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 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 stable
  • RUST_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.

Add to pyproject.toml (or .rrt.toml):

[tool.rrt.eol]
languages = ["python", "node"]
warn_days = 180
error_days = 0
allow_eol = false
fetch_live = false
[[tool.rrt.eol.overrides]]
language = "python"
cycle = "3.9"
eol = "2026-06-01"
Terminal window
rrt eol --language python --fetch-live
from repo_release_tools.eol.core import check_eol_status
status, record = check_eol_status("3.9", "python", fetch_live=False)

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.

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.