How to contribute

How does it work

Kaji is downstream to Debian, just like Ubuntu. The packages listed here in packages/ contain 2 branches: * master, which tracks the Debian package on Alioth, * kaji, which adds our patches.

With a correct remote set up to track Alioth, it’s easy to get the last Debian version of the package, and by rebasing kaji on master from time to time, it’s easy to upgrade our Kaji packages.

Here’s a well set-up configuration for the package shinken-mod-livestatus:

$ git remote -v
origin    git@github.com:kaji-project/shinken-mod-livestatus.git (fetch)
origin    git@github.com:kaji-project/shinken-mod-livestatus.git (push)
upstream https://alioth.debian.org/anonscm/git/pkg-shinken/shinken-mod-livestatus.git (fetch)
upstream https://alioth.debian.org/anonscm/git/pkg-shinken/shinken-mod-livestatus.git (push)

Workflows

Get dev environment

To get dev environment, you need to clone the keji-project repository and all submodules:

$ git clone git@github.com:kaji-project/kaji-project.git --recursive
$ cd meta
$ ./tools/add_upstream_branches.sh
$ make dev_env

Add a package

Create repo MY-PACKAGE on GitHub and on openSUSE Build Service

$ git submodule add git@github.com:kaji-project/shinken-mod-influxdb.git packages/shinken-mod-influxdb
$ cd packages/shinken-mod-influxdb
$ git remote add upstream https://alioth.debian.org/anonscm/git/pkg-shinken/shinken-mod-influxdb.git
$ git fetch --all
$ git reset --hard  upstream/master
$ git push -u origin master
$ git checkout -b kaji
$ export QUILT_PATCHES=debian/patches
$ quilt push -a

Do your modifications, be sure to use quilt, commit them

$ quilt pop -a
$ export DEBFULLNAME='Your name'
$ export DEBEMAIL='yourem@il.address'
$ dch [--no-auto-nmu]

Be sure to use a correct version number and to describe your changes.

$ git push origin kaji

Then commit the submodule on the meta repository

$ cd ../..
$ git submodule add git@github.com:kaji-project/shinken-mod-influxdb.git packages/shinken-mod-influxdb
$ git add packages/shinken-mod-influxdb
$ git commit -m "Add shinken-mod-influxdb repo"
$ git push origin master

Add the upstream repository in file tools/add_upstream_branches.sh like this:

# shinken-mod-influxdb
cd ${BASEDIR}/packages/shinken-mod-influxdb
git remote add upstream https://alioth.debian.org/anonscm/git/pkg-shinken/shinken-mod-influxdb.git

Get a new package (new submodule)

If you already have the meta repository and you need to get a new submodule:

$ git submodule update --init packages/NEWSUBMODULE

Update a package

Sync a package (submodule) with the new upstream (debian) version. Example with Shinken:

$ cd packages/shinken
$ git remote add upstream https://alioth.debian.org/anonscm/git/pkg-shinken/shinken.git
$ git checkout master
$ git fetch --all
$ git reset --hard upstream/master
$ git push origin master
$ git checkout kaji
$ git merge master
$ git push origin kaji

Then commit the submodule on the meta repository

$ cd ../..
$ git add packages/shinken
$ git commit -m "Update Shinken repo"
$ git push origin master

Build packages

All packages

$ make packages

One specific package

If you want to build only one package (ie adagios)

$ tools/make-packages.sh adagios

Send packages to openSUSE Build Service

All packages

$ make obs

One specific package

If you want to send to OBS only one package (ie adagios)

$ tools/update-obs-packages.sh adagios