Releases: P-R-E-Z/plogr
Releases · P-R-E-Z/plogr
prez-pkglog v0.6.5 · Aug 2025
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
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
- Install or upgrade:
- sudo dnf install prez-pkglog (if already installed, otherwise follow the README install instructions)
- Ensure libdnf5-plugin-actions is installed
- Initialize:
- sudo prez-pkglog setup for system scope or prez-pkglog setup for user scope
- 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
Added
Helpers for linux backends
Windows / Mac functionality improvements
Lots of refactoring....
prez-pkglog v0.5.2 · July 2025
Added
Pydantic to .spec runtime dependencies list
prez-pkglog v0.5.1 · July 2025
Quick Makefile patch for automation
prez-pkglog v0.5.0 · July 2025
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.serviceAdded
- 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.serviceFuture
- Optional JSONL / SQLite log back-ends.
- log_bulk_upgrades flag to skip mass-update noise.
- Finish Windows/macOS backends.
- Further backend-parsing refactor.