Versions Compared

Key

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

...

  1. Branch your release:

    git checkout -b <your release name> <commit sha1> 

    push to origin:
    git push origin <your release name>


  2. Apply signed tag on release branch

    Example:

     git tag -u <GPG KEY ID> --sign <your release name>-rc# -m "Apache MADlib (Incubating) <your release name> RC#" <SHA of HEAD of branch>
     

  3. Make a tarball and gzip:
    git archive -o ../apache-madlib-<your release name>-incubating-src.tar --prefix=apache-madlib-<your release name>-incubating-src/ <your tag/branch name>
    gzip ../apache-madlib-<your release name>-incubating-src.tar

    Example:

    $ git archive -o ../apache-madlib-1.11-incubating-src.tar --prefix=apache-madlib-1.11-incubating-src/ 1.11-incubating
    $ gzip ../apache-madlib-1.11-incubating-src.tar

Prepare rpm and dmg binaries

Execute the following commands in the build directory:

$ cmake <path to source code directory>

$ make 

$ make package

...

Create convenience binaries (rpm and dmg files)

Creating rpm package - CentOS 6 (GPDB 4.3, 4.3Orca, Postgres 9.5, 9.6)

This section is under construction

Build MADlib and rpm package

Example:

cmake -DHAWQ_2_PG_CONFIG=/data/home/gpadmin/hawq-2.0.0.0/bin/pg_config \
      -DGREENPLUM_4_3ORCA_PG_CONFIG=/data/gpdbchina/4.3.10.0ORCA-build-1/greenplum-db/./bin/pg_config \
      -DGREENPLUM_4_3_PG_CONFIG=/data/gpdbchina/4.3.0.0-build-3/greenplum-db/./bin/pg_config \
      -DGREENPLUM_4_2_PG_CONFIG=/data/gpdbchina/4230-build-1/greenplum-db/./bin/pg_config \
      -DPOSTGRESQL_9_6_PG_CONFIG=/data/gpdbchina/postgresql-9.6/postgresdb/bin/pg_config \
      -DPOSTGRESQL_9_5_PG_CONFIG=/data/gpdbchina/postgresql-9.5.0/postgresdb/bin/pg_config \
      -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_INSTALL_PREFIX=/usr/local/madlib

Creating rpm package - CentOS 6 (GPDB 5)

Identify build docker image (repository and tag) to use for build by
reviewing the resource named "centos-gpdb-dev-6" in the GPDB 5
Concourse pipeline file.

pipeline file: https://raw.githubusercontent.com/greenplum-db/gpdb/master/concourse/pipelines/pipeline.yml

Example:

repo: pivotaldata/centos-gpdb-dev
tag: 6-gcc6.2-llvm3.7

Retrieve latest greenplum 5 release rpm from Pivotal Network
(https://network.pivotal.io/). A free account can be created to
retrieve the Greenplum 5 rpm artifact.

Product: Pivotal Greenplum
Release: 5.0.0 (latest release)

Example:

Release Download Files: Greenplum Database 5.0.0-beta.6 RPM for RHEL 6
File downloaded: greenplum-db-5.0.0-beta.6-rhel6-x86_64.rpm

Copy Greenplum 5 rpm and Apache MADlib source release tarball into directdory (/opt/downloads) which will be mounted into docker container.

Example:

cp greenplum-db-5.0.0-beta.6-rhel6-x86_64.rpm /opt/downloads
cp apache-madlib-1.11-incubating-src.tar.gz /opt/downloads

Start Docker container in which to buid

Example:

docker run -it --rm -v /opt/downloads:/tmp/downloads pivotaldata/centos-gpdb-dev:6-gcc6.2-llvm3.7 /bin/bash

Build MADlib and rpm package

Example:

yum install -y /tmp/downloads/greenplum-db-5.0.0-beta.6-rhel6-x86_64.rpm
tar xf /tmp/downloads/apache-madlib-1.12-src.tar.gz

cd apache-madlib-1.12-src
mkdir build; cd build

cmake -DGREENPLUM_5_PG_CONFIG=/usr/local/greenplum-db/bin/pg_config \
      -DCMAKE_INSTALL_PREFIX=/usr/local/madlib \
      -DCMAKE_BUILD_TYPE=Release \
      ..
make
make install
make package
mv madlib-1.12-Linux.rpm apache-madlib-1.12-bin-Linux-GPDB5beta6.rpm

This will generate a file (in the current working directory) with a name similar to madlib-1.12-Linux.rpm.  For convenience binary purposes, the file must be renamed to apache-madlib-1.12-bin-Linux-GPDB5beta6.rpm (last step above).

Install and test the MADlib rpm following standard procedures (NOTE: To ensure a clean installation directory, remove /usr/local/madlib prior to installing and testing the rpm).

Creating dmg package - macOS (Postgres 9.4, 9.5 and 9.6)

Required software to create dmg packages

...