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
, andpath/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) topython-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:
- 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 revisiona62db546a1f1
)
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
anddestroy_database
fromrucio.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
andSingleMeta
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 fromgeneric
andgeneric_multi_vo
schemaREPLICA_STATE
#7787 - Testing:
skip_missing_elasticsearch_influxdb_in_env
tests are being skipped even ininfluxdb_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
anddid content history
do not enforce DID requirement #7674 - Clients: Cannot filter rules by account without specifying DID #7709