Skip to content

Releases: P-R-E-Z/plogr

prez-pkglog v0.6.5 · Aug 2025

10 Aug 03:02

Choose a tag to compare

prez-pkglog Logger Improvements

Edit Fixed some testing stuff

What's Fixed

  • Status Count: Removals now update the last install entry for the same package/manager instead of adding a new line.
  • TOML Sync: TOML log is regenerated from the JSON state after each write, so both formats reflect the same record set.
  • Internal Lock: Switched the logger's internal lock to RLock.

prez-pkglog v0.6.4 · Aug 2025

09 Aug 23:11

Choose a tag to compare

prez-pkglog 0.6.4

Highlights

  • DNF5 Actions: Integration fixed and hardened.
  • RPM Packaging: Updated to install the .actions file in the correct directory.
  • CLI: Scope handling clarified, defaults to system when run as root and fallback's to user for non-root

DNF5 Integration

  • Requires libdnf5-plugin-actions at runtime
  • Installs actions file to /etc/dnf/libdnf5-plugins/actions.d/prez_pkglog.actions (canonical config path).
  • Explicit system-scope logging from Actions:
    • post_transaction:*:in::/usr/bin/prez-pkglog install --scope system ${pkg.name} dnf
    • post_transaction:*:out::/usr/bin/prez-pkglog remove --scope system ${pkg.name} dnf

CLI & Logging

  • Default scope is now system when running as root, otherwise user scope.
  • If a system-scope command is invoked without privileges, the CLI falls back to user scope and proceeds.
  • Status/Commands always persist the resolved scope so the logger and CLI agree where to write.

Packaging

  • C++ DNF5 Plugin prez_pkglog.so continues to be installed to /%{_libdir}/dnf5/plugins/ .
  • Actions file now included under /usr/share/libdnf5/plugins/actions.d/ for reference, but the plugin reads from /etc/dnf/libdnf5-plugins/actions.d/ .
  • Spec adds Requires: libdnf5-plugin-actions and removes conflicting ownership of actions.conf .

CI & Maintenance

  • GitHub workflows updated for the new C++ plugin path.
  • Tests: Lint, type checks, and tests clean; local suite shows 214 passed, 9 skipped, 1 xfailed.
  • .gitignore and .gitattributes expanded for Python/RPM/CMake artifacts and LF normalization.

Upgrade Notes

  1. Install or upgrade:
  • sudo dnf install prez-pkglog (if already installed, otherwise follow the README install instructions)
  • Ensure libdnf5-plugin-actions is installed
  1. Initialize:
  • sudo prez-pkglog setup for system scope or prez-pkglog setup for user scope
  1. Verify:
  • sudo dnf -y install sl && sudo dnf -y remove sl
  • sudo prez-pkglog status
  • Check /var/log/prez-pkglog/packages.json for entries

If Already Installed

You no longer need to maintain actions.conf yourself. The Actions plugin package owns it, this release only ships the .actions file under /etc/dnf/libdnf5-plugins/actions.d/ .


Known Issues

  • None all DNF logging is functional.

prez-pkglog v0.6.1 · July 2025

13 Jul 07:09

Choose a tag to compare

Added

Helpers for linux backends

Windows / Mac functionality improvements

Lots of refactoring....

prez-pkglog v0.5.2 · July 2025

13 Jul 01:02

Choose a tag to compare

Added

Pydantic to .spec runtime dependencies list

prez-pkglog v0.5.1 · July 2025

11 Jul 23:43

Choose a tag to compare

Quick Makefile patch for automation

prez-pkglog v0.5.0 · July 2025

11 Jul 22:45

Choose a tag to compare

Highlights

  • Configuration Persistence – Settings are now auto-saved to prez_pkglog.conf; no more manual edits required.
  • Thread + Process-Safe Logging – Atomic writes and file locks prevent log corruption, even under parallel installs or download events.
  • Backend Overhaul – Backends live in OS-specific subdirs (linux/, macos/, windows) and are discovered dynamically at runtime.
  • Improved CLI – Scope is passed correctly to the logger; new query command lets you filter your history by name, manager, or date.
  • Systemd User Service – One-liner to start the downloads monitor:
systemctl --user enable --now prez-pkglog.service

Added

  • Dynamic backend discovery & registration.
  • Skeleton backends: APT, Pacman, Homebrew, Chocolatey, Winget.
  • models.PkgEvent improvements (manager, repository).
  • Man page (docs/man/prez-pkglog.1).
  • Custom exception hierarchy (PrezPkglogError, ConfigError, PackageLoggingError).
  • Makefile targets for mypy, wheel, sdist.
  • Test fixtures (tmp_home) and 170+ test cases, including concurrency stress tests.

Changed

  • CLI refactored to a single click entry-point; install/remove moved in.
  • All print() replaced by logging.
  • DNF backend now uses native Python API; parsing helpers hardened against malformed output.
  • Logger writes via atomic tmp-file + os.replace.
  • Systemd unit now sets PYTHONUNBUFFERED=1.
  • README installation section updated (Copr coming soon).
  • .gitignore ignores build .tmp artefacts.

Fixed

  • Scope mismatch between CLI and logger.
  • Hard-coded paths in Makefile & RPM spec.
  • Systemd unit ran as system service; now correctly user-level.
  • Numerous race-conditions in concurrent writes (thread-safe; extreme multi-process case documented).

Packaging

  • RPM spec uses pyproject-rpm-macros; installs DNF plugin & user-unit.
  • Arch Linux & Debian packaging templates updated to new 0.5.0 layout.

Upgrade Notes

  • User installs – Run prez-pkglog setup once to generate the new config.
  • Existing JSON/TOML logs are migrated automatically.
  • Systemd users:
systemctl --user daemon-reload
systemctl --user enable --now prez-pkglog.service

Future

  • Optional JSONL / SQLite log back-ends.
  • log_bulk_upgrades flag to skip mass-update noise.
  • Finish Windows/macOS backends.
  • Further backend-parsing refactor.