Skip to content

Update ghcr.io/slskd/slskd Docker tag to v0.26.0#99

Open
Baconing wants to merge 1 commit into
masterfrom
renovate/ghcr.io-slskd-slskd-0.x
Open

Update ghcr.io/slskd/slskd Docker tag to v0.26.0#99
Baconing wants to merge 1 commit into
masterfrom
renovate/ghcr.io-slskd-slskd-0.x

Conversation

@Baconing

Copy link
Copy Markdown
Owner

This PR contains the following updates:

Package Update Change
ghcr.io/slskd/slskd (source) minor 0.25.10.26.0

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

slskd/slskd (ghcr.io/slskd/slskd)

v0.26.0

Compare Source

🎉 Another Big Release!

This release contains improvements to the user interface, failed download retries, and gives users the ability to control where completed downloads go on disk.

There's also one breaking change in the configuration for file permissions.

Dashboard Screen and Footer

The default landing page is now a dashboard that displays various statistics:

image

Users can select the time range and can click the legend under the chart to show or hide common data series. The Users tab shows users with the highest transfer count, size or speed, depending on how sorting is applied, and the Content tab shows the most commonly downloaded directories. The Errors tab displays detailed error information.

Also shown in the screenshot above is a new footer that appears on every screen and that displays real-time upload and download speeds, number of active transfers, and the size of each queue.

Browse Screen Improvements

The Browse screen has been redesigned to improve the functionality and performance:

image

The directory tree now uses virtualization to improve the performance, enabling larger shares to be displayed and interacted with than before. Directories can now be expanded and collapsed by clicking the folder icon to the left of directory names, and the number of files and subdirectories contained in each directory are now shown. The directory tree can now also be resized vertically by clicking and dragging the three-dot button at the bottom.

The filter above the directory tree can be used to show matching directories (regardless of how deeply nested). The buttons to the right can be used to expand or contract all directories, and the rightmost button expands the tree to reveal the currently selected directory and scrolls it into view.

The file selector now shows subdirectories in addition to files, and subdirectories can be expanded one level to show the files within. Subdirectories can be selected to include all of the files (regardless of subdirectory depth) in the file selection, effectively allowing recursive downloading of directories. Clicking the arrow icon to the far right of the directory name navigates the directory tree to that directory, allowing further review of the contents.

As the screenshot shows, this has been tested and is working well with 1,000,000 files and 100,000 directories. I'm not sure what the practical limit is, but the issues described in issue #​317 are still mostly accurate; there are still users which can't be browsed, but limitations exist for all Soulseek clients at various levels.

Failed Download Retries

Failed downloads can be retried automatically up to the configured number of attempts. If an attempt fails initially, the application delays the second attempt by the configured delay, and an exponential backoff is used to compute the delay for all subsequent events, up to the configured maximum delay.

By default, partial downloads are resumed based on the size of the incomplete file. Users can choose to always overwrite files if they wish.

YAML

transfers:
  download:
    retry:
      incomplete: resume # 'overwrite' or 'resume'
      attempts: 3
      delay: 5000 # initial time between retries, in milliseconds
      max_delay: 60000 # maximum time between retries, in milliseconds

Completed Download Location

Users can now specify an expression that slskd will evaluate to determine the destination directory:

transfers:
  download:
    destination:
      subdirectory: ${SOURCE_DIRECTORY} # options: SOURCE_USERNAME, SOURCE_PATH, SOURCE_DIRECTORY, BATCH_ID, BATCH_EXTERNAL_ID, SEARCH_ID, SEARCH_TEXT
      exists: rename # 'overwrite' or 'rename'

The new subdirectory option allows users to specify an expression containing special, fixed values that are replaced at run-time when slskd determines where to place a newly downloaded file.

The syntax is simply:

<any string, or nothing>${<token>}<any other string, or nothing>

For example:

music/${SOURCE_USERNAME}/directories/${SOURCE_PATH}

Will expand to the following for a download of @@&#8203;abcde/foo/bar/baz/qux.ext from user Bob:

music/Bob/directories/@&#8203;@&#8203;abcde/foo/bar/baz

The value for token is some value related to the transfer, including:

  • SOURCE_USERNAME: The username of the user the file was downloaded from
  • SOURCE_PATH: The complete path to the directory on the source user's system
  • SOURCE_DIRECTORY: The directory on the source user's system that contains the file; the immediate parent directory
  • BATCH_ID: The ID pf the associated batch, if the file is part of a batch
  • BATCH_EXTERNAL_ID: The external ID included in the associated batches options when created
  • SEARCH_ID: The ID of the search associated with the batch, if one was supplied when the batch was created
  • SEARCH_TEXT: The text/query of the search

This option defaults to ${SOURCE_DIRECTORY}, which matches the current behavior. Users that choose not to set this option shouldn't notice any change.

The new exists option allows users to choose what slskd does when it downloads a file that already exists on disk, either overwrite which overwrites the old file with the new one, or rename, which appends a number to the end of the new file. The current behavior is rename.

Breaking Change

Users who have previously set the permissions.file.mode configuration property, were using the --file-permission-mode command line argument, or had set the SLSKD_FILE_PERMISSION_MODE environment variable will find that this option has been moved, and slskd should refuse to start informing them of this.

To fix this, update the YAML configuration file to set the new transfers.download.destination.permissions.mode key as shown below.

Old:

permissions:
  file:
    mode: 644 # not for Windows, chmod syntax, e.g. 644, 777. can't escalate beyond umask

New:

transfers:
  download:
    destination:
      permissions:
        mode: 644 # chmod syntax, e.g. 644, 777.  has no effect on Windows

What's Changed

New Contributors

Full Changelog: slskd/slskd@0.25.1...0.26.0


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant