Skip to content

Releases: ryansinn/pacselect

v0.6.0

26 Mar 05:17

Choose a tag to compare

release: 0.6.0 — soname-bump detection (blocking + advisory)

v0.5.0

18 Mar 21:30

Choose a tag to compare

ci: grant contents:write for release uploads

v0.4.0

18 Mar 20:21

Choose a tag to compare

[0.4.0] — 2026-03-18

Added

  • Graphics filter category — the full graphics stack is now its own named
    filter tier, separate from system/core. Covers all Mesa sub-packages
    (opencl-mesa, vulkan-mesa-*, libva-mesa-driver, mesa-vdpau, …),
    NVIDIA/AMD/Intel GPU drivers, the Vulkan/GL dispatch layer (vulkan-icd-loader,
    libglvnd), Xorg, Wayland, and the kernel GPU userspace bridge (libpciaccess).
    Users now see graphics: N in the summary bar and deferred graphics packages
    grouped under graphics: in the skipped list — making it obvious when a full
    upgrade is needed to pick up GPU driver updates.
  • Group-based safety net — after name-pattern classification, a single
    pacman -Si batch query checks the Groups field of every safe package.
    Any package whose group is xorg, plasma, base, or similar is demoted
    to skipped automatically, catching packages the name patterns miss.
  • Package descriptions — the safe-to-install list now shows a short
    description from pacman -Si below each package name. Zero extra process
    calls: descriptions are extracted from the same batch query used for dep-check
    and group detection. Hide with --no-descriptions or display.descriptions = false
    in config.
  • Grouped skipped display — deferred packages are now shown grouped by
    category (system, graphics, kde, user, partial) instead of a flat
    word-wrapped list, so users get an at-a-glance picture of what part of the
    system is being held back.
  • --upgrade-config — merges any new default keys from the current schema
    into an existing config file, preserving all values the user has already set
    and their comments. Prints a list of added key paths. Safe to re-run; reports
    "Config is already up to date." when nothing is missing.
  • [display] config sectiondescriptions (bool, default true) and
    verbose (bool, default false) can now be set persistently in config.
  • [behavior] config sectionauto_confirm (bool, default false) and
    dry_run (bool, default false) can now be set persistently in config.
    All CLI flags still override their config equivalents.
  • src/config_upgrade.rs — self-contained, copy-portable TOML config
    upgrade module. No pacselect-specific logic; depends only on toml_edit
    and anyhow. Includes 4 unit tests.

Changed

  • SkipReason gains a Graphics variant (replaces ad-hoc graphics entries
    inside SystemCore). GroupFilter(String) variant added for packages
    demoted via their pacman group.
  • depcheck::check() replaced by depcheck::check_all() which returns a
    single SiResult containing dep warnings, group demotions, and descriptions
    — one pacman -Si subprocess for all three.
  • Summary bar breakdown now shows system, graphics, kde, user,
    partial counts individually.
  • --list-filters output now includes the Graphics patterns section.

v0.2.0 - No more partial upgrades

16 Mar 23:31

Choose a tag to compare

Pre-release

Full Changelog: v0.1.0...v0.2.0


[0.2.0] — 2026-03-16

Changed

  • Dependency safety check is now a hard block — packages that depend on a
    skipped package are moved into the skipped list and never installed, instead of
    showing an advisory warning and proceeding. This eliminates the entire class of
    partial-upgrade problems that the previous warn-only behaviour could allow.
    • New SkipReason::PartialUpgrade { needs } variant, displayed as
      partial upgrade risk — needs skipped: <pkg>, …
    • Summary bar now includes a partial: N counter when any packages are
      blocked by this rule.

Removed

  • Inline ⚠ needs skipped: … warning annotations on safe packages (no longer
    applicable — those packages are now blocked outright).
  • "Partial upgrade warnings" summary block shown before the confirmation prompt.
  • dep_warning field from JSON safe-package objects.
  • dep_warnings top-level array from JSON output.

v0.1.0 - Initial Release

16 Mar 23:17

Choose a tag to compare

Pre-release

v0.1.0 — Initial Release

Smart app updates. Stable system.

pacSelect is a selective pacman updater for Arch-based systems (CachyOS, EndeavourOS, Manjaro, plain Arch). It updates your apps while automatically deferring packages that require a reboot, log-out, or risk breaking your running session.


Features

  • System/core filter — ~100 built-in patterns blocking kernel, initramfs, systemd, glibc, Mesa, GPU drivers, audio pipeline (pipewire, wireplumber), and other reboot-required packages
  • KDE core filter — unconditionally blocks session-critical packages (kwin, plasma-*, sddm, kscreenlocker, etc.)
  • KDE Frameworks version-bump detection — detects your installed KDE Frameworks minor version at runtime and defers any KDE ecosystem package moving to a new minor line (e.g. 6.23 → 6.24); patch releases within the same line pass through
  • Dependency safety check — syncs the pacman database and warns when a safe package depends on a skipped one (partial upgrade risk)
  • AUR labelling — flags foreign/AUR packages via pacman -Qm in output and JSON
  • --json output — machine-readable JSON for scripting or a future system-tray app
  • History log — every run appended to ~/.local/share/pacselect/history.log
  • User filter patterns~/.config/pacselect/config.toml or --skip flag with glob support
  • Zero side effects — uses checkupdates (read-only); never modifies pacman, its hooks, or its config

Notes

  • Requires pacman-contrib (checkupdates)
  • KDE version probing uses CachyOS package naming (kcoreaddons) with fallbacks for standard Arch naming (kf6-kcoreaddons)
  • The dep-check sync (sudo pacman -Sy) runs silently and is advisory only — failures are non-fatal