diff --git a/docs/releases/upgrading/upgrade-v12.0.0.md b/docs/releases/upgrading/upgrade-v12.0.0.md new file mode 100644 index 00000000..9ed081a0 --- /dev/null +++ b/docs/releases/upgrading/upgrade-v12.0.0.md @@ -0,0 +1,97 @@ +# Upgrading from v11 to v12.0 + +## Prerequisites + +The steps listed in this article require an existing installation of InvenioRDM v11. If you are upgrading from the last LTS, v9.1, please upgrade step-wise to [v10](), then [v11]() and finally [v12](). + +If unsure, run `invenio-cli install` from inside the instance directory before executing the listed steps. + +!!! warning "Backup" + + Always backup your database and files before you try to perform an upgrade. + + +## Upgrade Steps + +!!! warning "Upgrade your invenio-cli" + + Make sure you have the latest `invenio-cli`, for InvenioRDM v12.0.0b1 the release is v1.0.20 + + ```bash + $ invenio-cli --version + invenio-cli, version 1.0.20 + ``` + +!!! info "Virtual environments" + In case you are not inside a virtual environment, make sure that you prefix each `invenio` command with `pipenv run`. + +**Local development** + +Changing the Python version in your development environment highly +depends on your setup, and there is no golden rule. +One example would be to use [PyEnv](https://github.com/pyenv/pyenv). + +You should delete your virtualenv before running `invenio-cli` or `pipenv` commands below. + +!!! warning "Risk of losing data" + + Your virtual env folder contains uploaded files in InvenioRDM, in `var/instance/data`. + If you need to keep such files, make sure you copy them over to the new virtual env in the same location. + +### Upgrade InvenioRDM + +Make sure that your virtual env is now running with Python 3.9. + +Upgrade the RDM version: + +```bash +cd +# Upgrade to InvenioRDM v12 +invenio-cli packages update 12.0.0b1 +pipenv uninstall flask-babelex +# Re-build assets +invenio-cli assets build +``` + +Optionally, update the file `/Pipfile`. Attention: this action might lead to installing unwanted pre-releases of other packages. + +```diff +[packages] +---invenio-app-rdm = {extras = [...], version = "~=11.0.0"} ++++invenio-app-rdm = {extras = [...], version = "==12.0.0b1"} + +[pipenv] +allow_prereleases = true +``` + +### Database migration + +Execute the database migration: + +```bash +# Execute the database migration +invenio alembic upgrade +``` + + +### Declare usage statistics processing queues + +```shell +invenio queues declare +``` + +### Update indices mappings + +```shell +invenio index update communities-communities-v1.0.0 +invenio index update rdmrecords-drafts-draft-v5.0.0 +invenio index update rdmrecords-records-record-v5.0.0 +``` + +### Data migration + +Execute the data migration, note that there is no need to re-index the data: + +```bash +pipenv run invenio shell $(find $(pipenv --venv)/lib/*/site-packages/invenio_app_rdm -name migrate_11_0_to_12_0.py) +``` diff --git a/docs/releases/versions/v12.0/user_moderation.png b/docs/releases/versions/v12.0/user_moderation.png new file mode 100644 index 00000000..950cfdbd Binary files /dev/null and b/docs/releases/versions/v12.0/user_moderation.png differ diff --git a/docs/releases/versions/version-v12.0.0.md b/docs/releases/versions/version-v12.0.0.md new file mode 100644 index 00000000..fde5be08 --- /dev/null +++ b/docs/releases/versions/version-v12.0.0.md @@ -0,0 +1,117 @@ +# InvenioRDM v12.0 + +_2024-07-31_ + +_Long-term support (LTS) release_ + +We're happy to announce the release of InvenioRDM v12.0, the new much anticipated long-term support release! Version 12 will be maintained until at least 6 months following the next long-term support release. This also means that in February 2025, we will retire v9.1, the previous LTS. Visit our [maintenance policy page](../maintenance-policy.md) to learn more. + +## Try it + +- [Demo site](https://inveniordm.web.cern.ch) + +- [Installation instructions](https://inveniordm.docs.cern.ch/install/) + +## What's new? + +A lot is new since the last v11 release. This new version is brimming with new functionality and improvements. We highlight the big changes here and at the end of this page we collate a list of the miscellaneous other improvements. + +### Powerful and reliable record access + +![Share button](../../features/features-walk-through/img/access_request_share_button.png) + +[Giving and requesting access](../../features/features-walk-through/access_requests.md) to records have seen a complete overhaul in this release. Record owners or curators can share them directly with other users or with groups, as well as control whether, who and how access can be demanded. + +![Share modal](../../features/features-walk-through/img/access_requests_tab.png) + + +This provides flexible, yet reliable access control to the records of your instance and can even be done in bulk. + +### Notifications + +![Notifications Setting Menu Entry](../../features/features-walk-through/img/notifications/menu.png "Notification Settings Menu Entry") + +[A notification system](../../features/features-walk-through/notifications.md) has been introduced. Users can now receive email notifications when they are involved in certain activities. For instance, invitations to a community will send an email to the invited party and notify the inviter of the invitee's decision. + + +### Moderations of users and records + +![The moderation actions](./v12.0/user_moderation.png) + +The administration panel now includes a "User management" section to suspend, block and delete users, as well as undo all those actions. +Suspending a user temporarily prevents them from creating records, but lets them appeal their suspension. Blocked users cannot sign in anymore and deleted users are removed from the system. + +Records can also be deleted (with a grace period for appeal or undoing) which empowers administrators to enforce institutional policies and fight spam. + +Bulk versions of these are in the works. + +### Even better previewers +TODO + +### GitHub integration +TODO + + +### Changes from v12.0.0b1 are officialized + +[An interim beta release of v12](../temporary-versions/version-v12.0.0b1.md) was made some months ago and tentatively brought a number of changes. We are happy to report all those changes are present and solidified in v12.0. Of note, those include: + +- Usage statistics compliant with the [MakeDataCount](https://makedatacount.org/) and [COUNTER](https://www.projectcounter.org/) standards +- Option to skip the review process for curators and higher roles of a community +- Record submission and inclusion in multiple communities +- Display and dynamic administration of site banners +- Creation of static pages via the administration panel +- Instance-level configuration to enable metadata-only records and restricted files. +- [New export formats](../../reference/export_formats.md) such as DACT-AP and GeoJSON +- Contributed custom fields that are easy [to enable]((../../reference/metadata/optional_metadata.md)) + +### Miscellaneous additions + +- Introduction of `PAGES_ALLOWED_EXTRA_HTML_ATTRS` and `PAGES_ALLOWED_EXTRA_HTML_TAGS` to allow specific HTML attributes and tags in Pages from [invenio-pages](PAGES_ALLOWED_EXTRA_HTML_TAGS) +- Improvements to the `invenio rdm rebuild-all-indices` command +- Mathematical formulas in a deposit can be rendered on the landing page via `THEME_MATHJAX_CDN = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"` and updated content-secuirty policy headers: add `cdnjs.cloudflare.com` to `APP_DEFAULT_SECURE_HEADERS`. +- Possibility to [add entry to a controlled vocabulary](../../customize/vocabularies/index.md#addupdate-fixtures-command) via the CLI: `invenio rdm-records add-to-fixture` + +## Breaking changes + +- See the [Requirements section](#requirements) below for what underlying requirements are now necessary +- The [react-invenio-deposit module](https://github.com/inveniosoftware/react-invenio-deposit) has been moved to [invenio-rdm-records](https://github.com/inveniosoftware/invenio-rdm-records) + - Any imports should be replaced: `import { ... } from "react-invenio-deposit"` -> `import { ... } from "@js/invenio-rdm-records"` +- Some `Overridable` React component ids may have changed. Verify that your overridden components load +- `RoleNeed` uses the role's `id` instead of the role's `name` +- The `/access/users` API URL has been renamed to `/access/grants` to manage access grants + +## Limitations and known issues +TODO + +## Requirements + +InvenioRDM v12 now supports: + +- Python 3.9, 3.11 and 3.12 +- Node.js 18+ +- PostgreSQL 10+ +- OpenSearch v2 + +Notably older versions of Elasticsearch/Opensearch and Node have been phased out. + +## Upgrading to v12.0 + +We support upgrading from v11 to v12. See the [upgrade notice](../upgrading/upgrade-v12.0.md) for how. + +## Questions? + +If you have questions related to these release notes, don't hesitate to jump on [:simple-discord: discord](https://discord.gg/8qatqBC) and ask questions! + +## 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 diff --git a/mkdocs.yml b/mkdocs.yml index d1ed85b7..a1370fb3 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -195,6 +195,7 @@ nav: - Maintenance policy: releases/maintenance-policy.md - Security policy: releases/security-policy.md - Versions: + - Version v12.0.0: releases/versions/version-v12.0.0.md - Version v11.0.0: releases/versions/version-v11.0.0.md - Version v10.1.0: releases/versions/version-v10.1.0.md - Version v10.0.0: releases/versions/version-v10.0.0.md @@ -261,6 +262,10 @@ markdown_extensions: - pymdownx.highlight - pymdownx.superfences - pymdownx.critic + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg + - toc: permalink: true