InvenioRDM Alpha 10 (August Release)

We are glad to announce InvenioRDM Alpha 10 (August release)!

What’s new?

With less resources than usual, we made some limited changes this month. However, three areas were tackled.

  • The concurrent Invenio Sprint brought the final Semantic-UI updates across
    all modules! If something does not show up right in your default RDM
    instance, then it’s a legitimate bug now :grin: .
  • These UI updates complement the updates to Search. The record search page
    now uses the new API endpoint from the last release. Customization of the
    search results is back (with documentation forthcoming). Different search
    pages are easier to setup.
  • More library improvements across the board were merged.

Update invenio-cli to version 0.16.0 and follow the updated documentation to get started.

Semantic-UI transition wrap-up


One of the many pages that were transitioned to Semantic-UI

The transition to Semantic-UI is for all intent and purposes complete. Future additions will use this framework and have a consistent look with the rest of InvenioRDM. Close to 15 styling issues were closed in the process.

Search customization and transition to new API

The search page now uses the new API (/api/rdm-records endpoint) we introduced in the last release. The new endpoint supports pagination and sorting, but aggregations were disabled to focus on the transitioning only.

Aggregations will be re-enabled soon.

Custom styling of search results is possible again: documentation to explain the new way is pending however.

Library improvements

Finally, various improvements and fixes were made across modules including:

  • an overhaul to how links are generated in API responses,
  • a way to hook callbacks into action endpoints,
  • the convergence of validation for drafts and records, and
  • the introduction of record versioning behind the scenes
    (which will be made more visible in coming releases).

Some of these changes are visible in the API responses:

{
    "links": {
        "self": "https://127.0.0.1/api/rdm-records/jnmmp-51n47",
        "self_html": "https://127.0.0.1/records/jnmmp-51n47",
        "files": "https://127.0.0.1/api/rdm-records/jnmmp-51n47/files",
        "edit": "https://127.0.0.1/api/rdm-records/jnmmp-51n47/draft"
    },
    "metadata": {
         "conceptrecid": "5fk5g-mq814",
         ...
    },
    ...
}

What do you need to do?

You can install the latest invenio-cli v0.16.0, create a new instance and see how it looks like. Make sure to follow the updated documentation - there are couple of caveats to be made aware of.

Install (TL;DR)

If you previously installed InvenioRDM, make sure you have the latest Docker image of your choice according to the Python version:

docker pull inveniosoftware/centos7-python:3.6
docker pull inveniosoftware/centos8-python:3.7
docker pull inveniosoftware/centos8-python:3.8

To install:

pip install --upgrade invenio-cli
invenio-cli init rdm
cd my-site
invenio-cli containerize --pre
invenio-cli demo --containers

To destroy the Python virtualenv, and remove the docker containers run:

cd my-site
pipenv --rm
docker-compose -f docker-compose.full.yml down

Feedback

As always, we welcome your feedback. When you reply to this post your message should be pre-populated with the classic template (bugs, what worked well, what didn’t work well, wishes for documentation).

Here is the template to give feedback if it’s not automated:

## Bugs

## What worked well

## What didn't work well

## Wishes for documentation

Take care and stay safe! The next release will be big.

Thanks for all the work and the new release! :smiley:

Bugs

When trying to access /admin (after assigning myself the admin role), I get an error:
flask_webpackext.errors.ManifestKeyNotFoundError: Key theme-admin.css not found in manifest.json

What worked well

Creation and publication of a draft/record via the new rdm-records API works

What didn’t work well

The /search UI has a few issues: the login button suddenly seems to be placed in a new line, the results look a bit off-center (slightly to the right) and the filter column is gone
When creating a new community with an ID containing upper-case characters, issues arise: e.g. the immediate response {“status”: 404, “message”: “PID does not exist.”}, and the creator isn’t added as member (and clicking on “Join this community” has no effect; the generated request also gets a 404 response)

Wishes for documentation

Thanks @max-moser for checking it out!

To confirm a couple of things:

I made an issue for the admin bug: key theme-admin.css not found in manigest.json · Issue #207 · inveniosoftware/invenio-theme · GitHub . If you have more details feel free to add.

Search UI: As mentioned

the search facets were disabled for this release, just so that we could focus on moving to the new API. I am probably working on this today…

The username dropdown is something I encountered as well. I suspect it’s the length of the username + the excessive padding: styles: long email puts user dropdown in header on next line · Issue #267 · inveniosoftware/invenio-app-rdm · GitHub . Perhaps it’s not just my name :wink:

For this:

on the new community page, if you don’t use upper-case characters, does it work? (as in: is the issue just with the upper-case characters or in general?)

And for that:

would you mind creating a ticket for that one here: Sign in to GitHub · GitHub just so that we have the steps right?
@aioannid does that ring a bell?

Thanks for reporting these!

Bugs

In the upload landing page, the upload button present the deposit form without authentication.
If the user is not authenticated should be redirected to the login page when selecting the upload button.
Other bugs encountered already reported in the RDM telecom.

While the communities features are not part of the release I was able to start playing with the membership request. I was able to create an invitation request but email or notification appeared not to be sent. However the invitation is marked as a pending request.

A request to be a member of the community by an existing user was also created. The admin of the community can see the request but buttons are not yet enabled to reject or accept the request.

Looking at the language menu it does not appear to be affecting the language of the landing pages. Only the footer. Not sure if this is expected.

What worked well

I have able to reinstall the local installation via Invenio-cli and this worked just fine.

Hi, I have finally had some time to test.

Bugs

Marshmallow-utils version problem

During “invenio-cli containerize --pre” I got this:

ERROR: Could not find a version that matches marshmallow-utils<0.3.0,>=0.2.0,>=0.2.1,~=0.1.6 (from -r /tmp/pipenv1905pfzhrequirements/pipenv-5rslpl34-constraints.txt (line 3))
Tried: 0.1.0, 0.1.0, 0.1.1, 0.1.1, 0.1.2, 0.1.2, 0.1.3, 0.1.3, 0.1.4, 0.1.4, 0.1.5, 0.1.5, 0.1.6, 0.1.6, 0.2.0, 0.2.0, 0.2.1, 0.2.1
There are incompatible versions in the resolved dependencies:
  marshmallow-utils~=0.1.6 (from -r /tmp/pipenv1905pfzhrequirements/pipenv-5rslpl34-constraints.txt (line 3))
  marshmallow-utils<0.3.0,>=0.2.0 (from invenio-records-resources==0.6.5->-r /tmp/pipenv1905pfzhrequirements/pipenv-5rslpl34-constraints.txt (line 7))
  marshmallow-utils<0.3.0,>=0.2.1 (from invenio-rdm-records==0.20.3->-r /tmp/pipenv1905pfzhrequirements/pipenv-5rslpl34-constraints.txt (line 13))

I removed marshmallow-utils~=0.1.6 from the Pipfile to be able to proceed.

Other

  • Celery worker restarting all the time - I guess it is related to invenio-app-rdm/issues/226
  • I also had the errors on Admin pages, as reported before (flask_webpackext.errors.ManifestKeyNotFoundError: Key theme-admin.css not found in manifest.json)
  • On the plain demo setup, I created one community. When accessing it, I get a 500 (KeyError: 'recid')

The worker container is not working in the default setup,

What worked well

The install (except for the above bug) and ingestion of demo data.

What didn’t work well

Wishes for documentation

  • Explanation about user/superuser creation would make sense in the rdm docs. Or if it is created by the demo data, the default credentials should be listed.
  • I wanted to put this into our current tools/infrastructure. A bit more high-level docs on best practices and “architecture” would be great. I think we can also help here.