Files
pkgmgr/CHANGELOG.md
Kevin Veen-Birkenbach 9485bc9e3f
Some checks are pending
Mark stable commit / test-unit (push) Waiting to run
Mark stable commit / test-integration (push) Waiting to run
Mark stable commit / test-env-virtual (push) Waiting to run
Mark stable commit / test-env-nix (push) Waiting to run
Mark stable commit / test-e2e (push) Waiting to run
Mark stable commit / test-virgin-user (push) Waiting to run
Mark stable commit / test-virgin-root (push) Waiting to run
Mark stable commit / lint-shell (push) Waiting to run
Mark stable commit / lint-python (push) Waiting to run
Mark stable commit / mark-stable (push) Blocked by required conditions
Release version 1.8.0
2025-12-15 13:37:42 +01:00

14 KiB
Raw Permalink Blame History

[1.8.0] - 2025-12-15

  • *** New Features: ***
  • Silent Updates: You can now use the --silent flag during installs and updates to suppress error messages for individual repositories and get a single summary at the end. This ensures the process continues even if some repositories fail, while still preserving interactive checks when not in silent mode.
  • Repository Scaffolding: The process for creating new repositories has been improved. You can now use templates to scaffold repositories with a preview and automatic mirror setup.

*** Bug Fixes: ***

  • Pip Installation: Pip is now installed automatically on all supported systems. This includes python-pip for Arch and python3-pip for CentOS, Debian, Fedora, and Ubuntu, ensuring that pip is available for Python package installations.
  • Pacman Keyring: Fixed an issue on Arch Linux where package installation would fail due to missing keys. The pacman keyring is now properly initialized before installing packages.

[1.7.2] - 2025-12-15

    • Git mirrors are now resolved consistently (origin → MIRRORS file → config → default).
  • The origin remote is always enforced to use the primary URL for both fetch and push.
  • Additional mirrors are added as extra push targets without duplication.
  • Local and remote mirror setup behaves more predictably and consistently.
  • Improved test coverage ensures stable origin and push URL handling.

[1.7.1] - 2025-12-14

  • Patched package-manager to kpmx to publish on pypi

[1.7.0] - 2025-12-14

    • New pkgmgr publish command to publish repository artifacts to PyPI based on the MIRRORS file.
  • Automatically selects the current repository when no explicit selection is given.
  • Publishes only when a semantic version tag is present on HEAD; otherwise skips with a clear info message.
  • Supports non-interactive mode for CI environments via --non-interactive.

[1.6.4] - 2025-12-14

    • Improved reliability of Nix installs and updates, including automatic resolution of profile conflicts and better handling of GitHub 403 rate limits.
  • More stable launcher behavior in packaged and virtual-env setups.
  • Enhanced mirror and remote handling: repository owner/name are derived from URLs, with smoother provisioning and clearer credential handling.
  • More reliable releases and artifacts due to safer CI behavior when no version tag is present.

