Raise the dependency floors so a new install cannot pick up a PyJWT release with a known vulnerability. - Raise the floors for PyJWT, pydantic, pydantic-settings, python-dotenv and validators to their current releases. - Add the 1.3.20 entry to the changelog.
4.7 KiB
4.7 KiB
Changelog
All notable changes to this project will be documented in this file.
[1.3.20] - 2026-11-04
Changed
- Raised the minimum versions of
pydantic,pydantic-settings,python-dotenv,PyJWTandvalidatorsto their current releases.
Security
- Required
PyJWT2.15.1 or later; releases before 2.14.0 have a known vulnerability.
[1.3.19] - 2026-09-04
Fixed
- Reported failed transfers instead of ending in success, so a run that lost files exits non-zero.
- Left an existing local file intact when a download fails part way through.
- Opened password-protected DOI folders, which previously failed outright.
- Kept a session working across concurrent runs and long server queues.
- Other minor fixes to
lsoutput and remote URL handling.
Changed
- Moved packaging to PEP 621 metadata with flit as the build backend.
- Updated dependencies.
- Breaking for embedders:
CacheInterfacenow requireslock()andreload().
[1.3.18] - 2026-07-02
Added
- Added a comprehensive unit test suite in
tests/test_commands.pychecking registration, parsing, and execution flow of all 16 commands.
Refactored
- Abstracted configuration storage (introducing
ConfigInterface,InMemoryConfig, and updatingConfigFile) to enable dependency injection. - Modularized transfer operations (upload and download) to decouple them from the service layer.
- Decoupled commands from direct file system configurations and migrated all subcommands to use abstract config classes.
Changed
- Upgraded dependencies including
pydantic-settingsto2.14.2andpyrightto1.1.411.
Fixed
- Fixed duplicate
__all__definitions in package initialization filemdrsclient/__init__.pythat caused__version__export to be overwritten.
[1.3.17] - 2026-07-02
Refactored
- Decoupled core logic from CLI interface and introduced
MdrsClientservice layer to improve library portability. - Migrated all CLI commands to utilize
MdrsClientfor execution.
Added
- Abstract authentication state using
CacheInterfaceandInMemoryCache.
[1.3.16] - 2026-06-12
Fixed
- Retrieve the full
Folderobject fromFoldersApiinstead of using theFolderSimplereturned byfind_sub_folderwhen resolving DOI subfolders. This fixes a type checker error under the upgraded pyright and avoids a potential AttributeError at runtime due toFolderSimplelacking thepathattribute.
Changed
- Upgraded dependencies and bumped version to 1.3.16 in pyproject.toml.
[1.3.15] - 2026-05-01
Fixed
- Apply NFC normalization to filenames and folder names sent to the server.
[1.3.14] - 2026-04-17
Changed
- Simplified
config listcommand (removed-l/--longoption, always display URL). - Renamed
--quickoption to--quietforlssubcommand.
Added
- Added subcommand aliases for config commands (e.g.
lsalias for list,rmalias for delete). - Added
versioncommand.
[1.3.13] - 2025-07-02
Fixed
- Fixed pagination logic for the
file.listAPI.
[1.3.12] - 2025-05-20
Fixed
- Fixed bug where file downloading was skipped incorrectly when
-s/--skip-if-file-existsoption was present.
[1.3.11] - 2025-01-21
Fixed
- Follow-up fixes for User API specification changes.
[1.3.10] - 2024-12-23
Added
- Delete broken files and show a summary when a file download fails.
Changed
- Updated dependency libraries.
[1.3.9] - 2024-10-23
Fixed
- Fixed compatibility with Python 3.10.
[1.3.8] - 2024-09-18
Added
- Implemented
-s/--skip-if-file-existsoption fordownloadcommand.
Fixed
- Added exception handling for unexpected responses from the server.
[1.3.7] - 2024-07-22
Added
- Implemented
--excludeargument for download subcommand.
[1.3.6] - 2024-07-08
Added
- Support cancelling recursive downloads if downloading some files fails.
[1.3.5] - 2024-07-08
Added
- Added authorization token validation checks for file download operations.
Removed
- Removed unnecessary debug code.
[1.3.4] - 2024-07-04
Added
- Added some aliases for config sub command.
Fixed
- Fixed bug when uploading large files.
[1.3.3] - 2024-02-13
Added
- Implemented
-s/--skip-if-file-existsoption foruploadcommand.
[1.3.2] - 2024-02-09
Added
- Added
-uand-poptions to login command.
[1.3.1] - 2023-12-20
Fixed
- Fixed bug to resolve local files for recursive file upload.
[1.3.0] - 2023-12-18
Changed
- Removed debug comments.
[1.2.0] - 2023-10-04
Changed
- Follow-up recent specification changes about folder access level.
[1.1.1] - 2023-07-26
Changed
- Set destination folder name using name attribute of folder copy API.