docs: release 1.3.19 and document the environment variables
- Close the Unreleased section as 1.3.19, summarising it by what changed for the user rather than by what each commit touched. - Add the environment variables the settings module reads, which the README did not mention.
This commit is contained in:
+9
-14
@@ -2,24 +2,19 @@
|
|||||||
|
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
## [Unreleased]
|
## [1.3.19] - 2026-09-04
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Reported a failed upload to the caller. A file the server refused was printed and then forgotten, so a batch that lost files still ended in success and scripts could not tell.
|
- Reported failed transfers instead of ending in success, so a run that lost files exits non-zero.
|
||||||
- Reported a failed single-file download to the caller, which was counted internally but never raised, so only recursive downloads ever ended in failure.
|
- Left an existing local file intact when a download fails part way through.
|
||||||
- Raised the error when a downloaded file could not be written locally. A permission error was printed and the path was then listed as if the file had arrived.
|
- Opened password-protected DOI folders, which previously failed outright.
|
||||||
- Wrote a download to a temporary file beside its destination and moved it into place once the whole body had arrived. A transfer that failed part way used to leave a truncated file under the real name, and a destination that could not be opened was then deleted even though nothing had been written to it. A destination the client may not write is now refused before anything is fetched.
|
- Kept a session working across concurrent runs and long server queues.
|
||||||
- Named the file in the message when an upload failed, and counted a failure the API layer did not raise, such as a file that disappeared between the directory walk and its turn to be sent.
|
- Other minor fixes to `ls` output and remote URL handling.
|
||||||
- Carried on through the remaining sub-folders when a recursive download lost a file or could not be created locally, instead of abandoning the rest of the tree at the first failure. Every failure is now printed against its own file and reported once at the end.
|
|
||||||
- Said why a download failed, rather than printing the path alone.
|
|
||||||
- Serialised the token refresh across processes. Concurrent `mdrs` invocations shared one refresh token and each sent it, so a provider that rotates refresh tokens accepted the first and refused the rest.
|
|
||||||
- Wrote the login cache through a temporary file so a reader can no longer catch it mid-truncation and discard the session.
|
|
||||||
- Joined the base URL and the API's relative path correctly in `ls --json` output, which produced a doubled separator when the configured URL ended with one.
|
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Accepted bare hostnames such as `localhost` in `config create`/`config update`, and stored the URL without its trailing slash, matching the Rust client so both can share `config.ini`.
|
- Moved packaging to PEP 621 metadata with flit as the build backend.
|
||||||
- Bounded the token refresh request with its own timeout, so a provider that stops answering cannot hold the cross-process lock indefinitely.
|
- Updated dependencies.
|
||||||
- **Breaking for embedders:** `CacheInterface` now requires `lock()` and `reload()`. A cache passed to `MdrsClient.from_remote(..., cache=...)` must provide both; `InMemoryCache` implements them as no-ops.
|
- **Breaking for embedders:** `CacheInterface` now requires `lock()` and `reload()`.
|
||||||
|
|
||||||
## [1.3.18] - 2026-07-02
|
## [1.3.18] - 2026-07-02
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,15 @@ pip install -e ".[dev]"
|
|||||||
uv sync
|
uv sync
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
The following environment variables can be set, either in the shell or via a `.env` file placed in the working directory.
|
||||||
|
|
||||||
|
| Variable | Default | Description |
|
||||||
|
|---|---|---|
|
||||||
|
| `MDRS_CLIENT_CONFIG_DIRNAME` | `~/.mdrs-client` | Directory where config and login cache files are stored |
|
||||||
|
| `MDRS_CLIENT_CONCURRENT` | `10` | Number of concurrent file transfers for upload and download |
|
||||||
|
|
||||||
## CLI Usage
|
## CLI Usage
|
||||||
|
|
||||||
### config create
|
### config create
|
||||||
|
|||||||
Reference in New Issue
Block a user