commit de8e9d469340af3fe75454b058a0aa48bf8181a1
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Thu Oct 9 15:23:03 2025 +0200

    oauthutil: improved debug logs from token refresh

commit 710cf49bc68d1dc0c6f7eb6e24db8ada2b37a90a
Author: spiffytech <git@spiffy.tech>
Date:   Sat May 10 11:10:16 2025 -0400

    backend: add S3 provider for Hetzner object storage #8183

commit 8dacac60ea00d8549ad26efe6733495f10375f2d
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Thu Oct 9 14:54:06 2025 +0200

    jottacloud: improved token refresh handling
    
    The oauthutil.Renew was initialized early in NewFs, before the first request to the
    service where a token is needed. When token is already expired at the time NewFs is
    called, the Renew operation would be triggered immediately, only to abort before actually
    performing a token refresh, for reason described in debug message:
    
        Token expired but no uploads in progress - doing nothing
    
    Then later in NewFs, a request to the customer endpoint was made, and since it requires
    a valid token it would perform a token refresh after all.
    
    This was not a big problem, but a bit unnecessary, and the debug log messages made it
    confusing to understand what rclone was actually doing regarding token refreshing.
    
    If, from debugger, we were forcing the Renew operation to perform actual token refresh,
    even if no uploads in process, then it would fail because it actually needs the username
    which is retrieved from the customer endpoint
    
        jottacloud root '': Token refresh failed: read metadata failed: error 400: org.springframework.security.core.userdetails.UsernameNotFoundException: Username not found in url! (Bad Request)
    
    Don't think this can happen in any real situations, but better to make sure it never can.

commit 3a80d4d4b49376a35b1fb5121f52fb1f1dd3e80e
Author: dougal <dougal.craigwood@gmail.com>
Date:   Fri Oct 10 14:51:38 2025 +0100

    s3: provider reordering
    
    + fixing some typos

commit a531f987a89c0f007c0893086180b674f673af0c
Author: dougal <dougal.craigwood@gmail.com>
Date:   Fri Oct 10 14:33:23 2025 +0100

    index: add missing providers

