Release 3.1.0 This relaese allows using pmbootstrap with Alpine 3.21 / pmOS v24.12, adds support for ppc64le, adds code to install keyboard configuration based on chosen locale and has a bunch of fixes. Thanks to everybody who contributed! Features: * pmb.config.apk_tools_min_version: add v3.21 * core: arch: Add ppc64le as a supported architecture (MR 2476) * core: arch: Add ppc64le qemu mapping (MR 2476) * qemu: run: Add support for ppc64le (MR 2476) * pmb.helpers.repo.update: support PMB_APK_FORCE_MISSING_REPOSITORIES (MR 2505) * pmb.helpers.locale: new module (MR 2497) * pmb.helpers.locale: add unit tests (MR 2497) * pmb.install._install: add setup_locale() (MR 2497) Fixes: * pmb.config.init: Call pmb.helpers.cli.confirm() correctly (MR 2489) * helpers: git: ignore case in get_upstream_remote() * pmb.helpers.git: fix get_upstream_remote() (MR 2496) * pmb/aportgen: lookup package in APKINDEX with correct arch (MR 2493) * build: newapkbuild: initialize chroot before use (MR 2495) * helpers: pmaports: Fix package detection for cross g++ and musl-dev (MR 2476) * helpers: pmaports: Always fall back to parsing all APKBUILDS (MR 2476) * qemu: run: Invoke the correct qemu command (MR 2476) * pmb.core.arch: Handle unsupported arches in from_machine_type() better (MR 2498) * Fix apkbuild parsing in edge cases (MR 2503) * pmb.aportgen.device: fix skipping when analyzing boot image (MR 2507) Other: * pmb: Add more type hints (MR 2489) * build: envkernel: cleanup behaviour (MR 2491) * .ci/docs.sh: add py3-sphinxcontrib-jquery to fix the failing search (MR 2500) * tests: Assert that riscv64 is supported (MR 2476) * core: chroot: Deduplicate supported arch list (MR 2476) * pmb.core.arch: Use match statement instead of mappings (MR 2498) * pmb.core.arch: Use annotations from future instead of quoted Arch type (MR 2498) * Revert "CI: Add bootimg analysis integration test (MR 2467)" (MR 2483) * test: conftest: adjust pmaports fixture (MR 2477) (MR 2483) * test: parse: add tests for bootimg parsing (MR 2477) (MR 2483) * test: aportgen: test deviceinfo fastboot content (MR 2477) (MR 2483) * test: conftest: require_programs() automatically (MR 2483) * build: envkernel: default to .output again (MR 2504) * docs/api/pmb.commands: fix "failed to import" (MR 2506) * docs: fix 'WARNING: Title underline too short' (MR 2506) * CI: docs: fail on warning (MR 2506) * docs: add env vars page with PMB_SUDO (MR 2506) * docs: document PMB_APK_FORCE_MISSING_REPOSITORIES (MR 2506) * .gitignore: add note for missing text editors (MR 2501)