Skip to content

InvenioRDM v13.0

Draft

DATE

Try it

What's new?

to complete

TODO: the quota feature has not been documented. It should be added, with a screenshot of the admin panel.

Jobs and ORCID/ROR

Explain about jobs and ORCID/ROR jobs.

Related new doc page.

Search improvements

Related new doc page.

Easier to find records with accents or other non-standard characters, also searching by DOIs PR Users can be found with partial matches PR Searches like Universitatea "Dunărea de Jos” din Galați now work PR

BREAKING -> mapping changes, create new indices

Names Vocabulary

TODO Names listing endpoint is now restricted to authenticated users, names can be "unlisted" not showing anymore in the search result for non-admin users

Collections

Collections are a "big" feature added to v13.

!!!warning Collections require new database tables, therefore its migration recipes must be executed (invenio db upgrade or similar)

A collection serves as a curated set of records that are grouped based on a specific filter or query, displayed on a dedicated page, introducing a new way of organizing records within a community. For instance, a collection can be defined within a community to highlight records sharing common attributes, like funding programs or specific categories.

Collections are stored in the Database and each collection defines a search query string that is used to fetch each collection records. Find more information in the RFC.

Optional DOI

DOIs can now be configured as optional. Describe the feature.

How to create a collection for a community

Currently collections are created using a python shell (invenio shell)

Requirements:

  • A community.
  • A collection tree that acts as the "root" node of the collection.

If you do not have a collection tree, start by creating one:

from invenio_rdm_records.collections.api import CollectionTree

ctree = CollectionTree.create(
    title="Programs", order=10, community_id="<community_uuid>", slug="programs"
)

The order parameter controls the order that trees are rendered in the UI.

Create a collection under programs:

from invenio_rdm_records.proxies import current_rdm_records
from invenio_access.permissions import system_identity

collections_service = current_rdm_records.collections_service

# Use another identity if needed
identity = system_identity

# Desired community ID
community_id = "9d0d45ce-0ea9-424a-ab17-a72215b2e8c3"

collection = collections_service.create(
        identity,
        community_id,
        tree_slug="programs",
        slug="h2020",
        title="Horizon 2020",
        query="metadata.funding.program:h2020",
        order=10
    )

For nested collections, the add service method can be used:

h2020 = collections_service.read(
    identity, community_id=community_id, tree_slug='programs', slug='h2020'
)

open_records = collections_service.add(
        identity,
        collection=h2020._collection,
        slug="h-open-records",
        title="Horizon 2020 (Open records)",
        query="access.record:public",
        order=20
    )

All the service methods that create collections also implements the Unit of Work pattern, so it can used if transactional consistency is needed.

The created collections can be accessed at:

  • https://127.0.0.1:5000/communities//collections/h2020
  • https://127.0.0.1:5000/communities//collections/h-open-records

Adjust the URL and community_slug as needed.

An overview of all the collections can be found in the community browse page (if enabled):

  • https://127.0.0.1:5000/communities//browse

Miscellaneous additions

Here is a quick summary of the myriad other improvements in this release:

  • The creators' roles are now displayed PR
  • You can now see and show the version of InvenioAppRDM and any other module Issue Change the config ADMINISTRATION_DISPLAY_VERSIONS = [("invenio-app-rdm", f"v{version}")] and append to the list the version you want to display.
  • The users API endpoint is now protected, in order to access the list of users it's required to be logged in.
  • Custom awards: relaxed required fields (see PR)
  • ...and many more bug fixes!

Breaking changes

  • fill me in

Limitations and known issues

  • fill me in

Requirements

InvenioRDM v13 now supports:

  • Python 3.9, 3.11 and 3.12
  • Node.js 18+
  • PostgreSQL 12+
  • OpenSearch v2

Notably, older versions of Elasticsearch/Opensearch, PostgreSQL, and Node.js have been phased out.

Upgrading to v13.0

We support upgrading from v12 to v13. See the upgrade guide for how.

Questions?

If you have questions related to these release notes, don't hesitate to jump on discord and ask us!

Credit

The development work of this impressive release wouldn't have been possible without the help of these great people:

  • CERN: Alex, Anna, Antonio, Javier, Jenny, Karolina, Lars, Manuel, Nicola, Pablo G., Pablo P., Zacharias
  • Northwestern University: Guillaume
  • TU Graz: Christoph, David, Mojib
  • TU Wien: Max
  • Uni Bamberg: Christina
  • Uni Münster: Werner
  • Front Matter: Martin
  • KTH Royal Institute of Technology: Sam
  • Caltech: Tom