Anki is a smart spaced repetition flashcard program
Find a file
Damien Elmes 7ba32cce6d Migrate build system to uv
Closes #3787, and is a step towards #3081 and #4022

This change breaks our PyOxidizer bundling process. While we probably
could update it to work with the new venvs & lockfile, my intention
is to use this as a base to try out a uv-based packager/installer.

Still to do:
- move mpv distribution to a wheel
- build the new uv-based installer.

Some notes about the changes:

- Use uv for python download + venv installation
- Drop python/requirements* in favour of pyproject files / uv.lock
- Bumped to latest Python 3.9 version. The move to 3.13 should be
a fairly trivial change when we're ready.
- Dropped the old write_wheel.py in favour of uv/hatchling. This has
the unfortunate side-effect of dropping leading zeros in our wheels,
which we could try hack around in the future.
- Switch to Qt 6.7 for the dev repo, as it's the first PyQt version
with a Linux/ARM WebEngine wheel.
- Unified our macOS deployment target with minimum required for ARM.
- Dropped unused fluent python files
- Dropped unused python license generation
- Dropped helpers to run under Qt 5, as our wheels were already
requiring Qt 6 to install.
2025-06-16 19:20:12 +07:00
.buildkite Auto-expand bundle progress in Buildkite on Linux 2025-01-26 19:37:34 +11:00
.cargo Migrate build system to uv 2025-06-16 19:20:12 +07:00
.config Drop workspace-hack in favor of workspace deps 2023-06-23 17:41:31 +10:00
.cursor/rules Make URL schemes dialog more ergonomic (#4002) 2025-05-15 16:17:33 +10:00
.github/ISSUE_TEMPLATE Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
.vscode.dist Fix invalid rust-analyzer option (#3972) 2025-05-05 17:25:11 +10:00
build Migrate build system to uv 2025-06-16 19:20:12 +07:00
cargo update to fsrs-rs 4.0.0 (#4080) 2025-06-14 12:48:33 +07:00
docs Fix dockerimage, by bumping rust version (#3993) 2025-05-15 16:09:27 +10:00
ftl Migrate build system to uv 2025-06-16 19:20:12 +07:00
proto Feat/Health check (#4047) 2025-06-06 12:43:33 +07:00
pylib Migrate build system to uv 2025-06-16 19:20:12 +07:00
python Migrate build system to uv 2025-06-16 19:20:12 +07:00
qt Migrate build system to uv 2025-06-16 19:20:12 +07:00
rslib update to fsrs-rs 4.0.0 (#4080) 2025-06-14 12:48:33 +07:00
tools Migrate build system to uv 2025-06-16 19:20:12 +07:00
ts Fix IO text labels' fill attr being saved even if default colour (#4083) 2025-06-16 13:07:05 +03:00
.deny.toml Update tokio, crossbeam-channel and cargo-deny 2025-04-10 15:18:55 +10:00
.dockerignore Add distroless Dockerfile and implement internal health check (#3366) 2024-08-29 17:05:33 +07:00
.dprint.json Switch back to Prettier for Svelte formatting 2025-01-13 15:53:55 +11:00
.eslintrc.cjs Include error message text on page 2024-06-24 15:35:47 +07:00
.gitattributes try again to improve GitHub's language stats 2021-01-20 13:20:45 +10:00
.gitignore Yarn 4 (#3772) 2025-01-26 14:40:17 +11:00
.gitmodules Exclude PyOxidizer from recursive checkout 2023-07-02 18:22:44 +10:00
.isort.cfg Specify Python version for auto-formatters (#3325) 2024-08-04 20:54:14 +07:00
.mypy.ini Enable strict_optional for aqt/tagedit, utils, sync (#3578) 2024-11-15 16:29:19 +03:00
.prettierrc Switch back to Prettier for Svelte formatting 2025-01-13 15:53:55 +11:00
.pylintrc Add ability to restore a notetype to its original configuration (#2472) 2023-04-18 14:07:51 +10:00
.python-version Migrate build system to uv 2025-06-16 19:20:12 +07:00
.ruff.toml Specify Python version for auto-formatters (#3325) 2024-08-04 20:54:14 +07:00
.rustfmt-empty.toml Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
.rustfmt.toml Move ascii_percent_encoding into a separate repo 2023-04-12 08:45:23 +10:00
.version Bump version 2025-06-06 14:05:33 +07:00
.yarnrc.yml Yarn 4 (#3772) 2025-01-26 14:40:17 +11:00
Cargo.lock Migrate build system to uv 2025-06-16 19:20:12 +07:00
Cargo.toml update to fsrs-rs 4.0.0 (#4080) 2025-06-14 12:48:33 +07:00
check Add a shortcut to auto-format before running checks 2023-07-02 09:59:05 +10:00
CONTRIBUTORS Delay retention workload info display after FSRS optimization alerts (#4066) 2025-06-11 13:01:47 +07:00
LICENSE Replace css_browser_selector with our own implementation (#2854) 2023-11-30 10:57:33 +10:00
ninja Switch to SvelteKit (#3077) 2024-03-31 09:16:31 +01:00
package.json Bump vite from 5.4.18 to 5.4.19 (#4018) 2025-05-19 13:38:53 +10:00
pkgkey.asc add public key for release signing 2018-09-18 10:40:45 +10:00
pyproject.toml Migrate build system to uv 2025-06-16 19:20:12 +07:00
README.md Updated README (#2718) 2023-10-11 14:11:07 +10:00
run Migrate build system to uv 2025-06-16 19:20:12 +07:00
run.bat Migrate build system to uv 2025-06-16 19:20:12 +07:00
rust-toolchain.toml Update to Rust 1.85 2025-02-21 10:42:42 +07:00
SECURITY.md add SECURITY.md 2021-09-22 22:55:19 +10:00
uv.lock Migrate build system to uv 2025-06-16 19:20:12 +07:00
yarn Switch to SvelteKit (#3077) 2024-03-31 09:16:31 +01:00
yarn.bat Switch to SvelteKit (#3077) 2024-03-31 09:16:31 +01:00
yarn.lock Bump vite from 5.4.18 to 5.4.19 (#4018) 2025-05-19 13:38:53 +10:00

Anki

Build status

This repo contains the source code for the computer version of Anki.

About

Anki is a spaced repetition program. Please see the website to learn more.

Getting Started

Anki Betas

If you'd like to try development builds of Anki but don't feel comfortable building the code, please see Anki betas

Developing

For more information on building and developing, please see Development.

Contributing

Want to contribute to Anki? Check out the Contribution Guidelines.

Anki Contributors

CONTRIBUTORS

License

Anki's license: LICENSE