-
v1.1.0 Stable
released this
2026-07-22 22:46:21 +02:00 | 21 commits to main since this releasemusicfix v1.1.0
Highlights
Version 1.1.0 introduces incremental library processing, a restored cross-distribution installer, and built-in Apprise support.
Normal maintenance runs no longer need to fully inspect the entire music library when only a small number of files have changed. Humanity may finally be spared one unnecessary full scan.
Added
Incremental library index
- Added a SQLite-backed library index
- Detects new, modified, and deleted audio files
- Detects relevant artwork changes
- Uses file path, size, and nanosecond modification time for change detection
- Selects all audio files from affected album directories
- Stores the index below the configured state directory as
index.sqlite3 - Updates the index automatically after successful write runs
- Keeps pending changes available after dry runs
- Falls back to a full run when no index exists
Index commands
musicfix index status musicfix index rebuild musicfix index clearCreate the initial baseline:
musicfix index rebuildInspect pending changes:
musicfix index statusDelete the current index:
musicfix index clearIncremental maintenance
Normal complete runs are now incremental:
musicfix all musicfix all --writeForce a complete library pass:
musicfix all --full musicfix all --full --writeThe following maintenance steps process only selected files during incremental runs:
- FLAC repair
- Title cleanup
- Tag normalization
- Filename normalization
- Embedded cover extraction
- Online cover lookup
- Placeholder-cover generation
Artist-image validation and cleanup remain global because they inspect directory-level library structure.
Apprise notifications
- Added Apprise as an automatic Python dependency
- No separate Apprise installation is required
- Added optional notifications after complete runs
- Supports notifications for successful runs
- Supports notifications for failed runs
- Supports multiple Apprise service URLs
- Uses the Apprise Python library directly
- Notification failures do not change the musicfix run result
Notification messages include:
- Success or failure status
- Dry-run or write mode
- Run ID
- Runtime
- Audio-file count
- Folder count
- Total library size
- Log-file path
Example configuration:
[notifications] enabled = true notify_on_success = true notify_on_failure = true urls = [ "apprise://0.0.0.0", ]Installer
- Restored
install.sh - Added support for Arch Linux, CachyOS, EndeavourOS, Manjaro, Debian, Ubuntu, Linux Mint, Pop!_OS, Fedora, openSUSE, and Alpine Linux
- Automatically installs required system packages when possible
- Installs musicfix through pipx
- Installs Python dependencies, including Apprise
- Supports installing the latest branch or a specific Git tag
- Prints Fish-specific PATH guidance when required
Install the latest version:
curl -fsSL \ https://git.justdoit.network/Jan/musicfix/raw/branch/main/install.sh \ | bashInstall version 1.1.0:
curl -fsSL \ https://git.justdoit.network/Jan/musicfix/raw/branch/main/install.sh \ | bash -s -- v1.1.0Changed
- Complete maintenance runs now use incremental processing by default
- Dry runs no longer consume pending index changes
- Successful write runs rebuild the index after all file changes are complete
- Apprise integration now uses the Python library instead of an external command
- Generated configuration files include English comments describing supported options
- README documentation now covers configuration, notifications, incremental processing, and installation
- Configuration inspection remains read-only unless an actual setting changes
Safety
- No library changes are made without
--write - Incremental index updates occur only after successful write runs
- Interrupted or failed runs do not update the index
- Suspiciously broad library roots remain blocked
- Parallel write operations remain protected by a process lock
- Logs, reports, backups, and run manifests remain available for recovery
- Full scans remain available through
--full
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads