Migrations & Updates
In oarepo-app v4.0.0, CCMM dependencies were moved to a separate optional dependency extra. Repositories that use CCMM must enable the ccmm extra explicitly.
| Affected | Not affected |
|---|---|
| Repositories using CCMM | Repositories not using CCMM |
Repositories upgrading to oarepo-app >= 4.0.0 | Repositories using older oarepo-app versions |
Show migration steps
Update pyproject.toml
In pyproject.toml, update the oarepo-app dependency extra from production to production,ccmm.
Before:
dependencies = [
"oarepo-app[production]==4.0.0",
]After:
dependencies = [
"oarepo-app[production,ccmm]==4.0.0",
]Run ./run.sh upgrade to update the lock file.
This breaking change introduces the oarepo-app library in version 2.3.0. This release includes all Invenio changes released before 2026-05-01, including the introduction of CCMM vocabularies.
| Affected | Not affected |
|---|---|
| Repositories created before 2026-05-11 | Repositories created after 2026-05-11 |
Repositories using oarepo-app <= 2.3.0, or not using oarepo-app at all | --- |
Show migration steps
Update pyproject.toml
- In
pyproject.toml, remove alloarepo-*dependencies and replace them with the newoarepo-applibrary. Do not remove theoarepo[s3,rdm]dependency.
Before:
dependencies = [
"oarepo[s3,rdm]>=14.0.0,<14.1.9",
"oarepo-runtime>=2.0.0dev0,<3.0.0",
"oarepo-ui>=7.0.0dev0,<8.0.0",
...
]After:
dependencies = [
"oarepo[s3,rdm]>=14.2.1b10.dev6,<15.0.0",
"oarepo-app[production]==2.3.0", # <---- here
]- Update the version of the
oarepolibrary:
dependencies = [
"oarepo[s3,rdm]>=14.2.1b10.dev6,<15.0.0", # <---- here
"oarepo-app[production]==2.3.0",
]- Make sure you use Python 3.14 in the
requires-pythonsection.
requires-python = ">=3.14,<3.15"-
Remove the top-level
package.jsonif it exists. -
Run
./run.sh upgradeto update the lock file. -
Run
./run.sh resetto reset your local instance because of the CCMM vocabularies. -
If you have sample data, you will need to update it to use CCMM vocabularies. See your
https://127.0.0.1:5000/vocabularieswhich values are permitted.For example:
- Change the resource type ID from
datasettoc_ddb1. - Change the
createdtime reference toCreated(capitalized first letter). - Change the
cc0-1.0license toCC0-1.0(capitalizedCC).
- Change the resource type ID from
For inspiration, see invenio-fzu PR #22
If you are already running a production instance, please contact us first.
Make sure you have run the older migrations first.
oarepo-ui v7.0+ package requires base template files in your model’s UI module. These templates must extend the oarepo-ui base templates. See Record landing page documentation for the complete template inheritance flow.
| Affected | Not affected |
|---|---|
| Model UIs created before 2026-02-18 | Model UIs generated after 2026-02-18 |
| Using default templates | Custom page templates configured |
| oarepo-ui >= 7.0 | older versions |
Show migration steps
Option 1: Use model update (Recommended)
Run the model update command from your repository root:
./run.sh model update <model_name>Option 2: Create files manually
If you prefer not to use model update, you can create the required template files manually in ui/mymodel/templates/semantic-ui/mymodel/. See the model copier template for the complete list of required files.
Common issues:
TemplateNotFound: mymodel/record_detail.html→ Create base template file- Partials not showing → Check that
mymodel/record_detail/main.htmlexist