Files
computer-playbook/utils/roles/lifecycle.py
kevinveenbirkenbachandClaude Opus 4.8 a1f5494f2c refactor(lifecycle): single-source the CI-tested lifecycle envelope
Read INFINITO_LIFECYCLES from default.env via a new tested_lifecycles() helper; derive TESTED_LIFECYCLES, the README overview envelope, the guide-select role filter, and the invokable-lifecycle lint from it. Add "maintained" to the envelope and drop the redundant hardcoded "alpha beta rc stable" strings from workflows, CLI help, and docs.

Guide selection now skips pre-alpha/eol roles (153 -> 117 testable).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 19:08:08 +02:00

18 lines
620 B
Python

"""The CI-tested lifecycle envelope, read from ``default.env`` (the SPOT)."""
from __future__ import annotations
from utils.cache.files import PROJECT_ROOT
from utils.env.parser import parse_static_env
def tested_lifecycles() -> frozenset[str]:
"""Lifecycle stages the CI test-deploy discovery exercises.
Reads the ``INFINITO_LIFECYCLES`` value from ``default.env`` so the
envelope has a single source of truth instead of being duplicated as a
hardcoded set at every consumer.
"""
raw = parse_static_env(PROJECT_ROOT / "default.env")["INFINITO_LIFECYCLES"]
return frozenset(raw.split())