Skip to content

apkg news

apkg 1.0.0

Released 2025-11-25

1.0.0 release notes πŸš€

After 5 years of development, apkg finally reached version 1.0.0 πŸ₯³

This journey resulted in:

  • 500 git commits (excluding merge commits)
  • 202 merge requests
  • 92 resolved issues
  • 14 000 total lines of code
    • 8 419 lines of source code (excluding blank lines)
    • 2 779 lines of documentation (excluding blank lines)

95 % of apkg's code was authored by me and I'd like to extend my sincere thanks to all contributors and users for their bug reports, pull requests, reviews, suggestions, and all other contributions, which made apkg significantly better.

apkg now supports all Python versions from 3.6 to 3.14. In other words, it's able to run in most Python environments from past 8 years - a feat that cost considerable amount of effort and sanity.

apkg supports major linux distros and package managers including but not limited to all actively supported releases of Debian, Ubuntu, Fedora, Enterprise Linux, openSUSE, Arch, and NixOS. Adding support for new distro is reasonably straightforward.

I've channeled my passion and two decades of packaging experience into apkg and I believe it now serves its intended purpose really well.

apkg is now considered stable and ready for production use πŸŽ‰

-- Jakub Ružička, the original apkg author

apkg 0.7.1

Released 2025-10-23

Improvements

  • Python 3.14 is now supported and tested in CI

apkg 0.7.0

Released 2025-09-22

Compat Level 6 News

Fixes

apkg 0.6.1

Released 2025-06-20

Fixes

  • reintroduce toml dep for older systems with Python < 3.11

apkg 0.6.0

Released 2025-06-19

Compat Level 5 News

  • new apkg lint command to invoke native distro linters (lintian, rpmlint)
  • improved apkg system-setup command including new --lint option to install linting deps
  • new apkg info apkg-deps command to show dependencies colored for easy debugging
  • new distro_like template variable module for detecting similar distros
  • rpm: evaluate RPM macros using rpmspec if available
    • apkg now works with .spec files using complex macros including macros in Name
  • template variables are now always passed when rendering templates
    • some pkgstyle functions previously rendered templates directly without template variables which lead to errors in special cases
  • apkg.templatevars.debseries module was renamed to deb_series for consistency
    • old debseries module is still supported for the time being, it emits a warning when used

Improvements

  • Python 3.13 is now supported and tested in CI
  • new distros are now supported and tested in CI:
    • Debian 13 Trixie
    • Ubuntu 25.04 Plucky Puffin and 24.10 Oricular Oriole
    • Enterprise Linux 10: RHEL 10, AlmaLinux 10, Rocky 10
    • Fedora 42 and 41
  • lighten dependencies:
    • drop hatchling build dep in favor of setuptools
    • drop dunamai build dep in favor of custom solution
  • improved handling of unreleased / versionless distros, including Debian testing, unstable, experimental
  • new util.toml module for robust runtime TOML libs selection
    • supports tomllib (standard library since Python 3.11), tomli, toml, tomlkit modules for TOML loading
    • supports tomli_w, toml, tomlkit for TOML dumping
  • improved logging of function names when using -L verbose and -L debug
  • big packaging guide upgrade
    • new fancy Mermaid diagrams
    • updated workflow with install, test, lint commands
    • new added_in_version macro to provide consistent version / compat information

apkg 0.5.1

Released 2024-06-24

Fixes

  • update requires-python to >=3.6 to enable installation on old systems
  • small docs fixes

apkg 0.5.0

Released 2024-04-03

Compat Level 4 News

  • new custom template variables support
    • new template.variables config section
    • extend apkg status command with template variables sources status
    • new apkg info template-variables command
      • show all template variables by default
      • show custom variables per source with --custom
  • deb pkgstyle: include *.changes files in srcpkg/build output
    • many debian tools and workflows require *.changes files - comply
  • fix incorrect parsing of single compnent versions (1, 20240101, etc.)

Improvements

apkg 0.4.2

Released 2023-08-08

Fixes

  • re-introduce cached_property requirement to support Python <= 3.7

