Upgrading from Invenio v3.3 to v3.4¶
If you have your instance of Invenio v3.3 already up and running and you would like to upgrade to version v3.4 you don’t need to set up your project from scratch. The goal of this guide is to show the steps to upgrade your project without losing any of your work.
Bootstrap 3 to Semantic UI¶
You can upgrade to Invenio v3.4 without migrating to Semantic UI. However, Invenio v3.4 is deprecating the Bootstrap 3 templates, thus you should already now plan on allocating time for migrating your templates to Semantic UI during 2021.
Pipfile modifications¶
The most important changes that you will have to make are in Pipfile
.
Change the Invenio version:
invenio = { version = ">=3.4.0,<3.5.0", extras = ["base", "auth", "metadata", "files", "postgresql", "elasticsearch7" ]}
Make sure that your database and Elasticsearch version matches your installation. In above example the database is
postgresql
and the Elasticsearch version iselasticsearch7
.Add the following line to
Pipfile
(note that most pytest dependencies are now managed viapytest-invenio
):
[packages]
-Babel = ">=2.4.0"
-Flask-BabelEx = ">=0.9.3"
+lxml = ">=4.3.0,<5.0.0"
[dev-packages]
-check-manifest = ">=0.35"
-coverage = ">=4.4.1"
-Flask-Debugtoolbar = ">=0.10.1"
-isort = ">=4.3"
-mock = ">=2.0.0"
-pydocstyle = ">=2.0.0"
-pytest = ">=3.3.1"
-pytest-cov = ">=2.5.1"
-pytest-invenio = ">=1.2.1,<1.3.0"
-pytest-mock = ">=1.6.0"
-pytest-pep8 = ">=1.0.6"
-pytest-random-order = ">=0.5.4"
-pytest-runner = ">=3.0.0,<5"
-Sphinx = ">=1.5.1"
+pytest-invenio = ">=1.4.1,<1.5.0"
+Sphinx = ">=3,<4"
Add the following line to your
config.py
file:
APP_THEME = ['bootstrap3']
Remove your
Pipfile.lock
file and run ./scripts/bootstrap
Celery 5.0.x¶
Following is only applicable if you use Celery 5.0.x.
First check which version of Celery you use by running
pipenv run pip freeze | grep ^celery
.Apply the following changes to
scripts/server
:
-pipenv run celery worker -A invenio_app.celery -l INFO & pid_celery=$!
+pipenv run celery -A invenio_app.celery worker -l INFO & pid_celery=$!
Apply the following changes to
docker-compose.full.yml
:
- command: ["celery worker -A invenio_app.celery --loglevel=INFO"]
+ command: ["celery -A invenio_app.celery worker --loglevel=INFO"]