
Releasing
---------
https://github.com/arangodb/arangodb/blob/devel/Installation/release.sh

- pull from repo, pull enterprise, pull tags

`Installation/release.sh 3.1.14`

- checks CHANGELOG 
- builds
- runs unittests
- builds documentation
  - builds snipplets
  - builds swagger
  - builds docs
- Sets tag `v3.1.14` on arango & enterprise repo directories & pushes

Now we can continue to Jenkins:

![workflow](workflow.png)

[Jenkins Pipeline Scripts](https://github.com/arangodb-helper/JenkinsScripts)


- Release/Flow
   - Release/BuildDocumentation - Builds Documentation
   - Release/BuildPackages      - Builds Packages (on all supported Platforms)
   - ci/Jenkinsfile             - Builds & tests
   
--------------------------------------------------------------------------------

Build Flow
----------
![organigram.png](organigram.png)

[Docker builders](https://github.com/arangodb-helper/build-docker-containers)

--------------------------------------------------------------------------------

Building
--------

[Installation/Jenkins/build.sh](https://github.com/arangodb/arangodb/blob/devel/Installation/Jenkins/build.sh)

Target usecase:
===============
- standard - we want release builds.
- debug - we want debug builds
- maintainer - we want maintainer builds
- scan-build - we want to run scan-build (to be rechecked)

Build Options
=============
- enterprise [giturl] - build with enterprise enabled - if neccessary checkout the git repo first.
- msvc - build with Microsoft visual studio
- buildDir - which directory to compile in
- package - which package format to build (usually includes a tgz):
  - Bundle - Macos DMG Bundle
  - DEB - Debian / Ubuntu .deb package (+ snap on ubuntu 16 if --snap specified)
  - RPM - Redhat / SuSE RPM package
  - NSIS - Windows NSIS installer packages (+ zip instead of tgz)
  - TGZ - tarball only
  When not specified, a special unittest enabled tarball is build to be 
  propagated to later testruns
- rpmDistro - eventually enable suse rpm specialities one is unable to detect from the host automatically
- targetDir - where to publish the packages to
- cleanBuild - Flush all changes in this git working copy so we may start with a clean thing


