mirror of
https://github.com/ankitects/anki.git
synced 2026-05-16 16:10:52 -04:00
migrates Anki Desktop packaging from the legacy NSIS/uv-based installer to [BeeWare Briefcase](https://briefcase.readthedocs.io/). This branch integrates work from many related issues and PRs to deliver cross-platform native installers (MSI on Windows, .app on macOS, PyInstaller on Linux) with code signing, notarization, and file association support. ## Integrated PRs - #4585 — Set up Briefcase - #4596 — Add Briefcase icons - #4598 — Handle Briefcase file associations - #4601 — Add Briefcase app permissions - #4609 — Customize Briefcase's MSI installer - #4616 — Set up Briefcase code signing and notarization - #4618 — Fix Briefcase packaging for x86 Macs - #4623 — Customize Briefcase's Linux template - #4627 — List required Debian packages for Briefcase installer - #4630 — Update Briefcase's Windows template - #4631 — Rewrite Linux install/uninstall scripts for PyInstaller - #4638 — Use PyInstaller on Linux - #4645 — Update installer docs - #4654 — Disable Briefcase's universal builds for macOS - #4672 — Deal with existing NSIS installations in MSI installer - #4676 — Remove duplicate Briefcase icons - #4677 — Tweak Linux scripts for new installer - #4709 — Add anki-console.bat to Briefcase's Windows package ## Related Issues - #4557 — Evaluate BeeWare Briefcase for Anki packaging and distribution - #4678 — Support native Windows ARM64 builds for Briefcase - #4688 — Linux installer: migrate to PyInstaller and rewrite install scripts - #4689 — Investigate startup performance with Briefcase - #4690 — Specify required Linux system packages for Briefcase - #4691 — Investigate Windows ARM64 support with Briefcase - #4692 — Test on Linux ARM with Briefcase - #4693 — Separate ARM and Intel macOS releases - #4694 — Update developer documentation for Briefcase installer - #4695 — Support upgrade/downgrade with the Briefcase installer - #4696 — Update user documentation for new installer - #4702 — Update Briefcase's Windows template with upstream security fix and OS version check - #4703 — Follow-up tweaks to Linux install/uninstall scripts ## Related PRs - #4619 — Enable Windows ARM64 support - #4632 — Release action --------- Co-authored-by: Abdo <abdo@abdnh.net> Co-authored-by: Andrew Sanchez <andrewsanchez@users.noreply.github.com> Co-authored-by: Fernando Lins <1887601+fernandolins@users.noreply.github.com>
44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
# Copyright: Ankitects Pty Ltd and contributors
|
|
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
|
|
import pytest
|
|
from validate_version import validate_version
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"version, current, expected",
|
|
[
|
|
("26.04", "26.03", False),
|
|
("26.04.1", "26.04", False),
|
|
("26.12", "26.11", False),
|
|
("26.04b1", "26.03", True),
|
|
("26.04a1", "26.03", True),
|
|
("26.04rc1", "26.03", True),
|
|
("26.04.1rc2", "26.04", True),
|
|
("26.04.1b1", "26.04", True),
|
|
],
|
|
)
|
|
def test_valid_versions(version: str, current: str, expected: bool) -> None:
|
|
assert validate_version(version, current) is expected
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"version, current, match",
|
|
[
|
|
("26.4", "26.03", "zero-padded month"),
|
|
("26.04", "26.04", "must be greater"),
|
|
("26.03", "26.04", "must be greater"),
|
|
("26.04b1", "26.04", "must be greater"),
|
|
("26", "25.01", "zero-padded month"),
|
|
("26.123", "26.03", "zero-padded month"),
|
|
("", "26.03", "zero-padded month"),
|
|
("not-a-version", "26.03", "zero-padded month"),
|
|
("26.04.dev1", "26.03", "zero-padded month"),
|
|
("26.04.post1", "26.03", "zero-padded month"),
|
|
("26.13", "26.12", "zero-padded month"),
|
|
],
|
|
)
|
|
def test_invalid_versions(version: str, current: str, match: str) -> None:
|
|
with pytest.raises(ValueError, match=match):
|
|
validate_version(version, current)
|