apkg 0.4.1

Released 2023-07-19

Improvements

  • use modern python packaging through pyproject.toml
    • use hatchling for build
    • use PEP440 compatible versioning
    • support legacy setuptools for backward compat
    • improve archive and sdist generation
    • improve Debian packaging (pyproject build on Debian 12 and newer)
    • rename distro package to just apkg
    • support both blessed (maintained fork) and blessings for colors
  • arch pkgstyle improvements:
    • support Manjaro
    • only install --needed distro packages
    • require base-devel for apkg system-setup
  • deb pkgstyle improvements:
    • support Pop_OS! (Ubuntu derivative)
    • only require build-essential (not devscripts) on apkg system-setup
    • sort SUPPORTED_DISTROS alphabetically

Fixes

  • fix distro alias ordering during template selection
  • handle exceptions introduced by upstream packaging.version changes

apkg 0.4.0

Released 2022-07-18

Compat Level 3 News

  • new apkg test packaging tests runner based on Debian autopkgtest
  • new apkg info command with subcommands to display various info:
    • apkg info cache: show apkg cache contents
    • apkg info config: show apkg project configuration
    • apkg info distro: show current distro information
    • apkg info distro-aliases: list available distro aliases
    • apkg info pkgstyles: list available packaging styles
    • apkg info upstream-version: show detected project upstream version
  • new apkg clean command to clean output dir pkg/
    • apkg clean: remove apkg output directory pkg/
    • apkg clean --cache: remove apkg cache file pkg/.cache.json
    • apkg clean --hard: HARD RESET project from VCS and remove extra files
  • new include_raw tag available from templates to include files without templating
  • support for AlmaLinux in rpm pkgstyle (almalinux)

Improvements

  • command runner was refactored using asyncio
    • run() can tee command output - it's finally possible to both read and display stdout at the same time resulting in better real-time/log output and debugging when invoking external commands
    • run() logging was fixed and improved, use -L verbose to see all commands run in the background
  • cache was refactored to be more flexible and reliable in edge cases
    • cache false positives should no longer appear
    • individual cache targets can be configured indpendently
    • only source cache is disabled when VCS isn't available
    • new cache docs as well as updated other docs with useful info and links
  • new minimal example project examples/minimal-no-git

Fixes

  • fix package manager detection in rpm pkgstyle
  • parse makedepends as well as depends in arch pkgstyle
  • fix --archive/--upstream operation in build-dep
  • don't install 0 build deps
  • use temporary dir for archive unpack (more reliable)

apkg 0.3.1

Released 2021-11-04

Fixes

  • follow symlinks when rendering templates

apkg 0.3.0

Released 2021-11-03

Compat Level 2 News

Improvements

  • new apkg compat command and compat docs
  • apkg will refuse to work with projects with newer compat level
  • new minimal templating example examples/templates
  • sort apkg srcpkg output for determinism
  • update and extend docs (new pages: compat, distro, users)

Fixes

  • fix false positive cache hits in special cases
  • CI fixes and improvements

apkg 0.2.0

Released 2021-07-13

Improvements

  • support Rocky Linux through rpm pkgstyle
  • support Nix through new nix pkgstyle
  • align apkg install with other commands and extend functionality
  • extend CI to test apkg install on supported distros
  • extend CI with new integration tests against apkg itself to ensure full apkg pipeline (including install) works on supported distros
  • improve apkg archive creation script make-archive.sh
  • remove problematic htmllistparse dependency in favor of using beautifulsoup4 directly

Fixes

  • handle unset $PWD when running external commands
  • fail on unexpected input files in srcpkg
  • fix docs build

Incompatible Changes ⚠

  • apkg install now works on project source by default like other commands (srcpkg, build). Old behavior of installing custom packages is available through -C/--custom-pkgs option.
  • -i/--install-dep option of apkg build was renamed to -b/--build-dep to remove ambiguity. Old alias still works but it's deprecated an will be removed in future versions.

apkg 0.1.1

Released 2021-06-09

  • first apkg beta release