commit e906b8d0c46a51ed651bfc0ef60b956440aaeb94
Author: dougal <dougal.craigwood@gmail.com>
Date:   Fri Oct 10 14:29:47 2025 +0100

    docs: add missing `

commit a5932ef91a0bf09d8eeccc24438d42cdc14f1013
Author: dougal <dougal.craigwood@gmail.com>
Date:   Fri Oct 10 14:29:22 2025 +0100

    s3: add rabata as a provider

commit 3afa563eaf6c42960de1a948820e2bdaeda69fc9
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Fri Sep 26 12:28:10 2025 +0100

    mega: fix 402 payment required errors - fixes #8758
    
    The underlying library now supports hashcash which should fix this
    problem.

commit 9d9654b31fc2f21760208a1ffaacf76ccc2486a8
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Thu Oct 9 11:58:35 2025 +0100

    Add Andrew Ruthven to contributors

commit cfe257f13d2c9509dc39f6d2d7fd27a3900191e3
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Thu Oct 9 11:58:35 2025 +0100

    Add Microscotch to contributors

commit 0375efbd35722363d39b2594e4b7fbde5f9dee7e
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Thu Oct 9 11:58:35 2025 +0100

    Add iTrooz to contributors

commit cad1954213c3ff7667128d34ac33444bc7205fcf
Author: Andrew Ruthven <andrew@etc.gen.nz>
Date:   Sat Oct 4 09:11:46 2025 +0000

    build: Bump SwiftAIO container to a newer one
    
    The bouncestorage image hasn't been updated for 4 years and has this
    message at the top of the docs:
    
      This repository is outdated; please use dockerswiftaio/docker-swift instead.
    
    However, dockerswiftaio/docker-swift hasn't been updated for 2 years.
    Switch to openstackswift/saio instead, which is getting regular updates.
    
    This requires some minor changes to one test, and how we start the
    container.

commit 604e37caa54c033393afa1fd8014052897b9f043
Author: Andrew Ruthven <andrew@etc.gen.nz>
Date:   Sat Oct 4 05:38:29 2025 +0000

    build: Retry stopping the test server
    
    On my system there needs to be a slight pause between stopping and
    checking to see if SwiftAIO has stopped. Without the pause the tests fail for
    a non-obvious reason.
    
    Instead of using a magic sleep, re-use the retry logic that is used for
    starting the test server.

commit b249d384b96e51096dc7bebd01504ce56fe19ee1
Author: Andrew Ruthven <andrew@etc.gen.nz>
Date:   Sat Oct 4 01:54:26 2025 +0000

    build: Increase attempts to connect to test server
    
    On the system I'm testing Swift on it can take ~90 retries for SwiftAIO to
    be ready. Extend the retry attempts.

commit 04e91838db08d092a198883d87c6ed4cbbe82e6a
Author: Andrew Ruthven <andrew@etc.gen.nz>
Date:   Tue Sep 30 07:57:56 2025 +0000

    swift: If storage_policy isn't set, use the root containers policy
    
    Ensure that if we need to create a segments container it uses the same
    storage policy as the root container.
    
    Fixes #8858

commit 94829aaec5c2d190c3f0d4fead860502b8255aa7
Author: Microscotch <github.com@microscotch.net>
Date:   Mon Oct 6 17:18:38 2025 +0200

    proton: automated 2FA login with OTP secret key
    
    add OTP secret key to config to generate 2FA code

commit f574e3395ca976814f57fadb95657df4c47d65c6
Author: iTrooz <hey@itrooz.fr>
Date:   Mon Oct 6 16:17:21 2025 +0200

    serve s3: fix log output to remove the EXTRA messages
    
    As shown in
    
    https://github.com/rclone/gofakes3/blob/81e56a30c86f942861f105439339812439b53415/log.go#L74
    
    it seems like the wanted behaviour for merging arguments is the one of PrintLn,
    which is "put a space between each arg"

commit 2bc155a96a2c75e0f683536a2bb038a0aea53586
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Sun Oct 5 11:22:27 2025 +0200

    docs/jottacloud: update description of invalid_grant error according to changes

commit adc8ea3427f69c489742dcec0d9a5e75ab84168d
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Sun Oct 5 00:06:51 2025 +0200

    jottacloud: add support for MediaMarkt Cloud as a whitelabel service
    
    This was requested in issue #8852, after authentication was already fixed for existing
    whitelabels.

commit 068eea025c0820563c9a2c9c3f6797a86b1cc39b
Author: kingston125 <support@filelu.com>
Date:   Sat Oct 4 10:48:01 2025 -0400

    s3: add FileLu S5 provider

commit 4510aa679ad069346a6aeff5729f78cdf9cc65a5
Author: iTrooz <hey@itrooz.fr>
Date:   Sat Oct 4 08:10:49 2025 +0200

    docs: fix variants of --user-from-header

commit 79281354c7b9964f0ef36c8fed4c85def841d717
Author: dougal <dougal.craigwood@gmail.com>
Date:   Fri Oct 3 16:47:15 2025 +0100

    vfs: fix chunker integration test

commit f57a1787195fc21503d3ac6f28da364d2fade811
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Fri Oct 3 16:03:29 2025 +0100

    test_all: give TestZoho: extra time as it has been timing out

commit 44f2e2ed39fcc44e277f60c28c07c7fd7173cf56
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Fri Oct 3 16:02:07 2025 +0100

    test_all: give TestCompressDrive: extra time as it has been timing out

commit 13e1752d94fdeb1ebd499d2fd533804c8a6abcd8
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Fri Oct 3 15:52:59 2025 +0100

    rclone config string: reduce quoting with Human rendering for strings #8859

commit bb82c0e43b6aa85d7af6b805e2d89b7a63e49c0b
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Fri Oct 3 15:54:06 2025 +0100

    Add juejinyuxitu to contributors

commit 1af7151e7318291508d304b8f5618c230078f96e
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Thu Sep 25 22:36:41 2025 +0200

    docs/jottacloud: update documentation with new whitelabel services and changed configuration flow

commit fd63478ed66f1774d7652edb5cac8657fd688929
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Thu Oct 2 14:35:52 2025 +0200

    jottacloud: abort attempts to run unsupported rclone authorize command

commit 5133b05c749216e7649ba9e2e70c333699ef1e35
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Sat Sep 27 10:55:49 2025 +0200

    jottacloud: minor adjustment of texts in config ui

commit 6ba96ede4ba3b9d631895d5406cf1a5475920429
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Sat Sep 27 10:30:58 2025 +0200

    jottacloud: add support for Let's Go Cloud (from MediaMarkt) as a whitelabel service

commit 2896973964a1c7ca5813a87639f81aec0861efd0
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Sat Sep 27 09:58:37 2025 +0200

    jottacloud: fix authentication for whitelabel services from Elkjøp subsidiaries
    
    This adds support for them in the whitelabel autentication type, relying on OpenID
    Connect, same as Telia, Tele2 etc already uses.
    
    Until recently the Elkjøp subsidiaries still supported the legacy authentication type
    only, but that seem to have changed. They no longer support legacy authentication, which
    made existing rclone version incompatible with them.
    
    With this the legacy authentication has no known uses, however the implementation of
    it is still kept for now.
    
    Fixes #8852

commit be123d85ff65e912ab1be4211f1f0d1edb8d4726
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Thu Sep 25 20:58:51 2025 +0200

    jottacloud: refactor config handling of whitelabel services to use openid provider configuration

commit b1b9562ab7e5ada20115c47c9843a5a21df2de33
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Fri Sep 26 17:36:30 2025 +0200

    jottacloud: remove nil error object from error message

commit 5146b66569dd0eb2b44fe75972f8227e4bc3e397
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Thu Sep 25 23:10:44 2025 +0200

    jottacloud: fix legacy authentication
    
    This fixes the issue where configuration would fail after supplying passoword:
    
        Reveal failed: input too short when revealing password - is it obscured?

commit 8898372d5ac1a8325a094d91a917753381d9eaad
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Thu Oct 2 18:00:36 2025 +0200

    docs: add remote setup page to main docs dropdown

commit 091fe9e45348148610de7eb1a22ae86e44e62775
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Thu Oct 2 15:19:55 2025 +0200

    docs: update remote setup page

commit 8fdb68e41a6195d3095b0257d409c64aec035868
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Thu Oct 2 15:18:11 2025 +0200

    docs: add link from authorize command docs to remote setup docs

commit c124aa2ed397f40dc488cd9c35720415cc1897f3
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Thu Oct 2 14:52:58 2025 +0200

    docs: lowercase internet and web browser instead of Internet browser

commit 54e8bb89f7909bad6bfc63e503003b0413d76459
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Thu Oct 2 14:44:14 2025 +0200

    docs: use the term backend name instead of fs name for authorize command

commit 50c1b594ab86d5ba3ba7db33512f598c12b5d4f0
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Tue Sep 30 10:24:49 2025 +0100

    add `rclone config string` for making connection strings #8859

commit 72437a9ca2deb709bac646428250b60b0e27c57a
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Tue Sep 30 11:59:40 2025 +0100

    config: add more human readable configmap.Simple output
    
    Before this, String() quoted every part of the config map even if it
    wasn't necessary.
    
    The new Human() method removes the quoting and adds the special case
    for "true" values.

commit 8ed55c61e1a66bed00502361609a5a605f707da0
Author: dougal <dougal.craigwood@gmail.com>
Date:   Wed Sep 17 14:59:00 2025 +0100

    serve http: download folders as zip
    
    Now folders can be downloaded as a zip. You can also use --disable-zip
    to not show this.

commit bd598c1ceb41bc0512129fa6b6aff71bad36428e
Author: dougal <dougal.craigwood@gmail.com>
Date:   Mon Sep 22 13:07:45 2025 +0100

    s3: reorder providers to be in alphabetical order

commit 7e30665102cbef8776c8bc1dadba0e3772d1fe7e
Author: juejinyuxitu <juejinyuxitu@outlook.com>
Date:   Wed Sep 24 23:03:33 2025 +0800

    refactor: use strings.FieldsFuncSeq to reduce memory allocations
    
    Signed-off-by: juejinyuxitu <juejinyuxitu@outlook.com>

commit d44957a09c9a6fe1e9bd5cdaf411b70ba652048f
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Wed Sep 24 10:20:57 2025 +0100

    accounting: add SetMaxCompletedTransfers method to fix bisync race #8815
    
    Before this change bisync adjusted the global MaxCompletedTransfers
    variable which caused races.
    
    This adds a SetMaxCompletedTransfers method and uses it in bisync.
    
    The MaxCompletedTransfers global becomes the default. This can be
    changed externally if rclone is in use as a library, and the commit
    history indicates that MaxCompletedTransfers was added for exactly
    this purpose so we try not to break it here.

commit 37524e2dea2a630b6030fd7450fefd7f23e6eceb
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Wed Sep 24 09:53:25 2025 +0100

    accounting: add RemoveDoneTransfers method to fix bisync race #8815
    
    Before this change bisync was adjusting MaxCompletedTransfers in order
    to clear the done transfers from the stats.
    
    This wasn't working (because it was only clearing one transfer) and
    was part of a race adjusting MaxCompletedTransfers.
    
    This fixes the problem by introducing a new method RemoveDoneTransfers
    to clear the done transfers explicitly and calling it in bisync.

commit 2f6a6c823352f355c0c11139ee0cff15ba97a8eb
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Sun Sep 21 12:59:44 2025 +0100

    bisync: fix race when CaptureOutput is used concurrently #8815
    
    Before this change CaptureOutput could trip the race detector when
    used concurrently. In particular if go routines using the logging are
    outlasting the return from `fun()`.
    
    This fixes the problem with a mutex.

commit 4ad40b6554407afd569cdc0a289e88cb45f14d0f
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Fri Sep 26 12:14:49 2025 +0100

    build: update all dependencies

commit 4f33d64f25b9ead7b69162b2772a7df54dea0df4
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Fri Sep 26 12:21:12 2025 +0100

    Makefile: remove deprecated go mod usage

commit 519623d9f181cffd4125725409adce9dbaea5a1e
Author: Vikas Bhansali <64532198+vibhansa-msft@users.noreply.github.com>
Date:   Fri Sep 26 17:11:42 2025 +0530

    azurefiles: Fix server side copy not waiting for completion -  fixes #8848

commit 913278327bd8334b76f7766c4651ab48126c0427
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Wed Sep 24 17:34:26 2025 +0100

    Changelog updates from Version v1.71.1

commit a9b05e4c7a99f3a198fc4803a306f57af9ee22d5
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Wed Sep 24 15:35:09 2025 +0100

    test_all: fix branch name in test report

commit 5d6d79e7d4392924d1e642ece804ff5d7e8c3f91
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Sat Aug 30 11:06:40 2025 +0100

    pacer: fix deadlock with --max-connections
    
    If the pacer was used recursively and --max-connections was in use
    then it could deadlock if all the connections were in use at the time
    of recursive call (likely).
    
    This affected the azureblob backend because when it receives an
    InvalidBlockOrBlob error it attempts to clear the condition before
    retrying. This in turn involves recursively calling the pacer.
    
    This fixes the problem by skipping the --max-connections check if the
    pacer is called recursively.
    
    The recursive detection is done by stack inspection which isn't ideal,
    but the alternative would be to add ctx to all >1,000 pacer calls. The
    benchmark reveals stack inspection takes about 55nS per stack level so
    it is relatively cheap.

commit 11de074cbf952b9ed2084935a2e9421a1521f1e8
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Sat Aug 30 10:29:45 2025 +0100

    Revert "azureblob: fix deadlock with --max-connections with InvalidBlockOrBlob errors"
    
    This reverts commit 0c1902cc6037d81eaf95e931172879517a25d529.
    
    This turns out not to be sufficient so we need a better approach

commit e9ab177a325565788d134de0f466b41a3eed4af6
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Mon Sep 22 17:39:12 2025 +0100

    Add Youfu Zhang to contributors

commit f3f4fba98d273d4325433bc8a480ef0434708ff6
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Mon Sep 22 17:39:12 2025 +0100

    Add Matt LaPaglia to contributors

commit 03fccdd67b83a8a66fc06e0a8132ca5b151f2d80
Author: Sudipto Baral <sudiptobaral.me@gmail.com>
Date:   Mon Sep 22 10:33:44 2025 -0400

    smb: optimize smb mount performance by avoiding stat checks during initialization
    
    add IsPathDir function and tests for trailing slash optimization

commit 231083647ef96fc97fd4dff6b88b93450a677693
Author: Youfu Zhang <1315097+zhangyoufu@users.noreply.github.com>
Date:   Fri Sep 19 11:46:26 2025 +0800

    pikpak: fix unnecessary retries by using URL expire parameter - fixes #8601
    
    Before this change, rclone would unnecessarily retry downloads when
    the `Link.Expire` field was unreliable but the download URL contained
    a valid expire query parameter. This primarily affects cases where
    media links are unavailable or when `no_media_link` is enabled.
    
    The `Link.Valid()` method now primarily checks the URL's expire query
    parameter (as Unix timestamp) and falls back to the Expire field
    only when URL parsing fails. This eliminates the `error no link`
    retry loops while maintaining backward compatibility.
    
    Signed-off-by: Youfu Zhang <zhangyoufu@gmail.com>

commit 0e203a7546848bca4d2050fd2c5f7a87ab270eb9
Author: dougal <dougal.craigwood@gmail.com>
Date:   Thu Sep 18 12:09:37 2025 +0100

    serve http: fix: logging url on start

commit a7dd78756904d031d7eb7fe2448f9361f6adbc80
Author: Matt LaPaglia <mlapaglia@gmail.com>
Date:   Tue Sep 16 08:27:10 2025 -0400

    docs: fix typo

commit 689555033ea8124a44f2a86ef40b1da8887b1086
Author: dougal <dougal.craigwood@gmail.com>
Date:   Mon Sep 15 12:18:00 2025 +0100

    b2: fix 1TB+ uploads
    
    Before this change the minimum chunk size would default to 96M which
    would allow a maximum size of just below 1TB file to be uploaded, due to
    the 10000 part rule for b2.
    
    Now the calculated chunk size is used so the chunk size can be 5GB
    making a max file size of 50TB.
    
    Fixes #8460

commit 4fc4898287c73c166e09cafdf127bf6e3e382d98
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Thu Sep 11 17:27:15 2025 +0100

    march: fix deadlock when using --fast-list on syncs - fixes #8811
    
    Before this change, it was possible to have a deadlock when using
    --fast-list for a sync if both the source and destination supported
    ListR.
    
    This fixes the problem by shortening the locking window.

commit b0031690889d9a2d2d256ffc564a3f04278bdc33
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Sun Sep 14 16:19:32 2025 +0100

    build: slices.Contains, added in go1.21

commit babd112665766d72bd3b5eb0fbe8e94517fee7a0
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Sun Sep 14 16:17:40 2025 +0100

    build: use strings.CutPrefix introduced in go1.20

commit 71b9b4ad7a37468a7b5c1083a36493486a3ee683
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Sun Sep 14 16:16:26 2025 +0100

    build: use sequence Split introduced in go1.24

commit 4368863fcbda85334dcfbe89314c0ca9f550c96a
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Sun Sep 14 16:14:47 2025 +0100

    build: use "for i := range n", added in go1.22

commit 04d49bf0ea201ba56cf861cbf8b25c7442225543
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Sun Sep 14 16:13:42 2025 +0100

    build: modernize benchmark usage

commit d7aa37d26323f0a395d8e2887c6752e25d123b46
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Sun Sep 14 16:04:43 2025 +0100

    build: in tests use t.Context, added in go1.24

commit 379dffa61c33959d8ffa2f98fcbbf424c1075919
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Sun Sep 14 16:03:08 2025 +0100

    build: replace interface{} by the 'any' type added in go1.18

commit 5fd4ece31f2472f22a341b6ecd2b37661e50c5d9
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Sun Sep 14 16:01:33 2025 +0100

    build: use the built-in min or max functions added in go1.21

commit fc3f95190bd2c0159c058d7092d5a2e716cd829a
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Mon Sep 15 12:45:43 2025 +0100

    Add russcoss to contributors

commit d6f5652b65999f5099f8a9b371166650465d6e82
Author: russcoss <russcoss@outlook.com>
Date:   Sun Sep 14 10:58:20 2025 -0400

    build: remove x := x made unnecessary by the new semantics of loops in go1.22
    
    Signed-off-by: russcoss <russcoss@outlook.com>

commit b5cbb7520df9c2dbe5314a1ede721886c2986a38
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Thu Sep 11 18:33:06 2025 +0100

    lib/pool: fix unreliable TestPoolMaxBufferMemory test
    
    This turned out to be a problem in the tests. The tests used to do
    
    1. allocate
    2. increment
    3. free
    4. decrement
    
    But if one goroutine had just completed 2 and another had just
    completed 3 then this can cause the test to register too many
    allocations.
    
    This was fixed by doing the test in this order instead:
    
    1. allocate
    2. increment
    3. decrement
    4. free
    
    The 4 operations are atomic.
    
    Fixes #8813

commit a170dfa55bc8c490b6a5dd50eec61e008775cef3
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Fri Sep 12 10:37:40 2025 +0100

    Update S-Pegg1 email

commit 1449c5b5ba59f356d1457c8433f067c087c204cd
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Fri Sep 12 10:37:40 2025 +0100

    Add Jean-Christophe Cura to contributors

commit 35fe609722ebece0e694dfa8bf4e0212c033bd26
Author: dougal <dougal.craigwood@gmail.com>
Date:   Thu Sep 11 12:24:27 2025 +0100

    pool: fix flaky unreliability test

commit cce399515fbe58d91584b932218e5aaf899eb661
Author: dougal <dougal.craigwood@gmail.com>
Date:   Wed Sep 10 18:24:40 2025 +0100

    copyurl: reworked code, added concurrency and tests
    
    - Added Tests
    - Fixed file name handling
    - Added concurrent downloads
    - Limited downloads to --transfers
    - Fixes #8127

commit 8c5af2f51c6a4c6e26211c0a96cca1d31532901a
Author: S-Pegg1 <70067376+S-Pegg1@users.noreply.github.com>
Date:   Sat Jul 19 16:54:39 2025 +0100

    copyurl: Added --url to read urls from csv file - #8127

commit c639d3656e76357b5aba727ef6d2f47704a639cb
Author: dougal <dougal.craigwood@gmail.com>
Date:   Tue Sep 9 16:29:54 2025 +0100

    docs: HDFS: erasure coding limitation #8808

commit d9fbbba5c3d51e3995c01e8ac994268415c7ec3d
Author: nielash <nielronash@gmail.com>
Date:   Tue Sep 9 05:30:02 2025 -0400

    fstest: fix slice bounds out of range error when using -remotes local
    
    Before this change, TestIntegration/FsName could fail with "slice bounds out of
    range [:-1]" when run with -remotes local.
    
    It also caused issues with
    '^TestGitAnnexFstestBackendCases$/^(TransferStorePathWithInteriorWhitespace|TransferStoreRelative)$'.
    
    This change fixes the issue by accepting either "" or "local" to indicate the
    local remote.

commit fd875603883fa60049a7f3cff9e80a821e16e9b7
Author: nielash <nielronash@gmail.com>
Date:   Tue Sep 9 05:22:03 2025 -0400

    local: fix time zones on tests
    
    Before this change, TestMetadata could fail due to a difference between the
    user's local time zone and UTC causing the string representation of the date to
    be off by one day. This change fixes the issue by comparing both in the Local
    time zone.

commit d87720a787aef31045eb5b92bbcf3479c78d7d0d
Author: dougal <dougal.craigwood@gmail.com>
Date:   Tue Sep 9 15:03:45 2025 +0100

    s3: added SpectraLogic as a provider

commit d541caa52b65897fdd9629da17d04e38d756c1ea
Author: nielash <nielronash@gmail.com>
Date:   Sat Sep 6 05:09:22 2025 -0400

    local: fix rmdir "Access is denied" on windows - fixes #8363
    
    Before this change, Rmdir (and other commands that rely on Rmdir) would fail
    with "Access is denied" on Windows, if the directory had
    FILE_ATTRIBUTE_READONLY. This could happen if, for example, an empty folder had
    a custom icon added via Windows Explorer's interface (Properties => Customize =>
    Change Icon...).
    
    However, Microsoft docs indicate that "This attribute is not honored on
    directories."
    https://learn.microsoft.com/en-us/windows/win32/fileio/file-attribute-constants#file_attribute_readonly
    Accordingly, this created an odd situation where such directories were removable
    (by their owner) via File Explorer and the rd command, but not via rclone.
    
    An upstream issue has been open since 2018, but has not yet resulted in a fix.
    https://github.com/golang/go/issues/26295
    
    This change gets around the issue by doing os.Chmod on the dir and then retrying
    os.Remove. If the dir is not empty, this will still fail with "The directory is
    not empty."
    
    A bisync user confirmed that it fixed their issue in
    https://forum.rclone.org/t/bisync-leaving-empty-directories-on-unc-path-1-or-local-filesystem-path-2-on-directory-renames/52456/4?u=nielash
    
    It is likely also a fix for #8019, although @ncw is correct that Purge would be
    a more efficient solution in that particular scenario.

commit fd1665ae939bf45be102323967c8bcfc60a71635
Author: nielash <nielronash@gmail.com>
Date:   Sat Sep 6 03:27:03 2025 -0400

    bisync: fix error handling for renamed conflicts
    
    Before this change, rclone could crash during modifyListing if a rename's
    srcNewName is known but not found in the srcList
    (srcNewName != "" && new == nil).
    This scenario should not happen, but if it does, we should print an error
    instead of crashing.
    
    On #8458 there is a report of this possibly happening on v1.68.2. It is unknown
    what the underlying issue was, and whether it still exists in the latest
    version, but if it does, the user will now see an error and debug info instead
    of a crash.

commit 457d80e8a9f9f835545c3a72602a32bcefd09d71
Author: Jean-Christophe Cura <jcaspes@gmail.com>
Date:   Fri Sep 5 21:50:00 2025 +0200

    docs: pcloud: update root_folder_id instructions

commit c5a3e86df81442988f08f91fe97dd987fe6f8396
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Sat Feb 1 11:01:05 2025 +0000

    operations: fix partial name collisions for non --inplace copies
    
    In this commit:
    
    c63f1865f36058e1 operations: copy: generate stable partial suffix
    
    We made the partial suffix for non inplace copies stable. This was a
    hash based off the file fingerprint.
    
    However, given a directory of files which have the same fingerprint
    the partial suffix collides. On some backends (eg the local backend)
    the fingerprint is just the size and modification time so files with
    different contents can collide.
    
    The effect of collisions was hash failures on copy when using
    --transfers > 1. These copies invariably retried successfully which
    probably explains why this bug hasn't been reported.
    
    This fixes the problem by adding the file name to the hash.
    
    It also makes sure the hash is always represented as 8 hex bytes for
    consistency.

commit 4026e8db209f558bc0dafba4331ee6d507a6ce16
Author: Ed Craig-Wood <138211970+edc-w@users.noreply.github.com>
Date:   Thu Sep 4 13:11:15 2025 +0100

    drive: docs: update making your own client ID instructions
    
    update instructions with the most recent changes to google cloud console

commit c9ce686231c5f43cd65a8bc2bf5974560bcfe7c4
Author: dougal <dougal.craigwood@gmail.com>
Date:   Thu Sep 4 16:41:49 2025 +0100

    swift: add ListP interface - #4788

commit b085598cbc7d0a4c0c33e199dd66772b3aa191aa
Author: dougal <dougal.craigwood@gmail.com>
Date:   Thu Sep 4 16:29:19 2025 +0100

    memory: add ListP interface - #4788

commit bb47dccdeb4ecbb6b0dacc3a3b5834cadf00dc2b
Author: dougal <dougal.craigwood@gmail.com>
Date:   Thu Sep 4 16:22:09 2025 +0100

    oraceobjectstorage: add ListP interface - #4788

commit 7a279d2789cfef281e6623d61f42c8a15853a26b
Author: dougal <dougal.craigwood@gmail.com>
Date:   Thu Sep 4 16:01:33 2025 +0100

    B2: add ListP interface - #4788

commit 9bd5df658a8047054f27fdd964367a53b5702f68
Author: dougal <dougal.craigwood@gmail.com>
Date:   Thu Sep 4 15:16:43 2025 +0100

    azureblob: add ListP interface - #4788

commit d512e4d566e8dd912c7b4f96a2f3740a1e103dcb
Author: dougal <dougal.craigwood@gmail.com>
Date:   Thu Sep 4 14:48:12 2025 +0100

    googlecloudstorage: add ListP interface - Fixes #8763

commit 3dd68c824a5ecbbead6eeb5897274e0982eda84f
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Sep 4 22:06:11 2025 +0000

    build: bump actions/github-script from 7 to 8
    
    Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8.
    - [Release notes](https://github.com/actions/github-script/releases)
    - [Commits](https://github.com/actions/github-script/compare/v7...v8)
    
    ---
    updated-dependencies:
    - dependency-name: actions/github-script
      dependency-version: '8'
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>

commit fbe73c993bd5a01748ecdd5e3e1dea33e78e7a11
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Sep 4 22:06:06 2025 +0000

    build: bump actions/setup-go from 5 to 6
    
    Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5 to 6.
    - [Release notes](https://github.com/actions/setup-go/releases)
    - [Commits](https://github.com/actions/setup-go/compare/v5...v6)
    
    ---
    updated-dependencies:
    - dependency-name: actions/setup-go
      dependency-version: '6'
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>

commit d915f75edf6137f72c569520ea111407ced1b435
Author: nielash <nielronash@gmail.com>
Date:   Thu Sep 4 04:45:28 2025 -0400

    bisync: fix chunker integration tests
    
    Before this change, TestChunkerS3: tests were failing because our use of
    obj.Remove (for "modtime_write_test") created an unexpected extra transfer.
    
    This is because chunker calls operations.Move for removes, which (per its
    function comment) is supposed to be only accounted as a check. But because S3
    can Copy but not Move, the move falls back to copy and ends up getting counted
    as a transfer anyway.
    https://github.com/rclone/rclone/blob/99e8a63df2528e4fd470821095cbeb32e8a827a3/fs/operations/operations.go#L506
    https://github.com/rclone/rclone/blob/99e8a63df2528e4fd470821095cbeb32e8a827a3/fs/operations/copy.go#L381
    
    This is probably a bug that should get a more proper fix in operations. But in
    the meantime, we can get around it by doing our "modtime_write_test" with its
    own unique stats group.

commit 26b629f42fb813771381a76553064deaee165c8b
Author: nielash <nielronash@gmail.com>
Date:   Thu Sep 4 02:20:24 2025 -0400

    bisync: fix koofr integration tests
    
    Before this change, koofr failed certain bisync tests because it can't set mod
    time without deleting and re-uploading. This caused the "nothing to transfer" log
    to not get printed where expected (as it is only printed when there are 0
    transfers, but koofr requires extra transfers to set modtime.)
    
    This change fixes the issue by ignoring the absence of the "nothing to transfer"
    log line on backends that return `fs.ErrorCantSetModTimeWithoutDelete` for
    `obj.SetModTime`.

commit ceaac2194c834be52b7d7d3c79f74021ebd6ae38
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Tue Sep 2 16:15:12 2025 +0100

    internetarchive: fix server side copy files with spaces
    
    In this commit we broke server side copy for files with spaces
    
    4c5764204d7df2da internetarchive: fix server side copy files with &
    
    This fixes the problem by using rest.URLPathEscapeAll which escapes
    everything possible.
    
    Fixes #8754

commit 1f14b6aa35bb3003be965e02cc6867b1c5c0e191
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Tue Sep 2 16:13:28 2025 +0100

    lib/rest: add URLPathEscapeAll to URL escape as many chars as possible

commit dd75af6a18d4d849dd307ba61e7c998d92b2b3ed
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Thu Sep 4 10:35:09 2025 +0100

    Add alternate email for dougal to contributors

commit 99e8a63df2528e4fd470821095cbeb32e8a827a3
Author: dougal <147946567+roucc@users.noreply.github.com>
Date:   Wed Sep 3 12:37:52 2025 +0100

    test speed: add command to test a specified remotes speed
    
    Run speed test to try and work in a given time budget, uploading
    randomly created files to the remote then downloading them again.
    
    Fixes #3198

commit 0019e18ac3a673714e851b2a97d63a8ad0a77654
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Tue Sep 2 16:58:30 2025 +0100

    docs: add link to MEGA S4 from MEGA page

commit 218c3bf6e970500cc335473e99bd7921e790289c
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Tue Sep 2 17:22:18 2025 +0100

    Add Robin Rolf to contributors

commit 8f9702583d03ef0938cebb2a7697b2e06b99e861
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Tue Sep 2 17:22:18 2025 +0100

    Add anon-pradip to contributors

commit e6578fb5a1b605d07ebea72f3395a57391152eac
Author: Robin Rolf <imer@imer.cc>
Date:   Mon Sep 1 09:19:43 2025 +0000

    s3: Add Intercolo provider

commit fa1d7da2727452c18ca18b0f3a551aa17ec8d6ab
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Tue Sep 2 11:49:27 2025 +0200

    gendocs: refactor and add logging of skipped command docs

commit 813708c24dc9a4dc0d8d7db0d63b3e4b02e451f6
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Tue Sep 2 10:00:20 2025 +0200

    gendocs: ignore missing rclone_mount.md, rclone_nfsmount.md, rclone_serve_nfs.md on windows

commit fee471634386b72dd2df229f3d52442c081f12d0
Author: nielash <nielronash@gmail.com>
Date:   Sun Aug 24 03:10:15 2025 -0400

    bin: add bisync.md generator
    
    This change adds make_bisync_docs.go step to dynamically update the list of
    ignored and failed tests in bisync.md

commit 6e9a675b3f079f8cbb93024f49bc4b73af69b98d
Author: nielash <nielronash@gmail.com>
Date:   Sun Aug 24 03:07:59 2025 -0400

    fstest: refactor to decouple package from implementation

commit 7f5a44435028851315bdde7e03eb0726c010bb82
Author: nielash <nielronash@gmail.com>
Date:   Thu Aug 21 18:00:44 2025 -0400

    gendocs: ignore missing rclone_mount.md on macOS

commit d2916ac5c76f79e6358004de49883b91d30b8eb7
Author: nielash <nielronash@gmail.com>
Date:   Mon Sep 1 09:51:33 2025 -0400

    bisync: ignore expected "nothing to transfer" differences on tests
    
    The "There was nothing to transfer" log is only printed when the number of
    transfers is exactly 0. However, there are a variety of reasons why the transfer
    count would be expected to differ between backends. For example, if either side
    lacks hashes, the sync may in fact need to transfer, where it would otherwise
    skip based on hash or just update modtime. Transfer stats will also differ in
    the "src and dst identical but can't set mod time without deleting and re-
    uploading" scenario (because the re-upload is a transfer), and where --download-hash
    is needed (because calculating the hash requires downloading the file, which is
    a transfer).
    
    Before this change, these expected differences would result in erroneous test
    failures. This change fixes the issue by ignoring the absence of the "nothing to
    transfer" log where it is expected.
    
    Note that this issue did not occur before
    https://github.com/rclone/rclone/commit/9e200531b1490000656031c42fff4d95477e1b46
    because the number of transfers was not getting reset between test steps,
    sometimes resulting in an artificially inflated transfers count.

commit 3369a15285c3af9250eafc46c6041f0c104758ae
Author: nielash <nielronash@gmail.com>
Date:   Mon Sep 1 09:30:57 2025 -0400

    bisync: fix TestBisyncConcurrent ignoring -case
    
    Before this change, TestBisyncConcurrent would still run the "basic" test case
    if a non-blank -case arg was used to specify a case other than "basic". This
    change fixes it by skipping in this scenario.

commit 58aee30de755bd6c4f6749960ce03cf7412c7f13
Author: nielash <nielronash@gmail.com>
Date:   Sat Aug 30 02:58:20 2025 -0400

    bisync: make number of parallel tests configurable
    
    Example usage:
    go test ./cmd/bisync -remote local -race -pcount 10

commit ef919241a677c91c66a659457b2a0ebb90b5d1a7
Author: anon-pradip <pradipsubedi360@gmail.com>
Date:   Sat Aug 30 23:59:35 2025 +0545

    docs: clarify subcommand description in rclone usage

commit d5386bb9a74b80e363d413241d1bf50ad8110e9a
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Thu Aug 28 09:07:26 2025 +0200

    docs: fix description of regex syntax of name transform

commit bf46ea5611ecc94bf9669b316509281ee8d5c39e
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Thu Aug 28 09:04:37 2025 +0200

    docs: add some more details about supported regex syntax

commit b8a379c9c932cc515cbe0f6773fe8f8c02081c9a
Author: nielash <nielronash@gmail.com>
Date:   Sat Aug 30 00:31:55 2025 -0400

    makefile: fix lib/transform docs not getting updated
    
    As of
    https://github.com/rclone/rclone/commit/4280ec75ccfd27fbc4f646d5323b8ed060062be5
    the lib/transform docs are generated with //go:generate and embedded with
    //go:embed.
    
    Before this change, however, they were not getting automatically updated with
    subsequent changes (like
    https://github.com/rclone/rclone/commit/fe62a2bb4ea8f62a1567c7883c0bba81827656eb)
    because `go generate ./lib/transform` was not being run as part of the release
    making process.
    
    This change fixes that by running it in `make commanddocs`.

commit 8c37a9c2ef179a6fda64577611fa27eab666c2a5
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Mon Sep 1 16:22:06 2025 +0100

    lib/pool: fix flaky test which was causing timeouts
    
    This puts a limit on the number of allocation failures in a row which
    stops the test timing out as the exponential backoffs get very large.

commit 963a72ce01320d791f46ad7793421f0fdac598e8
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Mon Sep 1 16:23:48 2025 +0100

    Add dougal to contributors

commit a4962e21d10a2da40118f8a68d4c08032e3fded8
Author: dougal <dougal.craigwood@gmail.com>
Date:   Mon Sep 1 12:14:57 2025 +0100

    vfs: fix SIGHUP killing serve instead of flushing directory caches
    
    Before, rclone serve would crash when sent a SIGHUP which contradicts
    the documentation - saying it should flush the directory caches.
    
    Moved signal handling from the mount into the vfs layer, which now
    handles SIGHUP on all uses of the VFS including mount and serve.
    
    Fixes #8607

commit 9e200531b1490000656031c42fff4d95477e1b46
Author: nielash <nielronash@gmail.com>
Date:   Sat Aug 30 02:30:49 2025 -0400

    bisync: use unique stats groups on tests

commit 04683f2032e221ae9a4b8d22c0b9e31555ba4170
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Thu Aug 28 17:06:43 2025 +0100

    fstest: stop errors in test cleanup changing the global stats
    
    This was causing the concurrent bisync tests to fail every now and again.

commit b41f7994da7536339939239a6189f29478879490
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Sat Aug 30 17:45:56 2025 +0100

    Add Motte to contributors

commit 13a5ffe39119ecba9cc4575d5c1d77f0bd348905
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Sat Aug 30 17:45:56 2025 +0100

    Add Claudius Ellsel to contributors

commit 85deea82e4acc5e09f85a41be3f60355f0f9be2d
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Thu Aug 28 16:56:40 2025 +0100

    build: add local markdown linting to make check

commit 89a8ea7a91b8d631ce3ac42bbf701e0c5b344ff8
Author: Motte <37443982+dmotte@users.noreply.github.com>
Date:   Thu Aug 28 17:28:49 2025 +0200

    lsf: add support for unix and unixnano time formats

commit c8912eb6a0ea3c808226a4cc96d39c4f8f6fedde
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Wed Aug 27 21:34:33 2025 +0200

    docs: remove broken links from rc to commands

commit 01674949a1319584b8400170951d4dad836a1669
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Wed Jun 8 14:26:47 2022 +0200

    hashsum: changed output format when listing algorithms

commit 98e1d3ee7355182fcf95c59d9ad5f6d818fa83cc
Author: Claudius Ellsel <claudius.ellsel@live.de>
Date:   Wed Aug 27 22:01:28 2025 +0200

    docs: add example of how to add date as suffix

commit 50d7a803319306d7a7ba8138a330eeba41e4ce46
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Tue Aug 26 09:39:49 2025 +0100

    box: fix about after change in API return - fixes #8776

commit bc3e8e1abd1aae34e1e63f5e7a6705bfe4d09e4c
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Tue Aug 26 18:02:59 2025 +0100

    Add skbeh to contributors

commit 30e80d0716548e9cbc28926e7d9c5469c867e83a
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Tue Aug 26 18:02:59 2025 +0100

    Add Tilman Vogel to contributors

commit f288920696b1163d08526f3d4767a2fc69994460
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Tue Aug 26 14:29:33 2025 +0200

    docs: fix incorrectly escaped windows path separators

commit fa2bbd705c780f2f582ad2c5ae0486ebb5b0f008
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Tue Aug 26 13:44:33 2025 +0200

    build: restore error handling in gendocs

commit 43a794860ffd2d44352b366eec5e9e063e155b93
Author: skbeh <60107333+skbeh@users.noreply.github.com>
Date:   Mon Aug 25 10:19:47 2025 +0000

    combine: propagate SlowHash feature

commit adfe6b3bad9ca4e4b559c0878bae79c9e19e9f3c
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Mon Aug 25 09:39:13 2025 +0200

    docs/oracleobjectstorage: add introduction before external links and remove broken link

commit 091ccb649cbaf167cf432a28a3c6a2ff9d33a56b
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Mon Aug 25 00:00:48 2025 +0200

    docs: fix markdown lint issues in backend docs

commit 2e02d495786d5a515f7f9291a7cb0e2f5dfef84c
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Sun Aug 24 21:12:04 2025 +0200

    docs: fix markdown lint issues in command docs

commit 514535ad466e347559ca2aefa61a188b420c9efa
Author: albertony <12441419+albertony@users.noreply.github.com>
Date:   Sun Aug 24 21:13:07 2025 +0200

    docs: update markdown code block json indent size 2

commit b010591c96d9b4451bfda0cedf5eead1f710b4e4
Author: Tilman Vogel <tilman.vogel@web.de>
Date:   Sat Aug 23 17:30:33 2025 +0200

    mount: do not log successful unmount as an error - fixes #8766

commit 1aaee9edce0fdf82da631fafe7c86bc0c94f9413
Author: Nick Craig-Wood <nick@craig-wood.com>
Date:   Fri Aug 22 17:42:25 2025 +0100

    Start v1.72.0-DEV development
