@@ -15,14 +15,16 @@ The steps listed in this article require an existing local installation of Inven
15
15
In case you have an InvenioRDM installation older than v12, you can gradually upgrade
16
16
to v12 and afterwards continue from here.
17
17
18
+ !!! read through the whole upgrade steps before upgrading
19
+
18
20
## Upgrade Steps
19
21
20
22
Make sure you have the latest ` invenio-cli ` installed. For InvenioRDM v13, it
21
- should be v1.5 .0+
23
+ should be v1.7 .0+
22
24
23
25
``` bash
24
26
$ invenio-cli --version
25
- invenio-cli, version 1.5 .0
27
+ invenio-cli, version 1.7 .0
26
28
```
27
29
28
30
!!! info "Virtual environments"
@@ -50,17 +52,20 @@ running `invenio-cli` or `pipenv` commands below.
50
52
51
53
Python 3.9 or 3.11 or 3.12 is required to run InvenioRDM v12.
52
54
55
+ Note: endoflife of python3.9 will be 31. October 2025. There will be no
56
+ python3.9 related updates done after that date.
57
+
53
58
There are two options to upgrade your system:
54
59
55
60
#### Upgrade option 1: In-place
56
61
57
62
This approach upgrades the dependencies in place. Your virtual environment for the
58
- v11 version will be gone afterwards.
63
+ v12 version will be gone afterwards.
59
64
60
65
``` bash
61
66
cd < my-site>
62
67
63
- # Upgrade to InvenioRDM v12
68
+ # Upgrade to InvenioRDM v13
64
69
invenio-cli packages update 13.0.0
65
70
66
71
# Re-build assets
@@ -69,7 +74,7 @@ invenio-cli assets build
69
74
70
75
#### Upgrade option 2: New virtual environment
71
76
72
- This approach will create a new virtual environment and leaves the v11 one as-is.
77
+ This approach will create a new virtual environment and leaves the v12 one as-is.
73
78
If you are using a docker image on your production instance this will be the
74
79
option you choose.
75
80
@@ -124,6 +129,11 @@ invenio alembic upgrade
124
129
125
130
Execute the data migration:
126
131
132
+ ``` bash
133
+ invenio shell $( find $( pipenv --venv) /lib/* /site-packages/invenio_app_rdm -name migrate_12_0_to_13_0.py)
134
+ ```
135
+
136
+
127
137
### Configuration change for ` nginx `
128
138
129
139
The new PDF file previewer is based on ` pdfjs-dist ` v4, which uses ECMAScript modules (` .mjs ` ) over CommonJS files (` .js ` ).
@@ -143,7 +153,25 @@ types {
143
153
}
144
154
```
145
155
146
- ### TODO
156
+ ### if you plan to use ` APP_RDM_DEPOSIT_NG_FILES_UI_ENABLED `
157
+
158
+ you have to add following
159
+
160
+ ```
161
+ "script-src": [
162
+ "'self'", "blob:", "'wasm-unsafe-eval'" # for WASM-based workers, e.g. hash-wasm
163
+ ],
164
+ ```
165
+
166
+ in the ` invenio.cfg ` file to the
167
+
168
+ ```
169
+ APP_DEFAULT_SECURE_HEADERS = {
170
+ "content_security_policy": {}
171
+ }
172
+ ```
173
+
174
+ configuration.
147
175
148
176
### New Index Template for Job Logs
149
177
@@ -181,21 +209,11 @@ curl -X PUT "http://localhost:9200/_index_template/job-logs-v1.0.0" -H "Content-
181
209
182
210
### Rebuild search indices
183
211
184
- TODO if not destroying and rebuiliding for names we need to update the mappings:
185
-
186
- ``` bash
187
- invenio index update names-name-v2.0.0 --no-check
188
- ```
189
-
190
- TODO: this is also required to create the mapping for the new ` copyright ` field.
212
+ #### full rebuild
191
213
192
214
``` bash
193
215
invenio index destroy --yes-i-know
194
216
invenio index init
195
- # if you have records custom fields
196
- invenio rdm-records custom-fields init
197
- # if you have communities custom fields
198
- invenio communities custom-fields init
199
217
invenio rdm rebuild-all-indices
200
218
```
201
219
@@ -205,6 +223,17 @@ rather than having indices registered directly in `Invenio-Search`. As such, the
205
223
search indices for statistics are not affected by `invenio index destroy
206
224
--yes-i-know` and are totally functional after the rebuild step.
207
225
226
+ #### possible live update
227
+
228
+ CHECK if that works
229
+ ``` bash
230
+ invenio index update names-name-v2.0.0 --no-check
231
+ ```
232
+
233
+ TODO: this is also required to create the mapping for the new ` copyright ` field.
234
+
235
+
236
+
208
237
### Updated vocabularies
209
238
210
239
InvenioRDM now supports ROR v2, and you should update your affiliations and
@@ -230,8 +259,8 @@ server {
230
259
```
231
260
232
261
### New roles
262
+ nothing yet
233
263
234
- ### TODO
235
264
236
265
### New configuration variables
237
266
@@ -243,21 +272,27 @@ ADMINISTRATION_DISPLAY_VERSIONS = [
243
272
]
244
273
```
245
274
275
+ ### Changed configuration variables
276
+
277
+ - change from ` APP_ALLOWED_HOSTS ` to ` TRUSTED_HOSTS ` due flask >= 3
278
+
279
+
246
280
## Big Changes
247
281
248
282
- feature: invenio jobs module, periodic tasks administration panel
249
283
- feature: invenio vocabularies entries deprecation
250
284
- improvement: search mappings and analyzers to improve performance
251
285
- OpenSearch min version now required v2.12 due to breaking changes in ` geo-shape ` fields, see issue [ here] ( https://github.com/inveniosoftware/invenio-rdm-records/issues/1807 ) and related OpenSearch issue and comment [ here] ( https://github.com/opensearch-project/OpenSearch/issues/10958#issuecomment-2037882756 ) .
252
- - change from ` APP_ALLOWED_HOSTS ` to ` TRUSTED_HOSTS ` due flask >= 3
253
286
- dashboard: ` shared_with_me ` drafts and requests. See [ issue[ (https://github.com/inveniosoftware/docs-invenio-rdm/blob/master/docs/releases/v13/upgrade-v13.0.md )
254
287
- custom fields: thesis subfields renamed (TODO: migration recipe)
255
288
- custom fields: meeting url changed to identifiers subfield (TODO: migration recipe)
256
-
257
- ### TODO
289
+ - experimental: using uv (instead of pipenv), rspack (instead of webpack) and pnpm (instead of npm)
258
290
259
291
Document this error, or actually add it to the upgrade recipe
260
292
293
+
294
+ ## OPEN PROBLEMS
295
+
261
296
```
262
297
opensearchpy.exceptions.AuthorizationException: AuthorizationException(403, 'security_exception', 'no permissions for [cluster:admin/component_template/put] and User [name=inveniordm-qa, backend_roles=[], requestedTenant=null]')
263
298
@@ -270,6 +305,6 @@ Go to OpenSearch Dashboards -> Security -> Roles -> <instance name>, edit role a
270
305
- ` cluster:admin/component_template/put `
271
306
- ` indices:admin/index_template/put `
272
307
273
- ## OPEN PROBLEMS
274
308
275
- ### TODO
309
+ ## OPEN PROBLEMS
310
+ nothing yet
0 commit comments