chore: release v6.0.0 (#4)

* chore: release v6.0.0

* docs: document the 6.0.0 breaking changes

cargo-semver-checks flagged four major-breaking changes in soulseek-rs-lib,
none of which carried a `!` or BREAKING CHANGE footer, so the generated
changelog had no migration note for a major bump.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Michel de Graaf <michel@re-invention.nl>
This commit is contained in:
github-actions[bot]
2026-07-24 12:47:21 +02:00
committed by GitHub
co-authored by Michel de Graaf
parent 720e0676f8
commit eef7bf755f
4 changed files with 54 additions and 4 deletions
+50
View File
@@ -0,0 +1,50 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [6.0.0](https://github.com/michel/soulseek-rs/compare/v5.0.0...v6.0.0) - 2026-07-24
### Breaking changes
Library only. If you install the `soulseek-rs` binary there is nothing to do —
these affect crates depending on `soulseek-rs-lib` 5.x. Sharing moved from a
single optional directory to a list, which changed three public items.
- `ClientSettings::shared_directory: Option<String>` is now
`shared_directories: Vec<String>`. `None` becomes `vec![]`, `Some(dir)`
becomes `vec![dir]`.
- `Client::shared_directory() -> Option<&str>` is replaced by
`Client::shared_directories() -> Vec<String>`. The new
`Client::set_shared_directories(Vec<String>)` updates the set at runtime.
- `peer::upload_peer::serve_file` takes two more parameters,
`bytes_sent: &AtomicU64` and `cancel: &AtomicBool`, which drive upload
progress and cancellation. Pass freshly constructed values to keep the old
behaviour.
### Added
- settings popup and uploads in the transfers pane
- update shared directories at runtime
- multiple shared directories
- conventional default download and share folders
- set aside unusable state files as .bak instead of overwriting
- persist and restore TUI state across restarts
- versioned JSON state stores for downloads, searches, rooms
- in-TUI login/registration screen
- password resolution via OS keychain and password_cmd
- config.toml settings layer (CLI > env > file > defaults)
- track uploads with progress and cancellation
### Fixed
- drop libdbus dependency from keyring Linux backend
- clippy cleanups in upload tracking and share plumbing
### Other
- persistence e2e and registration-relogin e2e; lint clean
Generated
+2 -2
View File
@@ -2407,7 +2407,7 @@ checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
[[package]]
name = "soulseek-rs"
version = "5.0.0"
version = "6.0.0"
dependencies = [
"clap",
"color-eyre",
@@ -2425,7 +2425,7 @@ dependencies = [
[[package]]
name = "soulseek-rs-lib"
version = "5.0.0"
version = "6.0.0"
[[package]]
name = "stable_deref_trait"
+1 -1
View File
@@ -3,7 +3,7 @@ members = ["soulseek-rs-lib", "soulseek-rs"]
resolver = "2"
[workspace.package]
version = "5.0.0"
version = "6.0.0"
authors = ["Michel de Graaf"]
edition = "2024"
license = "MIT"
+1 -1
View File
@@ -24,7 +24,7 @@ path = "src/lib.rs"
workspace = true
[dependencies]
soulseek-rs-lib = { version = "5.0.0", path = "../soulseek-rs-lib" }
soulseek-rs-lib = { version = "6.0.0", path = "../soulseek-rs-lib" }
clap = { version = "4.6.2", features = ["derive", "color", "wrap_help", "env"] }
ratatui = "0.30.2"