Important
This version is not released yet and is under active development.
- Move OS families diagrams to group documentation page.
- Allow platform ID membership test on groups.
- Add
items()
method toGroup
. - Allow
None
values in nested references to platforms and groups. - Keep initial order of data from
platforms_from_ids()
andgroups_from_ids()
results. - Allow arbitrary arguments number in
Group._extract_platforms()
.
- Allow set operations to resolve group and Platform IDs.
- Make resolution of platform and group IDs case-insensitive.
- Only runs website tests on Linux to prevent DOSing them.
- Drop supports for Python 3.10.
- Remove
tomli
dependency.
- Add new
platforms_from_ids
andgroups_from_ids
methods to retrieve platforms and groups from a collection of IDs. - Allow a platform to be fetched by its ID from a group with the
group[platform_id]
item getter syntax. - Add new
ALL_PLATFORM_IDS
,ALL_GROUP_IDS
andALL_IDS
constants. - Removes
ALL_OS_LABELS
. - Add
windows-2025
to the test matrix. - Mark Python 3.14 tests as stable.
- Add detection of Nobara.
- Fix
current_os()
to always return a single platform. Closes #158. - Add new
current_platforms()
method to return all platforms matching the current environment. - Generate a pair of Pytest
@skip_<id>
/@unless_<id>
decorators for each platform and group. - Change all group membership check utilities to be functions instead of variables. You now have to call
is_<group_id>()
instead ofis_<group_id>
. - Cache the result of
is_<group_id>()
group membership check utilities. - Do not call all detection heuristics on module import. Instead, call them lazily when needed.
- Make URLs required on all platforms.
- Invite users in error messages and logs to contribute back edge-cases to improve detection heuristics.
- Upload test results to coverage.
- Display the hierarchy of non-overlapping groups as a mindmap.
- Add URL on all platforms.
- Add detection of openSUSE Tumbleweed. Closes #133.
- Do not allow icons on platforms and groups to be empty.
- Run tests in parallel to speed up CI.
- Add a new
copy()
method toGroup
. - New
target_pool
parameter onreduce
method let you specify the subset of groups to reduce platforms to. - Remove
CURRENT_OS_ID
andCURRENT_OS_LABEL
.
- Allow union, intersection, difference and symmetric difference of
Group
. - Implements
<=
,<
,>=
,>
,|
,&
,-
and^
operators forGroup
. - Deduplicate platforms on
Group
instantiation. - Allow testing for membership of individual platform in
Group
.
- Allow set comparison between groups and single platform.
- Add detection of Tuxedo OS. Closes #93.
- Add support for Python 3.13.
- Drop supports for Python 3.9.
- Run jobs on
ubuntu-24.04
instead ofubuntu-22.04
. - Run tests on
macos-15
. Remove tests onmacos-12
. - Run tests on Python 3.14-dev.
- Fix conflicting detection heuristics for Linux distributions. Closes #72.
- Fix fetching of macOS version for releases without build number (like
15.0
).
- Add detection of all versions of macOS and Windows. Closes #55.
- Drop supports for Python 3.8.
- Add
is_<group_id>
booleans to module root to test the membership of the current platform to that group. - Rename
ALL_LINUX
group toLINUX
. - Rename
ALL_WINDOWS
group toANY_WINDOWS
.
- Fix changelog update.
- Add new
LINUX_LIKE
family that mergeALL_LINUX
andLINUX_LAYERS
groups.
- Run tests on
ubuntu-24.04
andmacos-12
. - Add missing typed marker.
- Add documentation.
- Expose all utilities at root level.
- Split code.
- Re-release.
- Add
pytest
utilities. - Reorganize code.
- Fix tests.
- First version as a stand alone package extracted from
click-extra
.