Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion changelog.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
# Changelog

## [`13.0.0.dev0` (unreleased)](https://github.com/kdeldycke/extra-platforms/compare/v12.0.3...main)
## [`13.0.1.dev0` (unreleased)](https://github.com/kdeldycke/extra-platforms/compare/v13.0.0...main)

> [!WARNING]
> This version is **not released yet** and is under active development.

## [`13.0.0` (2026-05-25)](https://github.com/kdeldycke/extra-platforms/compare/v12.0.3...v13.0.0)

- Add IBM i platform detection: `OS400` / `is_os400()`, recognized via `sys.platform == "os400"` (reported by Python 3.9+ in IBM i's AIX-compatible PASE runtime). Grouped under `UNIX_LAYERS` alongside Cygwin.
- Detect the active shell on Windows by walking the parent process tree via the Win32 Tool Help API (`CreateToolhelp32Snapshot`), where neither `/proc` nor `ps` exists. `is_powershell()`, `is_cmd()`, Git Bash detection through `is_bash()`, `current_shell()` arbitration, and `current_shell_path()` now rely on the actual ancestor processes rather than only the `PROMPT`/`PSModulePath` environment variables. Executable paths are resolved with `QueryFullProcessImageNameW`. The `ctypes` bindings live in a new `extra_platforms._windows` module, imported lazily and only on Windows.
- Add `current_shell_path()` returning the executable path of the current shell (from the process tree when available, falling back to `SHELL`). `Shell.info()` now exposes the running shell's binary in its `"path"` field instead of always returning the configured login shell from `SHELL`.
Expand Down
4 changes: 2 additions & 2 deletions citation.cff
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cff-version: 13.0.0.dev0
cff-version: 13.0.1.dev0
title: "Extra Platforms"
message: "If you use this software, please cite it as below."
type: software
Expand All @@ -8,6 +8,6 @@ authors:
email: kevin@deldycke.com
orcid: "https://orcid.org/0000-0001-9748-9014"
doi: 10.5281/zenodo.13341712
version: 13.0.0.dev0
version: 13.0.1.dev0
date-released: 2026-05-25
url: "https://github.com/kdeldycke/extra-platforms"
2 changes: 1 addition & 1 deletion extra_platforms/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@
"""


__version__ = "13.0.0.dev0"
__version__ = "13.0.1.dev0"


def _initialize_group_detection_functions() -> list[str]:
Expand Down
6 changes: 3 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ requires = [ "uv-build>=0.9" ]
[project]
# Docs: https://packaging.python.org/en/latest/guides/writing-pyproject-toml/
name = "extra-platforms"
version = "13.0.0.dev0"
version = "13.0.1.dev0"
description = "🔎 Detect architectures, platforms, shells, terminals, CI systems and agents, grouped by family"
readme = "readme.md"
keywords = [
Expand Down Expand Up @@ -262,7 +262,7 @@ extra-platforms = "extra_platforms.__main__:main"
[project.urls]
"Changelog" = "https://github.com/kdeldycke/extra-platforms/blob/main/changelog.md"
"Documentation" = "https://kdeldycke.github.io/extra-platforms"
"Download" = "https://github.com/kdeldycke/extra-platforms/releases/tag/v13.0.0.dev0"
"Download" = "https://github.com/kdeldycke/extra-platforms/releases/tag/v13.0.1.dev0"
"Funding" = "https://github.com/sponsors/kdeldycke"
"Homepage" = "https://github.com/kdeldycke/extra-platforms"
"Issues" = "https://github.com/kdeldycke/extra-platforms/issues"
Expand Down Expand Up @@ -394,7 +394,7 @@ run.source = [ "extra_platforms" ]
report.precision = 2

[tool.bumpversion]
current_version = "13.0.0.dev0"
current_version = "13.0.1.dev0"
allow_dirty = true
ignore_missing_files = true
# Parse versions with an optional .devN suffix (PEP 440).
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading