36.0.0
Important changes
- For policy package operators: Rucio 36 includes a breaking change in the way the supported Rucio version is configured. With this change, the version with PEP-compliant version specifier; you can find the specification for the version specifiers here: https://peps.python.org/pep-0440/#version-specifiers In order to migrate to the new format, you simply need to add a version specifier comparison operator to the
SUPPORTED_VERSION
line in your policy package. For example, if you only want to support the entire Rucio36
release line (so 36.1.0, 36.2.0...) without yet supporting Rucio37
, you can use the compatible release operator~=
, as seen below. Before Rucio 36:SUPPORTED_VERSION = '36'
From Rucio 36 onwards:SUPPORTED_VERSION = '~=36.0'
- This release offers a complete re-structuring of the Rucio Command Line Interface. Our objective was to offer a more consistent CLI experience, similar to other commonly used CLIs. This new structure should be considered as a pre-release state, thus some adjustments are still to be expected over the coming months. To report issues or suggestions please report them in issue #7224. We will announce at a later time once the new CLI structure is considered fully stable.
Technology Preview: Rich Client Output
This release features an experimental use of the Rich library in the Rucio command-line client. Rich offers an improved interface, with colour output, prettier tables, use of markup, a spinner for long operations, and more. In addition, the output of a command is displayed through the use of a pager.
The use of Rich has to be explicitly enabled by adding the following to the client’s configuration file rucio.cfg
:
[experimental]
cli = rich
At this time, we recommend that Rucio developers and power users enable the use of Rich and report issues. The plan is make Rich the default in the next Rucio major release and eventually eliminate the use of the tabulate library.
General
Features
- Policies: Prepare replacement of current policy import with policy packages #4798
- Policies: Policy package version support: specifying each supported major version (current way of doing things) vs specifying a minimum valid version (proposal) #7082
- Testing: Move ATLAS VO test to use policy package #6962
Enhancements
- Policies: Allow permissions to optionally return a message #6580
- Policies: "diff"-based policies, instead of fully replicating the base policy package code #6842
- Policies: Refactor all ATLAS-related code into ATLAS policy package #7027
- Policies: Policy package version check: instead of parsing string manually, use
packaging.version.Version
#7083 - Policies: Extraction of Belle II logic to policy package #7157
- Protocols: Use
abstractmethod
decorator in place ofNotImplementedError
in instances where we're usingNotImplementedError
to mark an abstract method #7031 - Release management: Unneeded dev dependency
virtualenv
#7140 - Testing: Introduce test coverage in PR reviews (and possibly in CI) #6545
- Testing: Better define unit tests and integ tests #7007
- Testing: Improve test coverage #7008
- Testing: Release 36 type annotations #7021
- Testing: Remove unnecessary
test_download_states
#7070
Bugs
- Authentication & Authorisation: Permissions: Unify the permissions for
add_did
andadd_dids
#6973 - Deletion: Reaper fails to delete files in S3 based RSEs #6548
- Documentation: Importing a schema from a policy package with a
lfn2pfn
algorithm results in circular imports due to module-level logic #7165 - Fix
TripleDES
issue that's blockingcryptography
dependency update #7075 - Protocols: RSEProtocol crashes if
protocol_attr
doesn't haveauth_token
#7023 - REST & API: Align recursive Parameter Handling and Documentation in Scope API Endpoint #7175
- Release management: Version block is outdated for minimum Python version #7182
- Testing: VO tests: Belle II test failing due to using deprecated policy package version syntax for
SUPPORTED_VERSION
#7186 - Transfers: Automatix crash if one destination RSE is not available #6925
Clients
Features
- Clients: Re-write and standardization of client command structure #6639
Enhancements
- Clients: Use the rich library to enhance the command-line client commands #6987