Files
wehub-resource-sync 9b395f5cc3
E2E Headed Chrome / e2e-headed (macos-15) (push) Has been cancelled
E2E Headed Chrome / e2e-headed (ubuntu-latest) (push) Has been cancelled
E2E Headed Chrome / e2e-headed (windows-latest) (push) Has been cancelled
CI / build (macos-latest) (push) Has been cancelled
CI / build (ubuntu-latest) (push) Has been cancelled
CI / build (windows-latest) (push) Has been cancelled
CI / unit-test (push) Has been cancelled
CI / bun-test (push) Has been cancelled
CI / adapter-test (push) Has been cancelled
CI / smoke-test (macos-latest) (push) Has been cancelled
CI / smoke-test (ubuntu-latest) (push) Has been cancelled
Security Audit / audit (push) Has been cancelled
Build Chrome Extension / build (push) Has been cancelled
Trigger Website Rebuild (Docs Updated) / dispatch (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:39:48 +08:00

49 lines
1.7 KiB
Markdown

# endoflife.date
**Mode**: 🌐 Public · **Domain**: `endoflife.date`
Look up release cycles and end-of-life / LTS / support dates for hundreds of products (Node.js, Python, Ubuntu, Java, Postgres, Kubernetes, etc.). Hits the unauthenticated `endoflife.date/api` directly.
## Commands
| Command | Description |
|---------|-------------|
| `opencli endoflife product <name>` | Release cycles + EOL / LTS / support dates for one product |
## Usage Examples
```bash
# Node.js cycles (newest first)
opencli endoflife product nodejs
# Python, JSON output for scripts
opencli endoflife product python -f json
# Ubuntu LTS schedule
opencli endoflife product ubuntu
```
## Output Columns
| Command | Columns |
|---------|---------|
| `product` | `product, cycle, releaseDate, latest, latestReleaseDate, lts, support, eol, extendedSupport, eolStatus, url` |
## Options
### `product`
| Option | Description |
|--------|-------------|
| `product` (positional) | endoflife.date product slug (e.g. `nodejs`, `python`, `ubuntu`, `kubernetes`) |
## Notes
- **`eolStatus`** is a derived projection (`active` / `eol` / `ongoing` / `null`) computed against today's UTC date — agents can answer "is this version still supported?" without parsing dates.
- **Boolean dates → strings.** endoflife.date sometimes ships `true` for "ongoing support" / `false` for "no LTS". The adapter normalises:
- `true``"ongoing"`
- `false` / `null``null`
- ISO date string → returned as-is
- **No API key required.** Slugs are exactly what appears at `https://endoflife.date/<product>`.
- **Errors.** Bad slug shape → `ArgumentError`; unknown product → `EmptyResultError` (HTTP 404); rate-limited → `CommandExecutionError`.