Skip to content

oarepo/oarepo-cli

Repository files navigation

oarepo-cli

Work in progress.

Repository project initialization

Download the file from https://raw.githubusercontent.com/oarepo/oarepo-cli/v11.0/nrp-installer.sh, inspect it (always a good practice) and run bash nrp-installer.sh <project_dir>

Roadmap

NRP client is meant to simplify:

Site:

  • get script for automatic installation
  • checking invenio prerequisites
  • bootstraping new repository site in development mode
    • in 1 git contains all mode
    • in per-model, per-ui git submodule mode
  • including UI (webpack) compilation and collection of static assets
  • running development server
  • initialization when oarepo-initialize is used on existing sources
    • create virtualenvs
    • setup db if not set up
    • setup indices if not set up

Metadata model:

  • adding metadata model
  • testing metadata model
  • installing metadata model into the site
  • updating alembic during the installation step
    • handling empty migrations when model has not changed
  • initializing index during the installation step and reindexing data
  • importing (sample) data
  • proxied models (that is, model that is built on index alias)

Requests:

  • installing requests
  • adding request type & actions
    • using approval process libraries

Expanded fields:

  • installing support for expanded fields
  • adding expanded fields
    • using libraries of expanded fields

Files:

  • installing support for files

Custom fields:

  • installing support for custom fields

Relations:

  • installing support for relations

User interface for a metadata model:

  • adding UI module
  • generating initial UI layout from model
  • installing UI module to the site
  • scaffolding UI component (jinja and react)
  • UI on proxied models

Automated testing:

  • running unit tests for models
    • per-model tests
    • running tests for all models
  • unit tests for UI
    • per-ui tests
    • running tests for all models
  • running tests for site
    • overall tests (can run server, https on index page works)
    • per-ui tests (ui is accessible, returns meaningful pages)

Build and Deployment scenarios:

  • publishing packages to pypi/gitlab/...

    • in monorepo mode (single pypi package from all components)
    • in per-model, per-ui package mode
  • creating docker/k8s image for the whole site

Github/Gitlab integration:

  • support github actions
  • support gitlab CI/CD