Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents


Overview

The Ariane distribution manager will help you to clone all necessary git projects and build a distribution.

This tool is available by cloning the following git repository : 

Code Block
themeRDark
git clone https://github.com/echinopsii/net.echinopsii.ariane.community.distrib ariane.community.distrib

Developers considerations

Environment requirements

The tools needed by the distribution manager are the one you'll need for you day to day like working on Ariane so we advise you to install them.

To execute the Ariane distrib tool you need the following :

  • a Linux or OS.X environment (not tested in other OS currently)
  • python 3.3 in your path
  • pip3 or python3-pip
  • .... in order to install requests (http://docs.python-requests.org/en/latest/ - pip3 install requests)
  • git and maven in you path

Ariane repos fork

You don't need to fork all the Ariane git repositories as the Ariane distrib tool can do that for you. The only fork you need is the Ariane Distribution tool from github or stash.

Then execute the Ariane Distrib tool as you'll do for a Ariane distrib cloned repo and the tool will fork the other Ariane repositories for you. 

You'll be then able to provide us the pull requests you want on the Ariane project. 

DevOps / QA team considerations

Some time you don't want to install all the developpers tools to build your own Ariane distrib. Therefore we're now providing a docker image where the development pre-requisites are installed and from where you can clone and build a fresh Ariane Distrib from the Ariane master git repositories.

First of all you need docker installed on your system. Then, on some working directory :

Code Block
themeRDark
$ wget https://raw.githubusercontent.com/echinopsii/net.echinopsii.docker.base/master/ariane.buildenv/ariane.buildenv ; chmod 755 ariane.buildenv

Then you need a directory where to push the Ariane builds. Let's call it now $ARIANE_BUILDS and finally you can use ariane.buildenv to build Ariane distribution. 

Some examples : 

Code Block
titleget Ariane distrib tool help
themeRDark
collapsetrue
./ariane.buildenv $ARIANE_BUILDS "-h"
Unable to find image 'echinopsii/ariane.buildenv:latest' locally
Pulling repository echinopsii/ariane.buildenv
20566b1479c0: Download complete 
3cb35ae859e7: Download complete 
41b730702607: Download complete 
fc00109c41f7: Download complete 
75379c09b3a1: Download complete 
3ab5bcb921bb: Download complete 
78b4c25f2387: Download complete 
64c50474b2d8: Download complete 
a31eb30334b9: Download complete 
2e6152119468: Download complete 
b891d8f73917: Download complete 
8965896641d8: Download complete 
3030b1338139: Download complete 
56a62a5b2e74: Download complete 
2a8da91523f4: Download complete 
9cea0c5c4545: Download complete 
88a31d170ac7: Download complete 
9ae98daa6692: Download complete 
66e0f65382de: Download complete 
61ed984b1d5b: Download complete 
8af668ebb2b6: Download complete 
5d26e980e9a5: Download complete 
Status: Downloaded newer image for echinopsii/ariane.buildenv:latest
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
From http://stash.echinopsii.net/scm/ariane/ariane.community.distrib
   1ecd674..ead4277  master     -> origin/master
 * [new tag]         0.6.2      -> 0.6.2
Updating 1ecd674..ead4277
Fast-forward
 .gitignore                                         |  2 ++
 commands/DistribCmd.py                             |  3 ++
 commands/PluginCmd.py                              |  5 ++-
 .../distrib/ariane.community.distrib-0.6.2.json    | 10 ++++++
 .../ariane.community.distrib-master.SNAPSHOT.json  |  2 +-
 .../maven/pom-ariane.community.distrib-0.6.2.xml   | 22 +++++++++++++
 ...om-ariane.community.distrib-master.SNAPSHOT.xml |  4 +--
 .../ariane.community.plugins-distrib-0.6.2.json    |  3 ++
 resources/plugins/ariane.community.plugins.json    |  4 +++
 .../sources/ariane.community.git.repos-0.6.2.json  | 38 ++++++++++++++++++++++
 ...e.community.git.repos-main-master.SNAPSHOT.json |  8 ++---
 .../configuration/serviceability.community.xml     |  5 +++
 tools/Packager.py                                  | 11 +++++--
 13 files changed, 106 insertions(+), 11 deletions(-)
 create mode 100644 resources/distrib/ariane.community.distrib-0.6.2.json
 create mode 100644 resources/maven/pom-ariane.community.distrib-0.6.2.xml
 create mode 100644 resources/plugins/ariane.community.plugins-distrib-0.6.2.json
 create mode 100644 resources/sources/ariane.community.git.repos-0.6.2.json
usage: distribManager.py [-h] [-s SLACK]
                         {pluginmgr,pluginpkgr,distmgr,distpkgr} ...
Ariane distribution manager
positional arguments:
  {pluginmgr,pluginpkgr,distmgr,distpkgr}
                        sub commands help summary
    pluginmgr           [-h] (-l | -la plugin_name | -ld distribution_version)
    pluginpkgr          [-h] name version distrib_version
    distmgr             [-h] (-d distribution_version | -l)
    distpkgr            [-h] version
optional arguments:
  -h, --help            show this help message and exit
  -s SLACK, --slack SLACK
                        Slack url for notification

Code Block
titlebuild Ariane Core distrib
themeRDark
collapsetrue
./ariane.buildenv $ARIANE_BUILDS "distpkgr 0.6.2"
 
....
 
[INFO] Reactor Summary:
[INFO] 
[INFO] Ariane Community Installer ......................... SUCCESS [  0.435 s]
[INFO] Ariane Community Installer Tools ................... SUCCESS [  7.357 s]
[INFO] Ariane Community Messaging Parent .................. SUCCESS [  0.025 s]
[INFO] Ariane Community Messaging : Pattern MoM API ....... SUCCESS [ 14.666 s]
[INFO] Ariane Community Messaging : Pattern MoM RabbitMQ impl SUCCESS [  9.618 s]
[INFO] Ariane Community Core IDM Parent ................... SUCCESS [  0.032 s]
[INFO] Ariane Community Core IDM Base ..................... SUCCESS [ 11.000 s]
[INFO] Ariane Community Core Portal Parent ................ SUCCESS [  0.028 s]
[INFO] Ariane Community Core Portal Web Resources ......... SUCCESS [  0.322 s]
[INFO] Ariane Community Core Portal Base .................. SUCCESS [ 11.153 s]
[INFO] Ariane Community Core Portal IDM WebApp Tooling .... SUCCESS [ 11.989 s]
[INFO] Ariane Community Core Portal WebApp Tooling ........ SUCCESS [  6.830 s]
[INFO] Ariane Community Core Portal WebApp Bundle ......... SUCCESS [  5.747 s]
[INFO] Ariane Community Core Directory Parent ............. SUCCESS [  0.027 s]
[INFO] Ariane Community Core Directory Base ............... SUCCESS [ 10.730 s]
[INFO] Ariane Community Core Directory WebApp Tooling ..... SUCCESS [ 15.294 s]
[INFO] Ariane Community Core Injector Parent .............. SUCCESS [  0.028 s]
[INFO] Ariane Community Core Injector Base ................ SUCCESS [  8.370 s]
[INFO] Ariane Community Core Injector Messaging ........... SUCCESS [  8.461 s]
[INFO] Ariane Community Core Injector WebApp Tooling ...... SUCCESS [  6.820 s]
[INFO] Ariane Community Core Mapping Parent ............... SUCCESS [  0.047 s]
[INFO] Ariane Community Core Mapping DS ................... SUCCESS [  0.024 s]
[INFO] Ariane Community Core Mapping DS API ............... SUCCESS [ 10.871 s]
[INFO] Ariane Community Core Mapping DS Mapper DSL ........ SUCCESS [ 51.183 s]
[INFO] Ariane Community Core Mapping DS Blueprints Implementation SUCCESS [ 10.719 s]
[INFO] Ariane Community Core Mapping DS Runtime Injection Manager SUCCESS [ 10.336 s]
[INFO] Ariane Community Core Mapping Taitale Graph Render . SUCCESS [  0.458 s]
[INFO] Ariane Community Core Mapping WebApp Tooling ....... SUCCESS [ 11.064 s]
[INFO] Ariane Community Distrib ........................... SUCCESS [  0.052 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:47 min
[INFO] Finished at: 2015-05-27T14:01:53+00:00
[INFO] Final Memory: 47M/121M
[INFO] ------------------------------------------------------------------------

Ariane distribution ariane.community.distrib-0.6.2 has been succesfully packaged in /ECHINOPSII/artifacts/ariane.community.distrib-0.6.2.zip 
 
$ ls $ARIANE_BUILDS/artifacts/
ariane.community.distrib-0.6.2.zip
Code Block
titlebuild Ariane RabbitMQ plugin 0.2.2 for Ariane Core distrib 0.6.2
themeRDark
collapsetrue
$ ./ariane.buildenv $ARIANE_BUILDS "pluginpkgr ariane.community.plugin.rabbitmq 0.2.2 0.6.2"
 
...
 
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Ariane Community Plugin For RabbitMQ ............... SUCCESS [  0.432 s]
[INFO] Ariane Community Plugin For RabbitMQ - Directory ... SUCCESS [ 17.553 s]
[INFO] Ariane Community Plugin For RabbitMQ - JSON Parser . SUCCESS [ 10.420 s]
[INFO] Ariane Community Plugin For RabbitMQ - Injector .... SUCCESS [  7.542 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 39.153 s
[INFO] Finished at: 2015-05-27T14:06:25+00:00
[INFO] Final Memory: 29M/121M
[INFO] ------------------------------------------------------------------------
/tmp/ariane-plugins/ariane.community.plugin.rabbitmq-0.2.2/distrib/installer/plugins/rabbitmq
 
Ariane plugin ariane.community.plugin.rabbitmq-0.2.2 has been succesfully packaged in /ECHINOPSII/artifacts/ariane.community.plugin.rabbitmq-0.2.2.zip


$ ls $ARIANE_BUILDS/artifacts/
ariane.community.distrib-0.6.2.zip ariane.community.plugin.rabbitmq-0.2.2.zip

 

You can finally execute any command from the Ariane Distrib Tool described bellow.

Ariane Distrib Tool Step by Step

Once all these requirements are meet then you can execute the tool :

Code Block
themeRDark
./distribManager.py -h
usage: distribManager.py [-h] {pluginmgr,pluginpkgr,distmgr,distpkgr} ...

Ariane distribution manager

positional arguments:
  {pluginmgr,pluginpkgr,distmgr,distpkgr}
                        sub commands help summary
    pluginmgr           [-h] (-l | -la plugin_name | -ld distribution_version)
    pluginpkgr          [-h] name version distrib_version
    distmgr             [-h] (-d distribution_version | -l)
    distpkgr            [-h] version

optional arguments:
  -h, --help            show this help message and exit
  -s SLACK, --slack SLACK
                        Slack url for notification

Distribution manager

The distribution manager sub command helps you to manage Ariane distributions.

Code Block
themeRDark
./distribManager.py distmgr -h
usage: distribManager.py distmgr [-h] (-d DETAILS | -l)

Manage supported Ariane distributions version

optional arguments:
  -h, --help            show this help message and exit
  -d DETAILS, --details DETAILS
                        Show supported distribution details
  -l, --list            List supported distribution version
Code Block
themeRDark
./distribManager.py distmgr -l

List of Ariane distribution :

ariane.community.distrib-master.SNAPSHOT
Code Block
themeRDark
./distribManager.py distmgr -d master.SNAPSHOT

Details of Ariane distribution master.SNAPSHOT :

Ariane component name                    Ariane component version
---------------------                    ------------------------
ariane.community.core.directory          master.SNAPSHOT     
ariane.community.core.idm                master.SNAPSHOT     
ariane.community.core.injector           master.SNAPSHOT     
ariane.community.core.mapping            master.SNAPSHOT     
ariane.community.core.portal             master.SNAPSHOT     
ariane.community.environment             master.SNAPSHOT     
ariane.community.installer               master.SNAPSHOT  

Plugins manager

The plugins manager sub command helps you to manage Ariane plugins.

Code Block
themeRDark
./distribManager.py pluginmgr -h
usage: distribManager.py pluginmgr [-h]
                                   (-l | -la plugin_name | -ld distribution_version)

Manage supported Ariane plugins

optional arguments:
  -h, --help            show this help message and exit
  -l, --list            List all supported plugins versions and distributions
  -la plugin_name, --list-plugin plugin_name
                        List supported plugin versions and distributions
  -ld distribution_version, --list-distrib distribution_version
                        List supported plugins for a distribution version

Code Block
themeRDark
./distribManager.py pluginmgr -l

Ariane supported plugins list :

Ariane plugin name                       Ariane plugin version          Ariane distribution version   
------------------                       ---------------------          ---------------------------   
ariane.community.plugin.rabbitmq         master.SNAPSHOT                master.SNAPSHOT 
Code Block
themeRDark
./distribManager.py pluginmgr -la ariane.community.plugin.rabbitmq

Ariane ariane.community.plugin.rabbitmq supported plugin versions and distributions list :


Ariane plugin version          Ariane distribution version   
---------------------          ---------------------------   
master.SNAPSHOT                master.SNAPSHOT   
Code Block
themeRDark
./distribManager.py pluginmgr -ld master.SNAPSHOT 
          
Ariane supported plugins for distribution master.SNAPSHOT :


Ariane plugin name                       Ariane plugin version         
------------------                       ---------------------         
ariane.community.plugin.rabbitmq         master.SNAPSHOT  

 

Distribution packager

The distribution packager sub command helps you to build Ariane distributions. It will clone all Ariane repositories (tag or master depending on the version you define), build the libraries and package Ariane into a zip.

Code Block
themeRDark
./distribManager.py distpkgr -h 
usage: distribManager.py distpkgr [-h] version

Package a distribution

positional arguments:
  version     Ariane distribution version to package

optional arguments:
  -h, --help  show this help message and exit


Code Block
themeRDark
./distribManager.py distpkgr master.SNAPSHOT
Ariane integration manager is working on your DEV environment
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 2), reused 5 (delta 2)
Unpacking objects: 100% (6/6), done.
From https://github.com/echinopsii/net.echinopsii.ariane.community.core.injector
   fb105c6..e41c842  master     -> origin/master
Updating fb105c6..e41c842
Fast-forward
 pom.xml | 11 +++++++++++
 1 file changed, 11 insertions(+)
remote: Counting objects: 95, done.
remote: Compressing objects: 100% (63/63), done.
remote: Total 95 (delta 21), reused 27 (delta 4)
Unpacking objects: 100% (95/95), done.

.....


[INFO] ------------------------------------------------------------------------
[INFO] Building Ariane Community Distrib 0.5.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ net.echinopsii.ariane ---
[INFO] Deleting /GITHUB/DEV/ariane/target
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ net.echinopsii.ariane ---
[INFO] Installing /GITHUB/DEV/ariane/pom.xml to /home/mffrench/.m2/repository/net/echinopsii/net.echinopsii.ariane/0.5.0-SNAPSHOT/net.echinopsii.ariane-0.5.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Ariane Community Installer ........................ SUCCESS [0.226s]
[INFO] Ariane Community Installer Tools .................. SUCCESS [3.531s]
[INFO] Ariane Community Core IDM Parent .................. SUCCESS [0.140s]
[INFO] Ariane Community Core IDM Base .................... SUCCESS [6.177s]
[INFO] Ariane Community Core Portal Parent ............... SUCCESS [0.026s]
[INFO] Ariane Community Core Portal Web Resources ........ SUCCESS [0.867s]
[INFO] Ariane Community Core Portal Base ................. SUCCESS [3.795s]
[INFO] Ariane Community Core Portal IDM WebApp Tooling ... SUCCESS [4.444s]
[INFO] Ariane Community Core Portal WebApp Tooling ....... SUCCESS [3.239s]
[INFO] Ariane Community Core Portal WebApp Bundle ........ SUCCESS [3.097s]
[INFO] Ariane Community Core Directory Parent ............ SUCCESS [0.021s]
[INFO] Ariane Community Core Directory Base .............. SUCCESS [4.138s]
[INFO] Ariane Community Core Directory WebApp Tooling .... SUCCESS [5.805s]
[INFO] Ariane Community Core Injector Parent ............. SUCCESS [0.021s]
[INFO] Ariane Community Core Injector Base ............... SUCCESS [2.418s]
[INFO] Ariane Community Core Injector WebApp Tooling ..... SUCCESS [2.818s]
[INFO] Ariane Community Core Mapping Parent .............. SUCCESS [0.021s]
[INFO] Ariane Community Core Mapping DS .................. SUCCESS [0.020s]
[INFO] Ariane Community Core Mapping DS API .............. SUCCESS [3.176s]
[INFO] Ariane Community Core Mapping DS Mapper DSL ....... SUCCESS [16.209s]
[INFO] Ariane Community Core Mapping DS Blueprints Implementation  SUCCESS [2.198s]
[INFO] Ariane Community Core Mapping DS Runtime Injection Manager  SUCCESS [2.789s]
[INFO] Ariane Community Core Mapping Taitale Graph Render  SUCCESS [0.355s]
[INFO] Ariane Community Core Mapping WebApp Tooling ...... SUCCESS [2.191s]
[INFO] Ariane Enterprise Distrib ......................... SUCCESS [0.094s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:09.503s
[INFO] Finished at: Tue Jul 01 13:22:59 CEST 2014
[INFO] Final Memory: 54M/397M
[INFO] ------------------------------------------------------------------------


Ariane distribution ariane.community.distrib-master.SNAPSHOT has been succesfully packaged in /home/mffrench/ariane.community.distrib-master.SNAPSHOT.zip

Ariane integration manager is working on your DEV environment


Then you're able to unzip the Ariane distrib and launch installer or continue to setup your development environment.

Plugin packager

The plugin packager sub command helps you to build Ariane plugins. It will clone the Ariane Plugin repository (tag or master depending on the version you define), build the libraries and package Ariane Plugin into a zip.

Code Block
themeRDark
 ./distribManager.py pluginpkgr -h
usage: distribManager.py pluginpkgr [-h] name version dversion
Package a supported Ariane plugin
positional arguments:
  name        Ariane plugin name to package
  version     Ariane plugin version to package
  dversion    Ariane distrib version base
optional arguments:
  -h, --help  show this help message and exit
Code Block
themeRDark
./distribManager.py pluginpkgr ariane.community.plugin.rabbitmq master.SNAPSHOT master.SNAPSHOT
Ariane integration manager is working on your DEV environment
Already up-to-date.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] Ariane Community Plugin For RabbitMQ
[INFO] Ariane Community Plugin For RabbitMQ - Directory
[INFO] Ariane Community Plugin For RabbitMQ - JSON Parser
[INFO] Ariane Community Plugin For RabbitMQ - Injector
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Ariane Community Plugin For RabbitMQ 0.2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------

....

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Ariane Community Plugin For RabbitMQ .............. SUCCESS [0.249s]
[INFO] Ariane Community Plugin For RabbitMQ - Directory .. SUCCESS [7.679s]
[INFO] Ariane Community Plugin For RabbitMQ - JSON Parser  SUCCESS [5.670s]
[INFO] Ariane Community Plugin For RabbitMQ - Injector ... SUCCESS [3.752s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.870s
[INFO] Finished at: Mon Jan 05 10:24:25 CET 2015
[INFO] Final Memory: 32M/415M
[INFO] ------------------------------------------------------------------------

/CC/DEV/ariane.master/ariane.community.plugin.rabbitmq/python/installer/plugins/rabbitmq

Ariane plugin ariane.community.plugin.rabbitmq-master.SNAPSHOT has been succesfully packaged in /home/mffrench/ariane.community.plugin.rabbitmq-master.SNAPSHOT.zip

Ariane integration manager is working on your DEV environment