Skip to content

Releases: pkgforge/soar

nightly-e44342f

31 Dec 03:16
e44342f

Choose a tag to compare

nightly-e44342f Pre-release
Pre-release
refactor(error): don't override error messages

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)

Soar v0.8.0

17 Sep 16:18
2ea50c9

Choose a tag to compare

⛰️ Features

  • (portable_cache) Add support for creating portable cache dir - (09787c2)

🐛 Bug Fixes

  • (nest) Show error if no nest is removed - (e157596)

🚜 Refactor

  • (cli) [breaking] Reorder nest add args to <name> <url> - (8c63b78)

📚 Documentation

  • (readme) Simplify readme - (9b09e1f)

⚙️ Miscellaneous Tasks

  • (migrations) Merge database migrations - (53229ea)

Soar v0.7.0

23 Aug 08:26
a3c7c55

Choose a tag to compare

⛰️ Features

  • (nest) Add sync interval for nest, parallelize fetch nest metadata - (ccffd4c)
  • (nest) Implement initial nest support - (278a20c)

🐛 Bug Fixes

  • (update) Fix package fetch query on update - (3757750)

Soar v0.6.6

17 Aug 11:29
149b561

Choose a tag to compare

⛰️ Features

  • (cli) Make --yes also apply to file overwrites - (082e37e)
  • (install) Allow skipping checksum verification - (c3d0f72)

🐛 Bug Fixes

  • (install) Correctly handle partial or broken installations - (9280467)
  • (portable) Improve portable directory handling - (dd88b3b)

🚜 Refactor

  • (self) Make self feature optional - (2c2016d)

Soar v0.6.5

12 Jul 15:34
c5cd133

Choose a tag to compare

🐛 Bug Fixes

  • (checksum) Handle checksum verification for direct downloads - (db48108)
  • (clippy) Apply clippy suggestions - (18e4a51)

🚜 Refactor

  • (search) Sort search results by name - (6672d91)

Soar v0.6.4

26 Jun 14:36
9f49b45

Choose a tag to compare

⛰️ Features

  • (repositories) Enable repositories based on platform - (b865447)
  • (repositories) Add new repositories - (a6e0a7d)

🚜 Refactor

  • (repositories) Make repositories list maintainable and flexible - (a3752ec)

📚 Documentation

  • (readme) Add refs on hosts, redistribution & sponsors (#67) - (50b2011)

⚙️ Miscellaneous Tasks

  • Add CI attestations, cross-rs, and improve install script (#75) - (8fae192)

Contributors

Soar v0.6.3

12 Jun 16:17
e0e3277

Choose a tag to compare

⛰️ Features

  • (install) Support soar_syms directory - (cb71c1d)
  • (repository) Handle recurse provides - (10878a7)

🐛 Bug Fixes

  • (install) Handle alias provide strategy - (319940c)
  • (install) Don't check if the file inside SOAR_SYMS dir is ELF - (cf020c8)
  • (metadata) Filter non-existing repos and prevent empty db creation - (3353ab5)