Version Support
Toolchain floors, bump procedure, and deprecation policy.
Version Support Policy
How old can your toolchain be, and what breaks when floors move? This page is the contract.
Supported floors (v1.17.0)
| Dependency | Floor | Why |
|---|---|---|
| Go | 1.27 | The v1.20.0 release raised every module's go directive to 1.27 (GO-2026-5972/6089/6090 fixes and the 1.27 stdlib baseline). encoding/json/v2 (via errorpage, navigation/breadcrumbs) is stable here — GOEXPERIMENT=jsonv2 is only needed on out-of-support 1.26 and older; the toolchain floor tracks the latest security release (currently 1.27.1 via the flake's go_1_27). |
| templ | v0.3.1100 | The generator version the committed *_templ.go files are built with (ships upstream ADR-0004 attribute sanitization). Older generators emit incompatible runtime calls; pair templ-components ≥ v1.27.0 with templ ≥ v0.3.1100. |
| Tailwind CSS | v4.x (4.1+) | CSS-first config, @theme, @custom-variant, @source scanning of .templ files. v3 does not support the theming model. |
| HTMX | 2.0.10 (self-hosted, embedded) or 2.x CDN | The library embeds 2.0.10 inline; HTMXVersion consumers need 2.x for response-handling defaults the components rely on. |
What a floor bump looks like
- The floor moves only when a dependency feature or a security fix is actually required — never speculatively.
- The bump lands with: the
go.mod/go.workchange, a CHANGELOG Changed entry naming the new floor and the reason, and a note here. - Consumers on older toolchains get a clear build error (missing
encoding/json/v2, unknown runtime symbols) — not silent misbehavior. tc doctorreports the current floors from inside your project.
Deprecation and removal
- A deprecated API ships a CHANGELOG Deprecated entry and stays for at least one minor release before removal in the next major (see ADR-0039 in the repository for the module-path mechanics).
- Breaking changes accumulate in TODO_LIST's Deferred — v2.0 breaking changes section; nothing there ships in a v1 minor.
Last updated Edit this page