Skip to main content

38.0.0

Long Term Support (LTS)

This release marks the start of the 38 Long Term Support (LTS) release line. This release line will be supported with security and critical patches until at least August 2027.

Important changes

  • Updated the default Data Identifier name expression schema to allow forward slashes (/), providing partial support for unix-like paths. Examples of valid names now include /path/to/file, dir/file, and path/to/dir/. If this needs to be expressively prohibited in your deployment, you need to setup a policy package excluding forward slashes in your name expression schema.
  • Upgraded the oracle database interface from cx_oracle (deprecated) to python-oracledb. The use of Oracle in thick mode is enabled. Ensure the Oracle Instant Client (or full Oracle client) libraries are installed and visible in your environment. If the libraries can’t be found, Rucio will continue in thin mode automatically.

Upgrade Instructions

This major release requires a database schema upgrade. Please consult the documentation about upgrading your database schema.

The following changes are necessary and are covered by the alembic upgrade head command:

  1. Create dids_opendata table, OPENDATA_DID_UPDATED_AT_IDX index, OPENDATA_DID_CREATED_AT_IDX index, OPENDATA_DID_STATE_IDX index, OPENDATA_DID_STATE_UPDATED_AT_IDX index, dids_opendata_doi table, OPENDATA_DOI_UPDATED_AT_IDX index, OPENDATA_DOI_CREATED_AT_IDX index, dids_opendata_meta table. (Alembic revision a62db546a1f1)

Moreover, any SQLAlchemy connection URLs (that previously looked like oracle://user:pass@dsn or oracle+cx_oracle://user:pass@dsn) must be updated to oracle+oracledb://user:pass@dsn. Example update in commit [#6467](https://github.com/rucio/rucio/pull/7760/commits/15db1082abf04a950e705c1087b6db68e2782cd5).

General

Features

  • Authentication & Authorisation: OIDC Token authentication based on WLCG Disovery guideline #7687
  • Replicas: Improve TEMP_UNAVAILABLE replica handling #7666
  • Rules: Record rule error for STUCK rule if rse_expression excludes lock_rse in the meanwhile #7538

Enhancements

  • Database: cx_oracle -> python-oracledb dependency upgrade #6467
  • Database: Do we need the destroy_database.py? #7789
  • Database: Rename drop_everything and destroy_database from rucio.db.sqla.util to better names #7795
  • Database: Support Oracle thick client in Rucio #7907
  • Docker & Kubernetes: Docker & Kubernetes: Add health‑checks to database containers in docker-compose #7909
  • Documentation: Merge Meta and SingleMeta web classes #7779
  • Multi VO: Consider changing how policy package algorithms are registered, in order to avoid having to set them in the config #7405
  • Client: add --csv option to rucio_admin/list_scopes and rucio/list_scopes #7415
  • Better out of the box support for path-like DIDs #7530
  • Opendata support in Rucio #7559
  • Upgrade Typing Extensions dependency to 4.14.0 #7809
  • Missing Opendata oracle schema #7885
  • Policies: Support slashes / by default in DID names #7691
  • REST & API: Remove legacy rule endpoints #7813
  • REST & API: API: meta endpoint should be removed in release 38 #7821
  • Testing: docker_activate_rses: migrate to new CLI syntax #7892

Bugs

  • Documentation: Incorrect rendering of DiracClient docstring #7822
  • Missing analog for list-datasets-rse #7801
  • REST & API: It seems like fileclient.py is not usable #7846
  • Testing: TEMPORARY_UNAVAILABLE missing from generic and generic_multi_vo schema REPLICA_STATE #7787
  • Testing: skip_missing_elasticsearch_influxdb_in_env tests are being skipped even in influxdb_elastic contexts? #7869
  • Testing: Fix test_hermes, which was not being run properly due to #7869 #7872

Clients

Features

  • Clients: Improve subscription disabling: Can't disable a subscription by setting its lifetime to 0 #7784

Enhancements

  • Clients: Create definition for "error" and "failure" in the CLI #7720

Bugs

  • Clients: Rucio-Admin list-scopes and Rucio list-scopes inconsistent behavoir #7316
  • Clients: Incorrect argument parsing for rucio rule list --account #7562
  • Clients: did content list and did content history do not enforce DID requirement #7674
  • Clients: Cannot filter rules by account without specifying DID #7709