[1.6.3] - 2025-12-14

  • Fixed: Corrected repository path resolution so release and version logic consistently use the canonical packaging/* layout, preventing changelog and packaging files from being read or updated from incorrect locations.

[1.6.2] - 2025-12-14

  • pkgmgr version now also shows the installed pkgmgr version when run outside a repository.

[1.6.1] - 2025-12-14

    • Added automatic retry handling for GitHub 403 / rate-limit errors during Nix flake installs (Fibonacci backoff with jitter).

[1.6.0] - 2025-12-14

  • *** Changed ***
  • Unified update handling via a single top-level pkgmgr update command, removing ambiguous update paths.
  • Improved update reliability by routing all update logic through a central UpdateManager.
  • Renamed system update flag from --system-update to --system for clarity and consistency.
  • Made mirror handling explicit and safer by separating setup, check, and provision responsibilities.
  • Improved credential resolution for remote providers (environment → keyring → interactive).

*** Added ***

  • Optional system updates via pkgmgr update --system (Arch, Debian/Ubuntu, Fedora/RHEL).
  • pkgmgr install --update to force re-running installers and refresh existing installations.
  • Remote repository provisioning for mirrors on supported providers.
  • Extended end-to-end test coverage for update and mirror workflows.

*** Fixed ***

  • Resolved “Unknown repos command: update” errors after CLI refactoring.
  • Improved Nix update stability and reduced CI failures caused by transient rate limits.

[1.5.0] - 2025-12-13

    • Commands now show live output while running, making long operations easier to follow
  • Error messages include full command output, making failures easier to understand and debug
  • Deinstallation is more complete and predictable, removing CLI links and properly cleaning up repositories
  • Preview mode is more trustworthy, clearly showing what would happen without making changes
  • Repository configuration problems are detected earlier with clear, user-friendly explanations
  • More consistent behavior across different Linux distributions
  • More reliable execution in Docker containers and CI environments
  • Nix-based execution works more smoothly, especially when running as root or inside containers
  • Existing commands, scripts, and workflows continue to work without any breaking changes

[1.4.1] - 2025-12-12

  • Fixed stable release container publishing

[1.4.0] - 2025-12-12

Docker Container Building

  • New official container images are automatically published on each release.
  • Images are available per distribution and as a default Arch-based image.
  • Stable releases now provide an additional stable container tag.

[1.3.1] - 2025-12-12

  • Updated documentation with better run and installation instructions

[1.3.0] - 2025-12-12

Stability & CI hardening

  • Stabilized Nix resolution and global symlink handling across Arch, CentOS, Debian, and Ubuntu
  • Ensured Nix works reliably in CI, sudo, login, and non-login shells without overriding distro-managed paths
  • Improved error handling and deterministic behavior for non-root environments
  • Refactored Docker and CI workflows for reproducible multi-distro virgin tests
  • Made E2E tests more realistic by executing real CLI commands
  • Fixed Python compatibility and missing dependencies on affected distros

[1.2.1] - 2025-12-12

Changed

  • Split container tests into virtualenv and Nix flake environments to clearly separate Python and Nix responsibilities.

Fixed

  • Fixed Nix installer permission issues when running under a different user in containers.
  • Improved reliability of post-install Nix initialization across all distro packages.

CI

  • Replaced generic container tests with explicit environment checks.
  • Validate Nix availability via nix flake tests instead of Docker build-time side effects.

[1.2.0] - 2025-12-12

Release workflow overhaul

  • Introduced a fully structured release workflow with clear phases and safeguards
  • Added preview-first releases with explicit confirmation before execution
  • Automatic handling of latest tag when a release is the newest version
  • Optional branch closing after successful releases with interactive confirmation
  • Improved safety by syncing with remote before any changes
  • Clear separation of concerns (workflow, git handling, prompts, versioning)

[1.1.0] - 2025-12-12

  • Added branch drop for destructive branch deletion and introduced --force/-f flags for branch close and branch drop to skip confirmation prompts.

[1.0.0] - 2025-12-11

Official Stable Release 🎉

First stable release of PKGMGR, the multi-distro development and package workflow manager.


Key Features

Core Functionality

  • Manage many repositories with one CLI: clone, update, install, list, path, config
  • Proxy wrappers for Git, Docker/Compose and Make
  • Multi-repo execution with safe preview mode
  • Mirror management: mirror list/diff/merge/setup

Releases & Versioning

  • Automated SemVer bumps, tagging and changelog generation
  • Supports PKGBUILD, Debian, RPM, pyproject.toml, flake.nix

Developer Tools

  • Open repositories in VS Code, file manager or terminal
  • Unified workflows across all major Linux distros

Nix Integration

  • Cross-distro reproducible builds via Nix flakes
  • CI-tested across all supported environments

Summary PKGMGR 1.0.0 unifies repository management, build tooling, release automation and reproducible multi-distro workflows into one cohesive CLI tool.

This is the first official stable release.

[0.10.2] - 2025-12-11

    • Stable tag now updates only when a new highest version is released.
  • Debian package now includes sudo to ensure privilege escalation works reliably.
  • Nix setup is significantly more resilient with retries, correct permissions, and better environment handling.
  • AUR builder setup uses retries so yay installs succeed even under network instability.
  • Nix flake installation now fails only on mandatory parts; optional outputs no longer block installation.

[0.10.1] - 2025-12-11

  • Fixed Debian\Ubuntu to pass container e2e tests

[0.10.0] - 2025-12-11

Mirror System

  • Added SSH mirror support including multi-push and remote probing
  • Introduced mirror management commands and refactored the CLI parser into modules

CI/CD

  • Migrated to reusable workflows with improved debugging instrumentation
  • Made stable-tag automation reliable for workflow_run events and permissions
  • Ensured deterministic test results by rebuilding all test containers with no-cache

E2E and Container Tests

  • Fixed Git safe.directory handling across all containers
  • Restored Dockerfile ENTRYPOINT to resolve Nix TLS issues
  • Fixed missing volume errors and hardened the E2E runner
  • Added full Nix flake E2E test matrix across all distro containers
  • Disabled Nix sandboxing for cross-distro builds where required

Nix and Python Environment

  • Unified Nix Python environment and introduced lazy CLI imports
  • Ensured PyYAML availability and improved Python 3.13 compatibility
  • Refactored flake.nix to remove side effects and rely on generic python3

Packaging

  • Removed Debians hard dependency on Nix
  • Restructured packaging layout and refined build paths
  • Excluded assets from Arch PKGBUILD rsync
  • Cleaned up obsolete ignore files

Repository Layout

  • Restructured repository to align local, Nix-based, and distro-based build workflows
  • Added Arch support and refined build/purge scripts

[0.9.1] - 2025-12-10

  • Refactored installer: new venv-create.sh, cleaner root/user setup flow, updated README with architecture map.
  • Split virgin tests into root/user workflows; stabilized Nix installer across distros; improved test scripts with dynamic distro selection and isolated Nix stores.
  • Fixed repository directory resolution; improved pkgmgr path and pkgmgr shell; added full unit/E2E coverage.
  • Removed deprecated files and updated .gitignore.

[0.9.0] - 2025-12-10

  • Introduce a virgin Arch-based Nix flake E2E workflow that validates pkgmgrs full flake installation path using shared caches for faster and reproducible CI runs.

[0.8.0] - 2025-12-10

  • v0.7.15 — Installer & Command Resolution Improvements

  • Introduced a unified layer-based installer pipeline with clear precedence (OS-packages, Nix, Python, Makefile).

  • Reworked installer structure and improved Python/Nix/Makefile installers, including isolated Python venvs and refined flake-output handling.

  • Fully rewrote command resolution with stronger typing, safer fallbacks, and explicit support for command: null to mark library-only repositories.

  • Added extensive unit and integration tests for installer capability ordering, command resolution, and Nix/Python installer behavior.

  • Expanded documentation with capability hierarchy diagrams and scenario matrices.

  • Removed deprecated repository entries and obsolete configuration files.

[0.7.14] - 2025-12-10

  • Fixed the clone-all integration test so that SystemExit(0) from the proxy is treated as a successful command instead of a failure.

[0.7.13] - 2025-12-10

Fix tools path resolution and add tests

  • Fixed a crash in pkgmgr code caused by missing directory metadata by introducing _resolve_repository_path() with proper fallbacks to repositories_base_dir / repositories_dir.
  • Updated explore, terminal and code tool commands to use the new resolver.
  • Improved VS Code workspace generation and path handling.
  • Added unit & E2E tests for tool commands.

[0.7.12] - 2025-12-09

  • Fixed self refering alias during setup

[0.7.11] - 2025-12-09

  • test: fix installer unit tests for OS packages and Nix dev shell

[0.7.10] - 2025-12-09

  • Fixed test_install_pkgmgr_shallow.py

[0.7.9] - 2025-12-09

  • 'main' and 'master' are now both accepted as branches for branch close merge

[0.7.8] - 2025-12-09

  • Missing pyproject.toml doesn't lead to an error during release

[0.7.7] - 2025-12-09

  • Added TEST_PATTERN parameter to execute dedicated tests

[0.7.6] - 2025-12-09

  • Fixed pull --preview bug in e2e test

[0.7.5] - 2025-12-09

  • Fixed wrong directory permissions for nix

[0.7.4] - 2025-12-09

  • Fixed missing build in test workflow -> Tests pass now

[0.7.3] - 2025-12-09

  • Fixed bug: Ignored packages are now ignored

[0.7.2] - 2025-12-09

  • Implemented Changelog Support for Fedora and Debian

[0.7.1] - 2025-12-09

  • Fix floating 'latest' tag logic
  • dereference annotated target (vX.Y.Z^{})
  • add tag message to avoid Git errors
  • ensure best-effort update without blocking releases

[0.7.0] - 2025-12-09

  • Add Git helpers for branch sync and floating 'latest' tag in the release workflow
  • ensure main/master are updated from origin before tagging

[0.6.0] - 2025-12-09

  • Consistent view of the supported distributions and their base container images.

[0.5.1] - 2025-12-09

  • Refine pkgmgr release CLI close wiring and integration tests for --close flag

[0.5.0] - 2025-12-09

  • Add pkgmgr branch close subcommand, extend CLI parser wiring

[0.4.3] - 2025-12-09

  • Implement current-directory repository selection for release and proxy commands, unify selection semantics across CLI layers, extend release workflow with --close, integrate branch closing logic, fix wiring for get_repo_identifier/get_repo_dir, update packaging files (PKGBUILD, spec, flake.nix, pyproject)

[0.4.2] - 2025-12-09

  • Wire pkgmgr release CLI to new helpe

[0.4.1] - 2025-12-08

  • Add branch close subcommand and integrate release close/editor flow

[0.4.0] - 2025-12-08

  • Add branch closing helper and --close flag to release command

[0.3.0] - 2025-12-08

  • Massive refactor and feature expansion:
  • Complete rewrite of config loading system (layered defaults + user config)
  • New selection engine (--string, --category, --tag)
  • Overhauled list output (colored statuses, alias highlight)
  • New config update logic + default YAML sync
  • Improved proxy command handling
  • Full CLI routing refactor

[0.2.0] - 2025-12-08

  • Add preview-first release workflow and extended packaging support

[0.1.0] - 2025-12-08

  • Updated to correct version

[0.1.0] - 2025-12-08

  • Implement unified release helper with preview mode, multi-packaging version bumps