ef81e027ce
feat: add capability interfaces for extended package manager operations
...
Add optional interfaces that providers can implement beyond the base
Manager. grlx can type-assert to check support at runtime:
- VersionQuerier: LatestVersion, ListUpgrades, UpgradeAvailable, VersionCmp
- Holder: Hold, Unhold, ListHeld (version pinning)
- Cleaner: Autoremove, Clean (orphan/cache cleanup)
- FileOwner: FileList, Owner (file-to-package mapping)
- RepoManager: ListRepos, AddRepo, RemoveRepo
- KeyManager: AddKey, RemoveKey, ListKeys (GPG signing keys)
- Grouper: GroupList, GroupInfo, GroupInstall
- NameNormalizer: NormalizeName, ParseArch
Also adds GetCapabilities() helper, Repository type, and updated README.
2026-02-25 20:42:04 +00:00
6cbfc96e3d
feat: add Target type for per-package version/repo/source constraints
...
Breaking change to Manager interface: Install/Remove/Purge now accept
[]Target instead of []string. Target supports Version pinning, FromRepo
constraints, and Source paths — matching SaltStack's pkgs list semantics.
Also adds WithRefresh, WithFromRepo, WithReinstall options.
2026-02-25 20:32:25 +00:00
08514a27e1
feat: initial project scaffold
...
- Common Manager interface, Package type, functional options
- Sentinel errors for common package manager failures
- Sub-package stubs for: pacman, aur, apk, apt, dpkg, dnf, rpm,
flatpak, snap, pkg (FreeBSD), ports (OpenBSD)
- detect/ package for auto-detection of system package manager
- 0BSD license
2026-02-25 20:01:51 +00:00