Skip to content
forked from equinor/komodo

Komodo is a software distribution system used internally in Equinor

License

Notifications You must be signed in to change notification settings

andreas-el/komodo

 
 

Repository files navigation

Komodo

Build Status

Software Innovation Bergen Software Distribution

Komodo is a software distribution system.

The purpose of Komodo is to be able to automatically, reproducibly, testably create a software distribution. Automatic deploy of new releases as well as nightly deploy and the option of automatically moving the testing stage will be supported.

Overall goal

We have a repository of packages. Each package contains

  • a list of versions
  • dependencies
  • source
  • build information
  • maintainer information

The repository.yml may look like this:

ert:
  version: 2.17
  source: pypi
  make: pip
opm-parser:
  version: 1.2.0
  depends:
    - ecl
    - boost
  git: [email protected]:opm/opm-parser
ecl:
  version: 2.3
  git: [email protected]:equinor/ecl

Then a release, e.g. unstable is defined as another YAML file, e.g. unstable.yml, containing

boost: 1.60
opm-parser: 1.2.0
ecl: 2.3

A full software distribution can then be built and deployed to a specified path, e.g. /my/software/center/unstable.

To use, source /my/software/center/unstable/enable.

Auto-formatting configuration files

You can auto-format repository and/or releases by running something like

komodo-clean-repository prettier --files repository.yml releases/*

If you are in e.g CI and only want to check style compliance, add --check.

Finding reverse dependecies

You can show reverse dependencies of a package by running the tool komodo-reverse-deps:

komodo-reverse-deps releases/matrices/2022.09.02.yml repository.yml --pkg websockets

If --pkg is not specified, the program will prompt for it.

Render graph

Can also output a graph of the reverse dependencies in dot format which can then be rendered using the dot program from the ImageMagick package. As a convenience can also render it automatically using dot and display. To use this convenience you must have installed these tools, which are distributed with the Graphviz and ImageMagick packages.

Install

pip install git+https://github.com/equinor/komodo.git

Run tests

git clone https://github.com/equinor/komodo.git
cd komodo
pip install -r dev-requirements.txt
pytest tests

About

Komodo is a software distribution system used internally in Equinor

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 82.9%
  • Shell 11.2%
  • Groovy 5.9%