Skip to content

docs: modules dependency management #3997

Description

@slint

To deal with the dependency management of packages that are commonly used across all the Invenio modules, we're moving to a "centralized" approach of managing them in the following fashion:

  • invenio-base: flask (and werkzeug), six
  • invenio-celery: celery and kombu,
  • invenio-i18n: flask-babelex
  • invenio-admin: flask-admin
  • invenio-accounts: flask-login, flask-security, flask-kvsession

So if e.g. invenio-records depends in its install_requires currently on Flask, we should instead change that to a dependency to invenio-base.

There should be a section in the documentation, describing:

  • How exactly we manage these?
  • What is the process of addressing e.g. issues in any of the upstream libraries (e.g. Flask breaking changes)?
  • How do we approach the minimum/pinned versions of the 3rd-party dependencies (i.e. flask, celery, etc.), and for these "centralized" modules (invenio-base, etc.)
  • In extreme scenarios (e.g. when we need a hotfix), what is the way to tackle these?

Note that this is not an entirely new thing, since we've already been doing this for a while with invenio-db and invenio-search for managing SQLAlchemy and Elasticsearch dependencies.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions