Skip to content

Releases: pkgforge/soar

nightly-61c0efb

26 Feb 07:32
61c0efb

Choose a tag to compare

nightly-61c0efb Pre-release
Pre-release
feat(packages): add arch_map for custom arch name mapping

Soar v0.12.0

24 Feb 09:59
c86323b

Choose a tag to compare

Breaking Changes

  • Repository consolidation: bincache and pkgcache repositories have been replaced with the unified soarpkgs repository. The old repositories are no longer updated.
    • Not all packages have been ported to soarpkgs yet. If you need packages that haven't been migrated:
      • Option 1: Use an older version of soar that still supports the old repositories
      • Option 2: Request the package to be added to soarpkgs
      • Old repository metadata may not work correctly with this version of soar.
  • Public key configuration: Repository pubkey now expects a direct public key value instead of a URL. Update your custom repository configurations accordingly.

To use old repositories, configure these in config (replace x86_64 with correct arch):

[[repositories]]
name = "bincache"
url = "https://meta.pkgforge.dev/bincache/x86_64-Linux.sdb.zstd"
desktop_integration = false
pubkey = "RWSWp/oBUfND5B2fSmDlYaBXPimGV+r2s9skVRYTQ5cJ+7i6ff/1Nxcr"
enabled = true
signature_verification = true
sync_interval = "3h"

[[repositories]]
name = "pkgcache"
url = "https://meta.pkgforge.dev/pkgcache/x86_64-Linux.sdb.zstd"
desktop_integration = true
pubkey = "RWSWp/oBUfND5B2fSmDlYaBXPimGV+r2s9skVRYTQ5cJ+7i6ff/1Nxcr"

Also, don't forget to re-sync the repositories with soar sync.

⛰️ Features

  • (cli) Add subcommand to convert json to sqlite db - (16fdeca)
  • (lock) Add locking for concurrent process safety (#154) - (e3bef6a)
  • (provides) Add @ prefix to symlink packages directly to bin - (cc8458a)

🐛 Bug Fixes

  • (clippy) Apply clippy suggestions - (7b85532)
  • (provides) Remove provides filter and add bin_symlink_names helper - (5ed1951)
  • (substitute) Normalize package version - (c66c4c2)

🚜 Refactor

  • (cli) Use operations from shared crate (#158) - (2a2f1be)
  • (db) Add pkg_family, drop recurse_provides - (1d97b6d)
  • (download) Remove proxy api - (1d3e0ac)
  • (pubkey) Use inline key string instead of fetching from URL - (f2f3e5c)
  • (repositories) Add soarpkgs, drop bincache and pkgcache - (d07d602)
  • (system) Add per-context system mode support - (10544ac)

📚 Documentation

  • (readme) Update readme - (4fc58a7)

⚙️ Miscellaneous Tasks

  • (manifest) Remove deprecated authors field - (0bf1231)

Contributors

Soar v0.11.0

04 Feb 18:40
1495d99

Choose a tag to compare

⛰️ Features

  • (config) Allow setting path for desktop files - (50c0335)
  • (nest) [breaking] Remove nest functionality - (dc21853)
  • (self) Add release notes display and improve update UX - (e63648c)

🐛 Bug Fixes

  • (config) Fix default repositories detection - (22c121e)

🚜 Refactor

  • (config) Remove --external flag - (3b53b8b)

Soar v0.10.3

24 Jan 17:44
944c925

Choose a tag to compare

⛰️ Features

  • (config) Add placeholder support and remove update field - (824d060)
  • (config) Make link_as optional and add glob support in binary maps - (c3945ee)

🐛 Bug Fixes

  • (dl) Handle ureq StatusCode in fallback logic - (27f5738)

Soar v0.10.2

17 Jan 17:48
df83296

Choose a tag to compare

🐛 Bug Fixes

  • (system) [breaking] Change system install path to /opt/soar - (e694e30)

Soar v0.10.1

17 Jan 14:26
0f2f264

Choose a tag to compare

🐛 Bug Fixes

  • (system) Fix sudo escalation - (91f9715)

Soar v0.10.0

17 Jan 06:12
a7ecca3

Choose a tag to compare

⛰️ Features

  • (apply) Allow applying ghcr packages - (06e2b73)
  • (cli) Add system-wide package management (#141) - (f8d4f1c)
  • (install) Add entrypoint option and executable discovery fallbacks - (b77cffd)
  • (packages) Add snapshot version support with URL placeholders - (099f96c)
  • (packages) Add github/gitlab as first-class package sources (#142) - (2fc3c3b)
  • (packages) Add hooks, build commands, and sandbox support (#140) - (a776d61)
  • (sandbox) Add landlock for sandboxing - (32687c6)
  • (update) Allow updating remote URL packages (#137) - (af13bb6)

🐛 Bug Fixes

  • (clippy) Apply clippy suggestions - (1b45180)
  • (packages) Skip version fetching when installed version matches (#143) - (4325206)

🚜 Refactor

  • (db) Drop with_pkg_id - (fa99208)
  • (error) Don't override error messages - (e44342f)
  • (query) Update query field icons - (695a427)

Contributors

Soar v0.9.1

28 Dec 19:17
1d90648

Choose a tag to compare

🐛 Bug Fixes

  • (apply) Allow tracking versioning with URL packages (#129) - (0b7deb6)
  • (install) Use deterministic hash for package without checksum - (7a7a060)
  • (install) Handle removed packages, always show selection with --show - (2b72975)
  • (install) Fix force reinstall cleanup and resume file corruption - (c6150f7)

Contributors

Soar v0.9.0

26 Dec 18:07
062a587

Choose a tag to compare

This release completely restructures the internals and adds two features: declarative package management and installing directly from URLs.

Declarative Package Management

You can now define your packages in a TOML file and let Soar handle the rest.

Create ~/.config/soar/packages.toml:

[packages]
curl = "*"           # latest version
jq = "1.7.1"         # pinned to specific version
neovim = { pkg_id = "neovim-appimage", repo = "bincache" }

Then run:

soar apply           # install/update to match the file
soar apply --prune   # also remove packages not in the file
soar apply --dry-run # see what would change

Define once, apply anywhere.

You can get fancier with it too: pin versions, specify repositories, configure portable directories, exclude files. Run soar defpackages to generate an annotated template.

Install from URLs

No more waiting for packages to land in a repository:

soar install https://github.com/user/repo/releases/download/v1.0/tool-linux-amd64

Soar figures out the package name and type from the URL. If it gets it wrong, override with --name, --pkg-type, etc.

Under the Hood

The codebase is now split into independent crates:

  • soar-dl — downloads with resume support
  • soar-db — database layer
  • soar-config — configuration parsing
  • soar-registry — package metadata
  • soar-package — format handling (AppImage, archives, etc.)
  • soar-utils — shared utilities

This doesn't change anything for users, but it makes the code easier to work on. Each crate is versioned independently.

Smaller Things

  • --no-progress flag to suppress progress bars (useful for scripts/CI)
  • Fixed a bug where interrupted downloads wouldn't resume properly
  • Package listing is faster now
  • Better debug logging throughout

⛰️ Features

  • (crate) Init soar-config crate (#108) - (135af26)
  • (install) Allow remote package install - (e060033)
  • (packages) Add declarative installation - (1e95aca)
  • (progress) Allow disabling progress bar - (29e04ff)

🐛 Bug Fixes

  • (install) Handle resume on package install - (f92350f)
  • (update) Resolve random package install on update - (eaa0058)

🚜 Refactor

  • (integration) Integrate soar with modular crates (#123) - (2d340e5)
  • (log) Add more debug logs - (96f5ac9)
  • (log) Add debug logs - (cdbf808)
  • (package) Improve install/remove user experience - (df8ad1c)

⚡ Performance

  • (list) Use minimal struct for listing packages - (71570c7)

⚙️ Miscellaneous Tasks

  • (ci) Ignore libsqlite-sys from machete - (ca0f988)
  • (crate) Downgrade crates to ready for publishing - (3ef7b12)
  • (docs) Update readme, bump msrv - (5158af0)
  • (docs) Fix readme - (90d8abb)

Soar v0.8.1

19 Sep 02:27
3b7cb1f

Choose a tag to compare

Note

If your first installed version was v0.8.0, then you likely have a corrupted database. If you can't install any program with this version, please clear the database file at ~/.local/share/soar/db/soar.db.

🐛 Bug Fixes

⚙️ Miscellaneous Tasks

  • (cli) Remove bi-directional conflicts_with - (ff0b62f)