Supported configurations¶
This page enumerates the Python versions, operating systems, browsers, and dependencies that gamesheet-sdk-py officially supports. The authoritative source
for everything below is pyproject.toml; this page mirrors it for lookup convenience.
Python versions¶
Version |
Status |
|---|---|
3.11 |
Supported |
3.12 |
Supported |
3.13 |
Supported |
3.14 |
Supported |
<= 3.10 |
Not supported |
The constraint is enforced in pyproject.toml as requires-python = ">=3.11". Installing on an unsupported interpreter will be rejected by pip.
Operating systems¶
The SDK runs anywhere CPython 3.11–3.14 runs and Playwright can install Chromium. In practice that means:
Linux:
x86_64,aarch64macOS:
x86_64,arm64(Apple Silicon)Windows:
x86_64
Other targets (Linux 32-bit, BSD, etc.) are not tested. They may work for SDK operations that do not require Playwright; they will fail at
python -m playwright install chromium.
Bundled browser¶
Workflows that need a real browser drive headless Chromium via Playwright.
Attribute |
Value |
|---|---|
Engine |
Chromium |
Version |
Whatever Playwright’s current release fetches (not pinned by us). |
Install command |
|
Cache location |
|
Approximate size |
150 MB on disk |
For caching the install across CI runs, see How to install and smoke-test gamesheet-sdk-py in a GitHub Actions workflow.
Runtime dependencies¶
These are required and installed automatically by pip install gamesheet-sdk-py:
Package |
Purpose |
|---|---|
|
Subcommand framework for the |
|
ANSI-coloured log levels in the CLI (TTY-only). |
|
Headless-browser automation for the heavy code path. |
|
Data validation for SDK models. |
|
Env-driven resolution of |
|
YAML output for CLI workflows. |
|
HTTP client for the lightweight code path. |
|
Syntax-highlighted JSON / YAML output to a TTY. |
|
Human-readable table formats for CLI output. |
|
HTTP connection pooling and request retries. |
If you change [project.dependencies] in pyproject.toml, update this table in the same commit.
Optional dependency groups¶
The package declares many extras via [project.optional-dependencies]. The two most important are:
dev— minimal development setup:pre-commit,tox-workdir.docs— Sphinx and its plugins:sphinx,furo,myst-parser[linkify],sphinx-copybutton,sphinx-design,sphinx-click,sphinx-lint,sphinx-autobuild.all— includes every tool extra declared in the project (pytest, mypy, pylint, flake8, bandit, formatters, linters, type checkers, etc.). This is the one-line install for full local development capability.
Core extras¶
Extra |
Contents |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Includes every extra listed in this table plus all individual tool extras |
Individual tool extras¶
Each linter, formatter, type checker, and quality tool is isolated to its own extra. Examples include:
Formatters:
black,isort,autopep8,pyupgrade,autoflake,ssort,add-trailing-comma,absolufy-importsLinters:
bandit,refurb,pyrefly,blocklint,vulture,deptry,unimportDoc tools:
codespell,blacken-docs,docformatter,interrogate,pydocstyle,sphinx-lint,pymarkdown,mdformatConfig file tools:
yamllint,tox-ini-fmt,pyproject-fmt,validate-pyproject,editorconfig-checker,pyromaMetrics:
radon
See [project.optional-dependencies] in pyproject.toml for the complete list.
Install combinations¶
Command |
What it gets you |
|---|---|
|
Runtime deps only. |
|
Runtime + pre-commit hooks + tox workdir support. |
|
Runtime + Sphinx toolchain. |
|
Runtime + dev tools + testing suite. |
|
Everything (all tools, all extras). |
|
Equivalent to |
Distribution¶
Channel |
Identifier |
|---|---|
PyPI |
|
Source |
|
Type |
Pure-Python wheel; ships |
How the package version is managed¶
The version is written in pyproject.toml in the [project] version field. It is managed by
python-semantic-release (PSR), which automates version bumping and changelog generation based on Conventional
Commits.
PSR analyzes commits since the last release to determine the next version (following semver).
It updates
pyproject.toml,CHANGELOG.md, creates a release commit, and pushes a git tag.The automated release workflow is triggered by the tag push and handles building and publishing to PyPI.
The version is accessible at runtime via importlib.metadata.version("gamesheet-sdk-py") or through gamesheet_sdk.__version__.
A src/gamesheet_sdk/_version.py file is generated during the build process (by the build backend) to carry version metadata into the installed package. This
file is gitignored and should never be manually edited.