github smokin-salmon/smoked-salmon 0.10.1

2 months ago

⚠️ Breaking Changes

  • SQLite database removed: The SQLite database has been replaced with in-memory state. This simplifies deployment and removes the need for database file management. The salmon migrate command is no longer needed during installation.
  • Project migrated to src layout: The project has been restructured to a standard Python src layout (src/salmon/). The build backend has been switched to uv. If you are running from source, you may need to reinstall the package.
  • Junodownload metadata source dropped: Junodownload has been removed as a metadata source.

✨ New Features & Improvements

  • Add Apple Music multi-storefront search support (replacing the old iTunes scraper)
  • Add --essential-only option to strip extra files during upload and conversion
  • Add display_host config option for web interface — server now binds to 0.0.0.0 by default for Docker/remote access, while user-facing URLs use display_host (defaults to localhost)
  • Add classical genre detection warning during metadata review
  • Add OPS split release type support
  • Extract Bandcamp catalog numbers from release pages
  • Simplify Tidal region handling and pass country code through API pipeline

🐛 Bug Fixes

  • Fix an issue where RED may incorrectly create a new group instead of uploading to an existing group when using cookie-only uploads
  • Fix aiohttp aiodns issue on Windows by excluding speedups extra
  • Fix spectral filenames with undecodable characters causing database errors
  • Fix tracker auth error when debug messages are enabled
  • Fix preferred metadata title override not being applied
  • Fix spurious remixer artists and Discogs URL matching
  • Fix scraper dispatch and search issues across multiple metadata sources
  • Fix zero-length folder segments causing path errors
  • Fix torrent generation before authentication
  • Handle multi-tracker upload failure gracefully instead of crashing

🔒 Tracker & Security Improvements

  • Default to using API key instead of cookie for tracker requests when an API key is configured
  • Refactor Dockerfile to use multi-stage build for smaller images
  • Replace FormData with UploadFiles struct for cleaner upload file handling
  • Improve tracker HTTP error handling and redact sensitive data from debug output
  • Improve checkconf diagnostics for tracker connection testing

What's Changed

  • Use pathlib to detect zero-length folder segments by @KyokoMiki in #291
  • Refactor scraper architecture, migrate iTunes to multi-region Apple Music, drop Junodownload by @KyokoMiki in #292
  • Ensure authentication before torrent generation to prevent None announce URL by @kisiel92 in #295
  • Migrate to src layout with uv build backend and multi-stage Docker build by @KyokoMiki in #296
  • Refactor tracker HTTP layer and add OPS split release type support by @KyokoMiki in #297
  • Bump platformdirs from 4.9.2 to 4.9.4 by @dependabot[bot] in #299
  • Bump ruff from 0.15.4 to 0.15.5 by @dependabot[bot] in #300
  • Bump docker/metadata-action from 5 to 6 by @dependabot[bot] in #301
  • Bump docker/login-action from 3 to 4 by @dependabot[bot] in #302
  • Bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in #303
  • Bump docker/build-push-action from 6 to 7 by @dependabot[bot] in #304
  • Bump docker/setup-qemu-action from 3 to 4 by @dependabot[bot] in #305
  • Move tracker debug logging into _request() to cover all HTTP calls by @KyokoMiki in #306
  • Fix spurious remixer artists and Discogs URL matching by @KyokoMiki in #307
  • Improve tracker HTTP error handling and redact sensitive data from debug output by @KyokoMiki in #309
  • Respect preferred metadata title over embedded album tags by @tomerh2001 in #313
  • Extract catalog numbers from Bandcamp metadata by @tomerh2001 in #315
  • Handle multi-tracker upload failure gracefully by @0rkag in #316
  • fix: convert response headers to dict before JSON encoding in debug output by @0rkag in #319
  • Improve tracker error handling and checkconf diagnostics by @KyokoMiki in #320
  • Fix spectral filenames with undecodable characters causing database errors by @KyokoMiki in #323
  • Add --essential-only option to strip extra files during upload and conversion by @KyokoMiki in #327
  • Fix aiohttp aiodns issue on Windows by excluding speedups extra by @KyokoMiki in #328
  • Add contributing guidelines by @KyokoMiki in #329
  • Add RED upload form enrichment for cookie-only uploads to existing groups by @KyokoMiki in #330
  • Add classical genre detection warning during metadata review by @KyokoMiki in #331
  • Remove SQLite database and replace with in-memory state by @KyokoMiki in #332
  • Replace FormData with UploadFiles struct and simplify upload file handling by @KyokoMiki in #333
  • Add display_host config for web interface and bind to 0.0.0.0 by default by @KyokoMiki in #334

New Contributors

Full Changelog: 0.10.0...0.10.1

Don't miss a new smoked-salmon release

NewReleases is sending notifications on new releases.