v13.3.0
- Deprecate the
TUMBLEWEEDplatform: openSUSE Tumbleweed is now detected asOPENSUSE.TUMBLEWEED,is_tumbleweed()and theskip_tumbleweed/unless_tumbleweeddecorators still resolve to theirOPENSUSEcounterparts with aDeprecationWarning, and will be removed in14.0.0. - Detect all openSUSE release channels (Tumbleweed, Leap, Slowroll, MicroOS, ...) as
OPENSUSE. Closes #619 Platform.info()now reports the rawos-releaseID of distribution sub-variants in itsdistro_idfield (likeoloropensuse-slowroll) instead of aliasing it to the canonical platform ID.- Rename
NON_OVERLAPPING_GROUPStoCANONICAL_GROUPSandEXTRA_GROUPStoNON_CANONICAL_GROUPS, matching theGroup.canonicalvocabulary. The old names still resolve with aDeprecationWarning, and will be removed in14.0.0. Trait.info()is now implemented by the base class with identity metadata: customTraitsubclasses are no longer forced to override it.- Rename the
ALL_CIgroup to "All CI systems" andALL_AGENTSto "All AI coding agents", aligning with the other "all" group names. current_traits()now returns an immutablefrozenset: mutating the previously returnedsetcorrupted its cache.linux_info()now returnsNonefor missing fields instead of empty strings, likemacos_info()andwindows_info().- Fix pytest decorator skip reasons mangling acronyms and brand names ("Skip cI systems" is now "Skip All CI systems").
- Fix grammar and labels of the
current_*()multiple-match errors ("Multiple CI matches:" is now "Multiple CI systems match:"). - Fix the
cff-versionschema field incitation.cffbeing overwritten with the package version on every version bump. - Fix stale agent tables, Sankey and mindmap diagrams in the documentation: they are now regenerated like the other trait categories.
- Document the platform granularity policy: independent derivative distributions get a dedicated platform, while channels and variants of the same distribution fold into their parent.
- Replace the hand-maintained per-architecture, per-platform, per-CI and per-agent exclusivity test blocks with generic mutual-exclusion conformance tests.
- Convert
test_platform_info.pyfrom test classes to parametrized top-level functions.
Full changelog: v13.2.0...v13.3.0