Files
anki/pyproject.toml
Abdo 4f86576f1d feat: Use Briefcase on Linux (#4774)
## Linked issue

#4769

## Summary

This switches Anki to use Briefcase for Linux packaging instead of
PyInstaller:
- Use the default
[briefcase-linux-system-template](https://github.com/beeware/briefcase-linux-system-template)
with some changes to link the binary against an embedded Python build
instead of the system's Python.
- Define a custom "zip" output format implemented via a Briefcase
plugin. This serves as a replacement for the build.sh script and allows
us to bypass the system Python check Briefcase enforces for the default
"system" format.

## How to test

- Build the zip: `./ninja installer:package`.
- Extract the zip under `out/installer/dist`, install and run.
- If you have access to a distro with a different system Python version,
copy the zip there and confirm it's working.
2026-05-04 21:15:50 +03:00

54 lines
1.1 KiB
TOML

[project]
name = "anki-dev"
version = "0.0.0"
description = "Local-only environment"
requires-python = ">=3.12"
classifiers = ["Private :: Do Not Upload"]
[dependency-groups]
dev = [
"pre-commit",
"mypy",
"mypy-protobuf",
"ruff",
"pytest",
"PyChromeDevTools",
"wheel",
"hatchling", # for type checking hatch_build.py files
"mock",
"types-protobuf",
"types-requests",
"types-orjson",
"types-decorator",
"types-flask",
"types-flask-cors",
"types-markdown",
"types-waitress",
"types-pywin32",
"briefcase>=0.4.0",
"jinja2",
]
docs = [
"sphinx",
"myst-parser",
"sphinx-book-theme",
"sphinx-autoapi",
"sphinx-autobuild>=2024.10.3",
"click-extra[sphinx]", # for GitHub alerts
]
# Local resolution guard; keep in sync with Dependabot cooldown.
[tool.uv]
exclude-newer = "7 days"
exclude-newer-package = { anki-mac-helper = false, anki-audio = false }
required-version = ">=0.9.25"
[tool.uv.workspace]
members = ["pylib", "qt", "qt/installer/briefcase_plugins"]
[[tool.uv.index]]
name = "testpypi"
url = "https://test.pypi.org/simple/"
publish-url = "https://test.pypi.org/legacy/"
explicit = true