mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-11 12:33:53 -06:00
Dependabot moved uv in pyproject.toml alone, while validate.yml and CONTRIBUTING kept 0.12.9. Both pins move together, and a test now fails when a package pinned in both carries two versions.
77 lines
3.0 KiB
TOML
77 lines
3.0 KiB
TOML
# Installing the project installs its dependencies and nothing else:
|
|
# `pip install -e ".[dev]"` gives a contributor every tool the tests use.
|
|
# scripts/ and tests/ run from the checkout, so no package is built from them.
|
|
[build-system]
|
|
requires = ["setuptools>=61"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[tool.setuptools]
|
|
packages = []
|
|
py-modules = []
|
|
|
|
[project]
|
|
# Not the package PyPI serves (packaging/pypi/ builds that one, named
|
|
# retrobios): a contributor's `pip install -e ".[dev]"` and `pip install
|
|
# retrobios` in one environment would otherwise replace each other.
|
|
name = "retrobios-dev"
|
|
version = "1.0.0"
|
|
description = "BIOS collection manager for retrogaming platforms"
|
|
# install.py is the only entry point a user runs before cloning, and both
|
|
# bootstraps accept 3.8, so the floor stays where the bootstraps put it. That
|
|
# floor covers install.py alone: the build scripts under scripts/ need 3.9
|
|
# (common.py, which every build script imports, checks it), and CI runs the
|
|
# test suite on 3.12.
|
|
requires-python = ">=3.8"
|
|
dependencies = [
|
|
"pyyaml",
|
|
]
|
|
|
|
# jsonschema is tooling, not a runtime dependency: scripts/validate_schemas.py
|
|
# and the CI contract check are the only callers, and no user path imports it.
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"jsonschema[format-nongpl]>=4.23",
|
|
"markdown>=3.7",
|
|
# The installer's full-screen tests: pyte reads the screen back,
|
|
# hypothesis fuzzes the key decoder, vermin holds install.py to 3.8.
|
|
"pyte>=0.8.2",
|
|
"hypothesis>=6.100",
|
|
"vermin>=1.9",
|
|
# The packaging guard reads this file through setuptools, which pip
|
|
# installs only in its isolated build environment and 3.12 no longer
|
|
# bundles: without it the guard skipped on every CI run.
|
|
"setuptools>=61",
|
|
# scripts/build_pypi.py runs `uv build` for the PyPI package and its test.
|
|
"uv==0.13.4",
|
|
# The type check CI runs, pinned: another mypy reports other errors
|
|
# than the ones mypy-baseline.txt holds.
|
|
"mypy==1.18.2",
|
|
"mypy-baseline==0.7.4",
|
|
]
|
|
# The site is built by Astro Starlight from website/package.json and its
|
|
# lockfile (npm ci --prefix website): no Python package builds it.
|
|
|
|
[project.urls]
|
|
Repository = "https://github.com/Abdess/retrobios"
|
|
|
|
# The annotations are checked, not only written. Third-party packages are left
|
|
# out (no_site_packages) so the result does not depend on what the machine
|
|
# has installed: yaml, jsonschema and the rest read as Any everywhere. The
|
|
# errors the code carried when the check started sit in mypy-baseline.txt.
|
|
# CI fails on an error that is not there and on an entry that no longer
|
|
# occurs: `mypy > out.txt`, then `mypy-baseline filter < out.txt`, and
|
|
# `mypy-baseline sync < out.txt` once the fix is in.
|
|
[tool.mypy]
|
|
files = ["install.py", "scripts"]
|
|
python_version = "3.9"
|
|
explicit_package_bases = true
|
|
ignore_missing_imports = true
|
|
no_site_packages = true
|
|
disable_error_code = ["import-untyped"]
|
|
cache_dir = "tmp/mypy_cache"
|
|
|
|
[tool.mypy-baseline]
|
|
baseline_path = "mypy-baseline.txt"
|
|
ignore_categories = ["note"]
|
|
sort_baseline = true
|