Skip to main content

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 Rucio 36 release line (so 36.1.0, 36.2.0...) without yet supporting Rucio 37, 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 of NotImplementedError in instances where we're using NotImplementedError 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 and add_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 blocking cryptography dependency update #7075
  • Protocols: RSEProtocol crashes if protocol_attr doesn't have auth_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