# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

Bigtop Changelog

* Release 1.5.0 (2020-12-07)

Release Notes - Bigtop - Version 1.5.0

** Sub-task
    * [BIGTOP-3165] - Bump Spark to 2.4.5
    * [BIGTOP-3188] - Bump Zeppelin to 0.8.1
    * [BIGTOP-3215] - Failed to build bigtop/puppet image for OpenSuSE
    * [BIGTOP-3220] - Add support for Elasticsearch deb build
    * [BIGTOP-3221] - Add support for Elasticsearch rpm build
    * [BIGTOP-3222] - Add puppet deployment for Elasticsearch
    * [BIGTOP-3223] - Add smoke tests for Elasticsearch
    * [BIGTOP-3276] - Update supported distros in the toolchain manifests for v1.5.0
    * [BIGTOP-3279] - Bump Zookeeper to 3.4.13
    * [BIGTOP-3281] - Bump Tez to 0.9.2
    * [BIGTOP-3282] - Bump Hive to 2.3.6
    * [BIGTOP-3285] - Bump Kafka to 2.4.0
    * [BIGTOP-3286] - Bump Ignite to 2.7.6
    * [BIGTOP-3287] - Bump Hadoop to 2.10.0
    * [BIGTOP-3288] - Update supported distros in the Docker build scripts for v1.5.0
    * [BIGTOP-3289] - Bump Tomcat to 8.5.50
    * [BIGTOP-3297] - Bump HBase to 1.5.0
    * [BIGTOP-3298] - Bump Phoenix to 4.15.0-HBase-1.5
    * [BIGTOP-3305] - Bump Flume to 1.9.0
    * [BIGTOP-3306] - Bump Giraph to 1.2.0
    * [BIGTOP-3313] - Bump solor to 6.6.6
    * [BIGTOP-3315] - Bump Alluxio to 1.8.2
    * [BIGTOP-3343] - Add Debian 10 and Ubuntu 18.04 support to the Docker provisioner
    * [BIGTOP-3356] - Add CentOS 8 support to the Docker provisioner
    * [BIGTOP-3363] - Drop Apex, Hama and Tajo in the 1.5.0 release
    * [BIGTOP-3375] - Bump Livy to 0.7.0 and build it with Python3

** Bug
    * [BIGTOP-2742] - broken zeppelin init script
    * [BIGTOP-3029] - "--parser" is invalidated in puppet v4.x. Affects Debian-9 builds
    * [BIGTOP-3208] - Exception in master branch (and branch-1.4): kafka-server failed to launch due to missing zookeeper AsyncCallback.MultiCallback
    * [BIGTOP-3216] - Flink smoke test failed on Debian-9
    * [BIGTOP-3261] - Fix broken BPS Dockerfile
    * [BIGTOP-3265] - Fix TEZ build error
    * [BIGTOP-3266] - Rat check failed for one file with unapproved/unknown licenses
    * [BIGTOP-3290] - Fix build failure of Oozie
    * [BIGTOP-3291] - Fix build failure of Sqoop
    * [BIGTOP-3292] - Fix service configuration of sqoop2-server
    * [BIGTOP-3295] - Fix build failure of hadoop-2.10.0 on CentOS 8
    * [BIGTOP-3296] - Creating apt repository fails on Ubuntu 18.04
    * [BIGTOP-3299] - Fix Zookeeper build to make other build success
    * [BIGTOP-3302] - init scripts using su do not work on recent systemd
    * [BIGTOP-3303] - Fix build failure of hbase-1.5.0 on Ubuntu
    * [BIGTOP-3304] - Fix build failure of Flume against hive-2.3.6
    * [BIGTOP-3308] - Openssl fails to load in hadoop checknative -a on Debian 9
    * [BIGTOP-3309] - Missing build target for Debian 10 in BigTop 1.5
    * [BIGTOP-3310] - URL of maven and ant package list page is changed
    * [BIGTOP-3311] - Fix Alluxio build failure with upgraded hadoop version
    * [BIGTOP-3312] - Fix Ambari build failure due to maven repo requires https now
    * [BIGTOP-3314] - Fix flink build failure with upgraded hadoop version
    * [BIGTOP-3316] - Fix HBase build failure on Arm platform
    * [BIGTOP-3317] - Oozie sharedlib create command fails when uploading to HDFS
    * [BIGTOP-3327] - Fix Zeppelin build issue after upgrading Spark-2.4.5
    * [BIGTOP-3330] - oozie and oozie-client deb packages try to install the same jars in the same dir
    * [BIGTOP-3331] - Provisioner Deployment failed on Fedora
    * [BIGTOP-3332] - Add new provisioner yaml configuration for Fedora 31
    * [BIGTOP-3333] - Fix Hive build after upgrading Spark to 2.4.5
    * [BIGTOP-3334] - Fix Oozie build after upgrading Spark to 2.4.5
    * [BIGTOP-3335] - Fix Mahout build after upgrading Spark to 2.4.5
    * [BIGTOP-3336] - Fix Livy build on CentOS and Fedora
    * [BIGTOP-3338] - Fix `./gradlew repo` to work with GPDB and QFS on Ubuntu 18.04
    * [BIGTOP-3339] - Fix Ambari build failure due to using old Bower
    * [BIGTOP-3341] - Support for Openssl 1.1.1
    * [BIGTOP-3347] - Fix failures of Hive ProxyFileSystem against Hadoop 2.10.0
    * [BIGTOP-3348] - Fix Hive test failures caused by NoSuchMethodError of ApplicationId.fromString
    * [BIGTOP-3351] - Fix sqoop build error on Ubuntu 18.04
    * [BIGTOP-3352] - Fix qfs build error on Ubuntu 18.04
    * [BIGTOP-3355] - [Puppet] Make GPG check for repos a configuration and default to true
    * [BIGTOP-3359] - Fix failure of installing Hadoop due to conflicting .build-id entry on CentOS 8
    * [BIGTOP-3361] - No libcrypt.so.1 in Fedora-31
    * [BIGTOP-3364] - Zeppelin build failed in Ubuntu16.04/18.04 and CentOS7
    * [BIGTOP-3372] - Building Spark fails on Debian 9 and Ubuntu 16.04
    * [BIGTOP-3376] - Make Mpack as a standalone component in Bigtop
    * [BIGTOP-3377] - Fix deployment failures on Fedora 31
    * [BIGTOP-3378] - Fix Livy deployment failure on Debian and Ubuntu
    * [BIGTOP-3379] - Fix Spark build failure on CentOS 8
    * [BIGTOP-3380] - Bump Tomcat to 8.5.57
    * [BIGTOP-3386] - Building GPDB fails on CentOS 8
    * [BIGTOP-3387] - Building QFS fails on CentOS 8
    * [BIGTOP-3390] - Building Alluxio fails on Fedora 31
    * [BIGTOP-3392] - All packaging jobs are failing on Fedora 31 for aarch64 and ppc64le
    * [BIGTOP-3394] - Building Logstash is failing on CentOS 8, Debian 10 and Ubuntu 18.04
    * [BIGTOP-3395] - Building Kafka is failing on Fedora 31 for ARM64
    * [BIGTOP-3396] - Building Ambari is failing on Fedora 31 for ARM64
    * [BIGTOP-3397] - Building Spark is failing on CentOS 7 for ARM64 and PPC64
    * [BIGTOP-3398] - Fix GPDB puppet manifest to work
    * [BIGTOP-3399] - Fix bigtop-groovy build failure
    * [BIGTOP-3401] - Failed to build Centos-8 docker images for Arm64
    * [BIGTOP-3406] - Fix Oozie smoke test to work
    * [BIGTOP-3407] - Ensure the procps package is installed in Debian 10
    * [BIGTOP-3408] - docker-hadoop.sh generates broken site.yaml from config.yaml containing multiple components
    * [BIGTOP-3410] - Fix bigtop-tomcat build failure due to downloading problem
    * [BIGTOP-3413] - QFS doesn't work with Hadoop's TeraGen
    * [BIGTOP-3414] - Fix the default value of GPDB configuration for smoke test
    * [BIGTOP-3416] - Fix YCSB to work with CentOS 8 and Fedora 31
    * [BIGTOP-3418] - Fix Ambari deployment on CentOS 8, Fedora 31 and Debian 10
    * [BIGTOP-3422] - Fix ambari-server setup failure due to PostgreSQL initdb error
    * [BIGTOP-3425] - Deploying Ambari fails on Fedora 31
    * [BIGTOP-3426] - Flink smoke test fails with fedora-31 and debian-10 on arm64
    * [BIGTOP-3427] - Deploying GPDB fails due to the paramiko installation on some distros
    * [BIGTOP-3429] - QFS smoke test fails on Ubuntu 16.04
    * [BIGTOP-3430] - QFS smoke test fails on Fedora 31/arm64
    * [BIGTOP-3437] - Building Logstash fails due to amazing_print version mismatch
    * [BIGTOP-3439] - Oozie's smoke test fails on CentOS and Fedora
    * [BIGTOP-3440] - Building flume fails on all distros
    * [BIGTOP-3443] - Building Spark fails on Ubuntu 16.04
    * [BIGTOP-3444] - Bump Hadoop to 2.10.1
    * [BIGTOP-3446] - Fix toolchain task failure due to undefined variable in renv.pp
    * [BIGTOP-3448] - Building Alluxio fails on all distros
    * [BIGTOP-3449] - Failed to build Haddop-2.10.1 on Arm64
    * [BIGTOP-3451] - Fix smoke test for SparkR
    * [BIGTOP-3455] - Hive 2.2.x bug with DBTokenStore
    * [BIGTOP-3458] - Fix broken dependency on groovy-all in the test framework
    * [BIGTOP-3459] - Deploying GPDB fails on ARM64 CentOS 7
    * [BIGTOP-3462] - Deploying Livy fails if the SPARK_HOME directory doesn't exist

** New Feature
    * [BIGTOP-2961] - Add Apache Livy (incubating) to Bigtop stack
    * [BIGTOP-3219] - Add Elasticsearch as component
    * [BIGTOP-3293] - Add hadoop-kms package
    * [BIGTOP-3319] - Add Logstash as Bigtop component
    * [BIGTOP-3320] - Add Kibana as Bigtop component
    * [BIGTOP-3325] - Spark LICENSE files should be exempted by RAT check
    * [BIGTOP-3411] - Disable unnecessary  scm check in Buildnumber-maven-plugin for Mpack

** Improvement
    * [BIGTOP-3092] - kafka charm: support juju storage
    * [BIGTOP-3168] - Kafka smoke tests implementation
    * [BIGTOP-3214] - Install python libraries for Livy
    * [BIGTOP-3217] - Add smoke tests for Apache Livy
    * [BIGTOP-3234] - TEZ smoke tests implementation
    * [BIGTOP-3236] - Zeppelin smoke tests implementation
    * [BIGTOP-3237] - Add smoke tests for YCSB
    * [BIGTOP-3259] - Update the default stack version for docker-provisioner to 1.4.0
    * [BIGTOP-3300] - Add puppet manifests for hadoop-kms
    * [BIGTOP-3301] - Add smoke-tests for hadoop-kms
    * [BIGTOP-3337] - Remove Node.js from the toolchain
    * [BIGTOP-3353] - hive.hwi.war.file configuration is no longer needed
    * [BIGTOP-3358] - get_roles() function should fail if a component is not in roles_map
    * [BIGTOP-3362] - Unable to install spark-python package on CentOS8 due to lack of python package
    * [BIGTOP-3369] - RHEL8 does not have PowerTools repo but CodeReady Builder
    * [BIGTOP-3371] - Unable to build Apache Ambari on RHEL8
    * [BIGTOP-3374] - Add dependencies on the utilities provided by Bigtop to bigtop.bom
    * [BIGTOP-3389] - Extend timeout for installing protobuf and R packages
    * [BIGTOP-3391] - Support GPDB on Perl 5.30+ environment
    * [BIGTOP-3405] - Make gpg_check in docker-hadoop.sh configurable
    * [BIGTOP-3415] - Extend timeout for Spark smoke test
    * [BIGTOP-3431] - Update github Readme.md to be more newbie friendly
    * [BIGTOP-3441] - Suppress YCSB smoke test output
    * [BIGTOP-3460] - Extend timeout for Ambari Server setup

** Wish
    * [BIGTOP-3268] - Add ability to change limits for nagios checks in charm

** Task
    * [BIGTOP-3015] - hadoop-spark bundle correction
    * [BIGTOP-3123] - Define Bigtop 1.5.0 release BOM
    * [BIGTOP-3318] - Use secure repo in bigtop-tests
    * [BIGTOP-3322] - Lintian Warnings in Hadoop
    * [BIGTOP-3340] - Add Masatake Iwasaki to team list
    * [BIGTOP-3409] - Move bigtop website off from CMS: staging
    * [BIGTOP-3419] - Automate Deployment to asf-site


* Release 1.4.0 (2019-03-24)


Release Notes - Bigtop - Version 1.4.0

** Sub-task
    * [BIGTOP-2012] - Add new tests for webhdfs
    * [BIGTOP-2993] - Switch to gradle XXX-pkg-ind feature developed in BIGTOP-2949 for Bigtop CI
    * [BIGTOP-2994] - Document the new feature added in BIGTOP-2949
    * [BIGTOP-2995] - Add example CI pipeline to build end-to-end from a commit to smoke test
    * [BIGTOP-2996] - Update Smoke Test CI matrix against Bigtop master Distros
    * [BIGTOP-3009] - Add gradle repo-ind
    * [BIGTOP-3110] - [Puppet] Hive metastore can not startup successfully
    * [BIGTOP-3114] - [Test] HBase Importtsv smoke tests are failing
    * [BIGTOP-3115] - [Puppet] Alluxio master/worker can not startup successfully
    * [BIGTOP-3117] - [Puppet] Can't run spark commands for Spark on Yarn deployment
    * [BIGTOP-3118] - [Puppet] Failed to deploy GPDB
    * [BIGTOP-3120] - [Puppet] Annoying warning message from Ambari snippet
    * [BIGTOP-3121] - [Provisioner] Can't create docker containers after using Docker Provisioner on Amazon Linux
    * [BIGTOP-3122] - CI matrix for smoke tests
    * [BIGTOP-3124] - Remove package installation in provisioner/utils/smoke-tests.sh and polish the script
    * [BIGTOP-3126] - [Puppet] Failed to deploy QFS due to Permission denied error at initailization
    * [BIGTOP-3129] - Failed to run QFS smoke test
    * [BIGTOP-3130] - Failed to run Alluxio smoke test
    * [BIGTOP-3131] - Apex smoke test requires mvn to compile test jar
    * [BIGTOP-3132] - Bump Alluxio up to 1.8.1
    * [BIGTOP-3133] - [Puppet] Add a module to deploy bigtop-utils
    * [BIGTOP-3134] - [Puppet] An upgrade to deploy Alluxio 1.8.1
    * [BIGTOP-3136] - [Provisioner] Local built repo should have higher priority
    * [BIGTOP-3138] - Maven installation failed on debian-9
    * [BIGTOP-3139] - Failed to deploy Ambari on CentOS/Fedora cause no service command available
    * [BIGTOP-3140] - [Test] TestHadoopExamples.groovy can have $USER = null when running in Docker
    * [BIGTOP-3141] - Release number is not honored by the build system
    * [BIGTOP-3142] - Better user expereince when calling docker-hadoop.sh -d with no cluster running
    * [BIGTOP-3144] - [Test] QFS smoke test failed on multi-node cluster
    * [BIGTOP-3146] - gradlew is not available in bigtop-tests/smoke-tests for running run_itest.sh
    * [BIGTOP-3147] - Nexus proxy cache configuration is broken
    * [BIGTOP-3148] - Error out when configure-nexus encounter any issue
    * [BIGTOP-3149] - Support to enable Nexus proxy for Docker Provisioner
    * [BIGTOP-3150] - [Provisioner] Raise proper exit code and error messages when provisioning failed
    * [BIGTOP-3153] - Switch to docker cp based solution to build inside containers
    * [BIGTOP-3154] - [Provisioner] Failed to bootstrap provisioning environment on Debian/Ubuntu
    * [BIGTOP-3155] - Setup manual smoke test for Pull Requests
    * [BIGTOP-3157] - Failed to start Ambari server and agent on Fedora 26
    * [BIGTOP-3158] - [Test] Fix test specification with maven failsafe plugin
    * [BIGTOP-3159] - Failed to deploy Alluxio due to Puppet compatibility issue
    * [BIGTOP-3160] - [Provisioner] Treat both exit code 0 and 2 as success for Puppet execution
    * [BIGTOP-3161] - Upgrade to Puppet 5.X
    * [BIGTOP-3163] - Bump Hadoop to 2.8.5
    * [BIGTOP-3164] - Bump Kafka to 1.1.1
    * [BIGTOP-3166] - Update Kerberos module to comply with Puppet's syntax
    * [BIGTOP-3167] - Nexus is always enabled for ./gradlew XXX-ind
    * [BIGTOP-3169] - Enable local repo is not working on yum systems
    * [BIGTOP-3170] - Loop and wait for daemon to be started up for Alluxio
    * [BIGTOP-3171] - Update Kafka Puppet module for version 1.1.1
    * [BIGTOP-3172] - [Provisioner] Support to specify components and smoke-tests when launching Docker Provisioner
    * [BIGTOP-3173] - Fix bugs and improve usability of COMPONENT-pkg-ind
    * [BIGTOP-3174] - ./gradlew repo-ind failed on Bigtop build slaves
    * [BIGTOP-3175] - [Build] Support to specify commit SHA1 when building packages
    * [BIGTOP-3176] - [Build] Support non X86 archs for COMPONENT-pkg-ind
    * [BIGTOP-3177] - [Build] Exit w/o container left dangling when running docker in gradle wrapper
    * [BIGTOP-3179] - Connection refused by www-us.apache.org mirror site
    * [BIGTOP-3180] - Gradle 5 incompatible issue
    * [BIGTOP-3181] - Build as non-root for COMPONENT-pkg-ind
    * [BIGTOP-3182] - Helper message and documentation of new XXX-ind features
    * [BIGTOP-3183] - Zeppelin build failed
    * [BIGTOP-3185] - Bump Kafka to 2.1.1
    * [BIGTOP-3186] - Bump Spark to 2.2.3
    * [BIGTOP-3187] - Bump Flume to 1.9.0
    * [BIGTOP-3189] - Allow to specify more properties/options at command line for docker provisioner
    * [BIGTOP-3190] - Compatibility issue for Zeppelin with Spark 2.2.3
    * [BIGTOP-3191] - Old Gradle version causes Kafka 2.1.1 build failed
    * [BIGTOP-3192] - Remove Spark 1.6 from the stack
    * [BIGTOP-3193] - Add REPO and MEMORY as options for docker-provisioner
    * [BIGTOP-3195] - Add pkgs-ind to package all artifacts inside docker
    * [BIGTOP-3196] - Drop Apache Crunch in Bigtop distribution
    * [BIGTOP-3197] - [Docker] Treat both exit code 0 and 2 as success for Puppet execution
    * [BIGTOP-3198] - [Sandbox] Support AARCH64/PPC64LE
    * [BIGTOP-3199] - Can not run smoke test inside docker-provisioner
    * [BIGTOP-3200] - Bugfix Integration test framework 2.0 and documentation
    * [BIGTOP-3203] - [Sandbox] Architecture string is a mess for Distributions
    * [BIGTOP-3206] - Missing /etc/init.d/functions when deploying Alluxio on Fedora 26
    * [BIGTOP-3207] - [Provisioner] Do not exit when destroying got no cluster exists
    * [BIGTOP-3209] - Revert Kafka to 0.10.2.2 and Flume to 1.8.0
    * [BIGTOP-3210] - Missing /lib/lsb/init-functions when deploying Flink on Fedora 26
    * [BIGTOP-3212] - Deploy QFS client failed due to no such directory error
    * [BIGTOP-3213] - Bugs in pom.xml files when releasing Bigtop 1.4.0


** Bug
    * [BIGTOP-2595] - Make Spark1 and Spark2 coexist
    * [BIGTOP-2892] - The download page should provide instructions to check hashes and signatures
    * [BIGTOP-2986] - Oozie build is failing
    * [BIGTOP-3099] - Fix oozie build
    * [BIGTOP-3102] - docker-hadoop.sh WARNING: The scale command is deprecated
    * [BIGTOP-3107] - QFS cannot compile with newer Oracle SDK
    * [BIGTOP-3112] - Update release KEYS file from dist.apache.org to apache.org/dist
    * [BIGTOP-3113] - Update previous releases links to the archive.apache.org in the download page
    * [BIGTOP-3125] - [provisioner] sbin/init is missed in puppet:opensuse-42.3
    * [BIGTOP-3151] - Add flink smoke test
    * [BIGTOP-3184] - URLConnection check fails with exception when it should return false
    * [BIGTOP-3194] - Phoneix QueryServer PID file name in svc file is inconsistent with that in QueryServer's execution script


** New Feature
    * [BIGTOP-2947] - Project Frontier: Bigtop Integration Test Framework 2.0


** Improvement
    * [BIGTOP-1227] - Deploy artifacts to maven repository
    * [BIGTOP-3085] - Hello world example for adding a new package
    * [BIGTOP-3135] - Remove deprecated giraph-site.xml
    * [BIGTOP-3152] - No need to Force the use of Netty over Hadoop RPC in Giraph
    * [BIGTOP-3204] - Upgrade flink from 1.4.2 to 1.6.0 or higher



** Task
    * [BIGTOP-3098] - Update maven plugins for project pom
    * [BIGTOP-3105] - Sync up site changes from branch 1.3 to master
    * [BIGTOP-3106] - Update links in download page
    * [BIGTOP-3108] - Update version strings to 1.3.0 in the master
    * [BIGTOP-3109] - Overhaul the deployment and testing modules
    * [BIGTOP-3128] - Switch to new gitbox repository
    * [BIGTOP-3162] - Define Bigtop 1.4.0 release BOM
    * [BIGTOP-3178] - Fix two insecure maven repositories

* Release 1.3.0 (2018-8-16)

Release Notes - Bigtop - Version 1.3.0

** Sub-task
    * [BIGTOP-2833] - [puppetize.sh] Support centos-7-aarch64 support
    * [BIGTOP-2893] - Bump Hadoop to 2.8.1
    * [BIGTOP-2894] - Bump HBASE to 1.3.1
    * [BIGTOP-2895] - Bump Pig to 0.17.0
    * [BIGTOP-2897] - Bump Phoenix to  4.11-HBASE-1.3
    * [BIGTOP-2898] - Bug: regression in Phoenix build after BIGTOP-2895
    * [BIGTOP-2899] - Bug: regression in Oozie build after BIGTOP-2895
    * [BIGTOP-2949] - Add gradle task which leverage bigtop-ci/build.sh to build packages


** Bug
    * [BIGTOP-2101] - ignite-hadoop contains an arch-dependent shared lib
    * [BIGTOP-2213] - tez build downloads amd64 nodejs executable
    * [BIGTOP-2292] - Remove Centos 6 Support
    * [BIGTOP-2503] - Solr packaging is broken on both DEB and RPM
    * [BIGTOP-2634] - package perl-Env does not exist in centos 6
    * [BIGTOP-2679] - Streamline CI Jobs
    * [BIGTOP-2723] - Fix asciidoctor-maven-plugin for HBase build on AArch64
    * [BIGTOP-2737] - Spark charm doesn't handle HA or examples well
    * [BIGTOP-2738] - spark-worker fails to start
    * [BIGTOP-2748] - Fix a puppet compatibilty issue
    * [BIGTOP-2749] - puppet: use jessie package on jessie, not trusty
    * [BIGTOP-2750] - puppet: increase compatibility with future versions
    * [BIGTOP-2753] - Initial support for Debian-9
    * [BIGTOP-2754] - Revert BIGTOP-2730: Upgrade Zookeeper to version 3.4.10
    * [BIGTOP-2804] - Drop Solr package and Puppet snippets
    * [BIGTOP-2818] - Ambari downloads jdk
    * [BIGTOP-2826] - Zeppelin RPM is broken: "missing" osgi package deps
    * [BIGTOP-2829] - [iTest] build failed during Maven integration test phase
    * [BIGTOP-2832] - Toolchain failed to install on Debian 8
    * [BIGTOP-2835] - puppet fails when bigtop::jdk_preinstalled is true
    * [BIGTOP-2836] - charm metric collector race condition
    * [BIGTOP-2838] - Support ARM64 for  packages.gradle
    * [BIGTOP-2841] - Failed to build bigtop/slaves-ubuntu-16.04-aarch64
    * [BIGTOP-2844] - zeppelin charm: spark config should match zeppelin spark config
    * [BIGTOP-2847] - Building from git is broken
    * [BIGTOP-2850] - Not able to build bigtop/slaves image for OpenSuSE 42.1
    * [BIGTOP-2859] - Missing HIVE_VERSION when build hive rpms
    * [BIGTOP-2860] - Fix TestSpark.groovy syntax error
    * [BIGTOP-2863] - Test build failed for incompatible JavaDoc format with JDK-8-121 and later
    * [BIGTOP-2864] - Tez with "Class path contains multiple SLF4J bindings" warnings
    * [BIGTOP-2866] - Fix rmr depricated and people* No such file or directory error
    * [BIGTOP-2878] - Download task does not work for git repositories
    * [BIGTOP-2881] - Greenpulm 5.0 got released - lets switch the Bigtop to it
    * [BIGTOP-2885] - gpdb: disable gpcloud on CentOS 6
    * [BIGTOP-2890] - Download page must not link to snapshots / nightly builds
    * [BIGTOP-2891] - Download page must link to ASF mirrors
    * [BIGTOP-2903] - update protobuf rpm links
    * [BIGTOP-2906] - Failed to start solr-server service using bigtop-deploy
    * [BIGTOP-2907] - upgrading Ambari from 2.5.0 to 2.5.2
    * [BIGTOP-2908] - giraph charm: release audit failure
    * [BIGTOP-2909] - ppc64le: Zeppelin 0.7.2 build is failing
    * [BIGTOP-2911] - Change Solr service ports to default 8983/8984
    * [BIGTOP-2912] - Intialize dataset for solr smoke test
    * [BIGTOP-2915] - Some files are missing ALv2 header
    * [BIGTOP-2917] - Ignite smoke test failed with JDK8
    * [BIGTOP-2926] - introduce bigtop version into bigtop/puppet images
    * [BIGTOP-2929] - Fix typo in opensuse version name
    * [BIGTOP-2930] - sqoop fedora26 : rsync missing
    * [BIGTOP-2931] - hadoop debian-9 : Unmet build dependencies: libssl-dev
    * [BIGTOP-2932] - hadoop fedora26: openssl in native code problem
    * [BIGTOP-2934] - Consolidate puppet usage by installing puppet from distro
    * [BIGTOP-2935] - provisioner: Use proper command line depending on puppet version
    * [BIGTOP-2942] - update tez to 0.9
    * [BIGTOP-2943] - hbase does not compile with maven-3.5.2
    * [BIGTOP-2944] - Update hbase and fix compilation issue
    * [BIGTOP-2950] - BIGTOP-2869 breaks RAT check
    * [BIGTOP-2953] - qfs is not buildable under Debian 9
    * [BIGTOP-2957] - Upgrade YCSB to 0.12.0
    * [BIGTOP-2958] - Tez should use appropriate profile for Hadoop shims
    * [BIGTOP-2968] - Bump Hive version to 2.3.2
    * [BIGTOP-2973] - Hama packaging is broken with Hadoop 2.8+
    * [BIGTOP-2976] - zookeeper-rest missing dependency on lsb-base
    * [BIGTOP-2979] - JAVA_HOME inconsistent on non-x86 architectures
    * [BIGTOP-2980] - Hama does not build on DEB type systems
    * [BIGTOP-2981] - Packaging SparkR is broken due to BIGTOP-2959
    * [BIGTOP-2984] - Rat check failed after BIGTOP-2698
    * [BIGTOP-2987] - Phoenix build break
    * [BIGTOP-2990] - Upgrade Phoenix version to 4.13.1-HBase-1.3
    * [BIGTOP-2991] - Bump up Spark version to 2.2.1
    * [BIGTOP-3001] - Change uid and gid for jenkins user in bigtop-toolchain
    * [BIGTOP-3003] - Ant-1.9.9 tarball is removed from Apache mirrors
    * [BIGTOP-3004] - Fix HBase build failure on Debian/Fedora
    * [BIGTOP-3013] - kafka charm: fail to deploy using Bigtop-trunk-repos
    * [BIGTOP-3014] - juju: use charm-env for shebangs
    * [BIGTOP-3018] - detect-javahome script has a typo in variable name
    * [BIGTOP-3023] - Bump qfs to 2.0.0
    * [BIGTOP-3024] - Zeppelin build is failed after Spark is bumpped to 2.2.1
    * [BIGTOP-3025] - ci.bigtop.apache.org certificate is expired and causes errors
    * [BIGTOP-3026] - 404 error: http://ci.bigtop.apache.org/view/Packages/job/Bigtop-trunk-packages/
    * [BIGTOP-3027] - Wrong Leveldbjni native binary for aarch64
    * [BIGTOP-3030] - Fix Ambari build failure on non-x86 platforms
    * [BIGTOP-3033] - Spark build on OpenSUSE is failed
    * [BIGTOP-3035] - Provisioner failed because init is missed in Debian-9
    * [BIGTOP-3036] - Download gradle and groovy via TLS and do signature checking on ant
    * [BIGTOP-3037] - Download maven securely
    * [BIGTOP-3040] - Solr's default configsets doesn't work with smoke test cases
    * [BIGTOP-3041] - Failed to init hadoop hdfs using init-hdfs.sh
    * [BIGTOP-3042] - HDFS TestHDFSQuota doesn't match Hadoop's definition
    * [BIGTOP-3044] - Fix docker build command for simple sh
    * [BIGTOP-3045] - Remove insecure maven repository URL from gradle config
    * [BIGTOP-3046] - Not correct auto find latest maven dist
    * [BIGTOP-3048] - Revert BIGTOP-3001 to bring packaging CI back
    * [BIGTOP-3050] - cgroups: cannot found cgroup mount destination: unknown
    * [BIGTOP-3052] - Maven version is fixed in security verification code
    * [BIGTOP-3053] - Tez failed to build due to bower version is deprecated
    * [BIGTOP-3054] - Missing Spark archive caused Zeppelin build failure
    * [BIGTOP-3061] - Crunch build failure
    * [BIGTOP-3076] - QFS build failed on ppc64le
    * [BIGTOP-3077] - OpenSuse-42.3 packages install error
    * [BIGTOP-3078] - ignite-shmem failed to build on ppc64le
    * [BIGTOP-3081] - Update HBase/Ignite-hadoop arch info
    * [BIGTOP-3082] - Fix build failure with flume-1.8+kafka-0.10.2.2
    * [BIGTOP-3083] - HBase and iginite-hadoop build failed on Fedora-26 due to BIGTOP-3081
    * [BIGTOP-3088] - provisioner failed to run puppet deployment on CentOS-7
    * [BIGTOP-3089] - Update provision config files with changes in 1.3.0 release
    * [BIGTOP-3090] - provisioner failed on fedora-26 when deploying jdk
    * [BIGTOP-3091] - Set Bigtop repo to higher priority


** New Feature
    * [BIGTOP-2868] - Travis integration for Jar files.
    * [BIGTOP-3007] - expose hive config options for zookeeper


** Improvement
    * [BIGTOP-2698] - Build/install protobuf-2.5 from source
    * [BIGTOP-2730] - Bump zookeeper to 3.4.10
    * [BIGTOP-2784] - Bump version of Solr to 6.5.1
    * [BIGTOP-2787] - [bigtop-slaves] Support of CentOS 7 ARM64 bigtop-slaves
    * [BIGTOP-2794] - [bigtop-puppet] Support CentOS 7 AArch64 bigtop puppet
    * [BIGTOP-2809] - Support R integration for Spark
    * [BIGTOP-2810] - Support R integration for Zeppelin
    * [BIGTOP-2811] - Add R to toolchain for Spark and Zeppelin
    * [BIGTOP-2819] - Polish the README.md for 1.2.1 release
    * [BIGTOP-2824] - [sandbox] Support CentOS 7 AArch64 sandbox
    * [BIGTOP-2825] - Upgrade gradle to the latest 4.0
    * [BIGTOP-2834] - spark charm: refactor for restricted networks; lib cleanup
    * [BIGTOP-2839] - Bump Hadoop version to 2.7.4
    * [BIGTOP-2843] - Add provisioner config yaml for ubuntu-16.04-aarch64
    * [BIGTOP-2846] - Add DSL documentation for GIT-based builds
    * [BIGTOP-2848] - Add provisioner docker yaml config file CentOS-7 AArch64
    * [BIGTOP-2851] - [bigtop-puppet] Add Debian 8 AArch64 bigtop puppet
    * [BIGTOP-2852] - [bigtop-slaves] Add Debian 8 AArch64 bigtop-slaves
    * [BIGTOP-2853] - [sandbox] Add Debian 8 AArch64 sandbox
    * [BIGTOP-2854] - Add provisioner docker yaml config file Debian 8 AArch64
    * [BIGTOP-2856] - [sandbox] Add a condition in detect_repo()
    * [BIGTOP-2857] - Add aarch64 support for fedora-25
    * [BIGTOP-2858] - Add AArch64 support for Debian 9
    * [BIGTOP-2867] - spark charm: make bigtop version configurable
    * [BIGTOP-2869] - Bump solr to 6.6.0
    * [BIGTOP-2872] - Replace aarch64 orgnanization with the more-specific arm64v8 organization in Official docker
    * [BIGTOP-2874] - juju bundle refresh (august 2017)
    * [BIGTOP-2875] - giraph charm: update metadata/readme
    * [BIGTOP-2882] - Bump Hadoop and all dependencies to actual releases
    * [BIGTOP-2889] - Remove HADOOP_HOME_WARN_SUPPRESS setting
    * [BIGTOP-2910] - zeppelin charm: support bigtop upgrade
    * [BIGTOP-2914] - GPDB 5.1.0 has been release. Let's bump that
    * [BIGTOP-2916] - fix deprecated gradle syntax
    * [BIGTOP-2918] - Update distributions for Bigtop-1.3
    * [BIGTOP-2919] - Update maven to 3.5.2
    * [BIGTOP-2920] - Cleanup puppet recipies: remove deprecated platforms
    * [BIGTOP-2922] - Drop arch specific bigtop-* images
    * [BIGTOP-2925] - Missing license header for .travis.yml
    * [BIGTOP-2936] - Add RedHat default Oracle Java install location to detection script
    * [BIGTOP-2959] - Add SPARK_DIST_CLASSPATH to include libraries for HDFS and YARN
    * [BIGTOP-2974] - Add puppet code to deploy SparkR package
    * [BIGTOP-2989] - Building Hadoop with a pre-downloaded Tomcat
    * [BIGTOP-2992] - Building Pig with pre-arranged Forrest
    * [BIGTOP-3002] - For Kafka, it should be possible to set the broker.id config and log.dirs config.
    * [BIGTOP-3005] - Add zkpeer-relation-changed hook to zookeeper charm.
    * [BIGTOP-3010] - juju bundle refresh (feb 2018)
    * [BIGTOP-3011] - zookeeper: support autopurge.purgeInterval and autopurge.snapRetainCount.
    * [BIGTOP-3031] - Auto find latest maven dist
    * [BIGTOP-3038] - Add rollingupgrade option in hadoop-hdfs-namenode.svc
    * [BIGTOP-3039] - Change git browse link to Github
    * [BIGTOP-3047] - Add nagios monitoring to zookeeper charm.
    * [BIGTOP-3055] - Bump GPDB to 5.10.0
    * [BIGTOP-3058] - Bump flume to 1.8.0
    * [BIGTOP-3059] - Bump Ambari to 2.6.1
    * [BIGTOP-3060] - juju bundle refresh (august 2018)
    * [BIGTOP-3062] - Bump flink to 1.4.2
    * [BIGTOP-3064] - Bump HBase to 1.3.2
    * [BIGTOP-3065] - Bump Hadoop to 2.8.4
    * [BIGTOP-3066] - Bump tez to 0.9.1
    * [BIGTOP-3067] - Bump Hive to 2.3.3
    * [BIGTOP-3068] - Bump Hama to 0.7.1
    * [BIGTOP-3069] - Bump crunch to 0.15.0
    * [BIGTOP-3103] - Update download page to comply with Apache announcement requirements

** Test
    * [BIGTOP-2865] - HBase smoke test implementation


** Task
    * [BIGTOP-2739] - refresh juju bundles with latest charm revs
    * [BIGTOP-2877] - Drop Kite packaging
    * [BIGTOP-2884] - Upgrade gcc to support C++11 on CentOS 6
    * [BIGTOP-2924] - Bring back 1.2.1 changes into master
    * [BIGTOP-2945] - Define Bigtop 1.3 release BOM
    * [BIGTOP-2969] - Bump up Spark version to 2.2.0
    * [BIGTOP-2970] - Bump Zeppelin version to 0.7.3
    * [BIGTOP-3006] - Add Jun He to team list
    * [BIGTOP-3063] - [Umbrella] Efforts for 1.3.0 release
    * [BIGTOP-3074] - Drop oozie packaging
    * [BIGTOP-3075] - Drop pig packaging
    * [BIGTOP-3106] - Update links in download page

* Release 1.2.1 (2017-10-24)

Release Notes - Bigtop - Version 1.2.1

** Sub-task
    * [BIGTOP-2165] - ignite-hadoop service doesn't start
    * [BIGTOP-2396] - Create CI jobs for new Docker Provisioner
    * [BIGTOP-2758] - [Sandbox] Support dryrun in build script
    * [BIGTOP-2760] - [Sandbox] Upgrade to Bigtop 1.2
    * [BIGTOP-2761] - Remove bigtop-deploy image build scripts
    * [BIGTOP-2767] - Auto detect repo does not need OS code name since 1.2.0
    * [BIGTOP-2769] - OS_TO_CODE_NAME has been removed in BIGTOP-2767
    * [BIGTOP-2772] - [Sandbox] Add --dryrun mode into helper script and document
    * [BIGTOP-2814] - Make provisioner config names be consistent with OS names in CI
    * [BIGTOP-2815] - Puppet should be able to generate multiple repo files
    * [BIGTOP-2816] - Fix provisioner config name for ubuntu-16.04

** Bug
    * [BIGTOP-2295] - Docker tests should consume current builds
    * [BIGTOP-2679] - Streamline CI Jobs
    * [BIGTOP-2716] - Solr build failed when OpenJDK8u_121 is used
    * [BIGTOP-2729] - AMBARI-20686: Add ID to allow compilation with recent maven
    * [BIGTOP-2737] - Spark charm doesn't handle HA or examples well
    * [BIGTOP-2738] - spark-worker fails to start
    * [BIGTOP-2740] - hbase 1.1.3 does not work on ppc64le
    * [BIGTOP-2743] - hbase shell does not work on ppc64le
    * [BIGTOP-2748] - Fix a puppet compatibilty issue 
    * [BIGTOP-2749] - puppet: use jessie package on jessie, not trusty
    * [BIGTOP-2750] - puppet: increase compatibility with future versions
    * [BIGTOP-2751] - ambari: Storm 1.1.0-SNAPSHOT is no longer available, use released version
    * [BIGTOP-2753] - Initial support for Debian-9
    * [BIGTOP-2754] - Revert BIGTOP-2730: Upgrade Zookeeper to version 3.4.10
    * [BIGTOP-2755] - Gradle needs cacerts file in place on fedora
    * [BIGTOP-2756] - Get rid of Permission Denied when creating/destroying Docker Provisioner cluster
    * [BIGTOP-2762] - Zeppelin installation failed due to JDK not installed
    * [BIGTOP-2763] - Add /user/zeppelin directory for running Spark job on YARN in Zeppelin 
    * [BIGTOP-2764] - deployment failure when roles include spark::common and spark::yarn*
    * [BIGTOP-2765] - fix roles logic for spark/zeppelin charms
    * [BIGTOP-2766] - [Puppet] Spark worker startup failed due to default master_url is yarn
    * [BIGTOP-2771] - ambari: build failed due to using third-party ConcurrentHashMap instead of the standard one unnecessarily
    * [BIGTOP-2774] - gradlew toolchain does not work on Ubuntu 16.04.2/Puppet 3.8.5
    * [BIGTOP-2775] - Make open jdk 8 available on bigtop/puppet:debian-8
    * [BIGTOP-2781] - [Provisioner] 127.0.0.1 does not successfully inserted after BIGTOP-2756
    * [BIGTOP-2788] - Corrects Apex patch for version 3.6.0
    * [BIGTOP-2789] - Ambari: installing ODPi mpack fails due to changing its file name
    * [BIGTOP-2790] - Ambari: deploying cluster fails due to ambari-agent version mismatch
    * [BIGTOP-2793] - BIGTOP-2790 broke Ambari build on rpm-based system
    * [BIGTOP-2796] - Bigtop Zookeeper(3.4.6) package conflict with Ubuntu 16.04 Zookeeper(3.4.8)
    * [BIGTOP-2797] - zeppelin charm external role handling
    * [BIGTOP-2798] - Apex component has duplicate slf4j binding
    * [BIGTOP-2799] - [Puppet] Flink deployment failure on all supported OS
    * [BIGTOP-2800] - provisioner fails for kerberos on centos-7
    * [BIGTOP-2801] - charm race condition when gathering metrics
    * [BIGTOP-2803] - Minor issues in bigtop.bom
    * [BIGTOP-2805] - ycsb: turn of autodetection of dependencies by rpm
    * [BIGTOP-2806] - hue is not installable on debian, ubuntu
    * [BIGTOP-2808] - Handle deletion of symlinks: update gradle
    * [BIGTOP-2826] - Zeppelin RPM is broken: "missing" osgi package deps
    * [BIGTOP-2829] - [iTest] build failed during Maven integration test phase
    * [BIGTOP-2832] - Toolchain failed to install on Debian 8
    * [BIGTOP-2850] - Not able to build bigtop/slaves image for OpenSuSE 42.1
    * [BIGTOP-2870] - testHCFS should be using USER_NAME for expected output
    * [BIGTOP-2871] - Make run_itest report Standard Error from tests to stderr
    * [BIGTOP-2873] - A few cosmetic changes to run_itest.sh output
    * [BIGTOP-2879] - BIGTOP-2749 breaks deployments on Debian-8
    * [BIGTOP-2890] - Download page must not link to snapshots / nightly builds
    * [BIGTOP-2891] - Download page must link to ASF mirrors
    * [BIGTOP-2900] - Crunch build failed because of OS OOM killer on OpenJDK 1.8.0-144
    * [BIGTOP-2901] - disable GPDB because of build failure on OpenSuSE 42.1
    * [BIGTOP-2903] - update protobuf rpm links
    * [BIGTOP-2908] - giraph charm: release audit failure

** Improvement
    * [BIGTOP-2355] - Update Mahout version to 0.13.0
    * [BIGTOP-2677] - layer-spark: Improve sparkpi action output
    * [BIGTOP-2730] - Bump zookeeper to 3.4.10
    * [BIGTOP-2770] - Juju charm/bundle refresh
    * [BIGTOP-2777] - make hbase charm more robust
    * [BIGTOP-2778] - Delete PermSize / MaxPermsize options, no longer support by Java 8
    * [BIGTOP-2783] - new charm icons for zookeeper and zeppelin
    * [BIGTOP-2795] - spark charm: fix sparkpi and rework start/stop logic
    * [BIGTOP-2802] - Some packages don't create necessary groups on debian-based system if the users correspond to them already exist
    * [BIGTOP-2807] - Upgrade Spark to 2.1.1
    * [BIGTOP-2812] - Upgrade Zeppelin version to 0.7.2
    * [BIGTOP-2819] - Polish the README.md for 1.2.1 release
    * [BIGTOP-2821] - expose extra config options for spark
    * [BIGTOP-2827] - juju bundle refresh (june 2017)
    * [BIGTOP-2828] - Since BIGTOP-2775 JDK version has been specified by Bigtop Puppet

** New Feature
    * [BIGTOP-2253] - Rewrite Bigtop Docker Provisioner to use native solutions and support multi-host cluster deployment
    * [BIGTOP-2779] - new hive charm
    * [BIGTOP-2822] - spark charm: leverage puppet config, gpu enablement

** Task
    * [BIGTOP-2739] - refresh juju bundles with latest charm revs
    * [BIGTOP-2747] - new charm revs for bigtop-1.2
    * [BIGTOP-2776] - Bump Apache Apex version to 3.6.0
    * [BIGTOP-2785] - Define Bigtop 1.2.1 release BOM
    * [BIGTOP-2786] - Push Bigtop 1.2.1 Docker build slaves to Docker Hub
    * [BIGTOP-2877] - Drop Kite packaging

* Release 1.2.0 (2017-04-04)

Release Notes - Bigtop - Version 1.2.0

** Sub-task
    * [BIGTOP-1406] - package Ambari in Bigtop
    * [BIGTOP-1408] - create basic end-to-end tests for Ambari integration
    * [BIGTOP-1409] - consider using ambari shell
    * [BIGTOP-1624] - Add puppet recipes for deploying kafka
    * [BIGTOP-2179] - Apache Tajo to bigtop: packaging as deb/rpm
    * [BIGTOP-2180] - Apache Tajo to bigtop: make tests
    * [BIGTOP-2224] - Let's bump groovy version for smokes to 2.4.10
    * [BIGTOP-2254] - Replace the Docker orchestration tool from Vagrant to Docker Compose
    * [BIGTOP-2285] - Add qfs rpm and debian packaging code
    * [BIGTOP-2293] - Add puppet recipes for qfs components
    * [BIGTOP-2312] - Add environment check
    * [BIGTOP-2314] - Added deb and rpm package of Apache Apex to bigtop.
    * [BIGTOP-2315] - Add smoke test for apex
    * [BIGTOP-2316] - Add apex puppet receipes
    * [BIGTOP-2317] - Add smoke tests for QFS
    * [BIGTOP-2319] - Build initial smoke-tests distribution 
    * [BIGTOP-2326] - Build salves need to have the toolchain run again to install qfs dependencies
    * [BIGTOP-2345] - Create Flink packaging
    * [BIGTOP-2357] - Create puppet recipes
    * [BIGTOP-2468] - Add Juju hadoop-processing bundle
    * [BIGTOP-2469] - Add cloud-weather-report test plan
    * [BIGTOP-2491] - Update provisioner/docker-hadoop.sh to bind with provisioner/utils
    * [BIGTOP-2492] - Split flink debian packaging
    * [BIGTOP-2505] - Support systemd containers, clean up hiera.yaml handling, fix exec (-e) flag
    * [BIGTOP-2518] - Add node to the build slave configuration
    * [BIGTOP-2526] - Bump flink version to 1.1.3
    * [BIGTOP-2530] - Create Greenplum packages
    * [BIGTOP-2531] - Create Greenplum deployment scripts
    * [BIGTOP-2532] - Create Greenplum test
    * [BIGTOP-2600] - Bump Groovy version to 2.4.10
    * [BIGTOP-2601] - Bump Ignite to 1.9
    * [BIGTOP-2613] - create bigtop/puppet docker image or fedora 25
    * [BIGTOP-2614] - create bigtop/slave docker image for fedora 25
    * [BIGTOP-2620] - Bump oozie version to 4.3.0
    * [BIGTOP-2624] - Bump Phoenix version to 4.9.0
    * [BIGTOP-2625] - update crunch for JAVA 8
    * [BIGTOP-2626] - HBase build fails when JAVA 8 is used
    * [BIGTOP-2627] - Kite 1.1.0 build fails when JAVA 8 is used
    * [BIGTOP-2646] - Move Vagrant Provisioner from bigtop-deploy/vm to provisioner directory
    * [BIGTOP-2647] - Clean up code under bigtop-deploy/vm after everything moved to provisioner directory
    * [BIGTOP-2657] - Upgrade to Hue 3.11.0
    * [BIGTOP-2668] - Polish and update Docker Provisioner configurations
    * [BIGTOP-2672] - Update gradle wrapper for Docker Provisioner
    * [BIGTOP-2700] - Adding tests to test the doas feature of httpfs
    * [BIGTOP-2701] - Update hcfs tests so it can work in both casers where fs.trash.interval is disabled or enabled.
    * [BIGTOP-2702] - Fix Sandbox creation script
    * [BIGTOP-2704] - Include ODPi runtime tests option into the battery of smoke tests
    * [BIGTOP-2705] - provide puppet deployment code for Ambari







** Bug
    * [BIGTOP-976] - package deployment tests are CDH specific: _has_ to be removed or fixed
    * [BIGTOP-1533] - failed to load/initialize native-bzip2 library system-native
    * [BIGTOP-2047] - detect JAVA_HOME for JDK8, remove obsolete detection code (JDK6/oracle JDK)
    * [BIGTOP-2133] - Running BPSGenerator using fat-jar fails on Mac OS X
    * [BIGTOP-2134] - Wrong package name in bigpetstore-mapreduce/arch.dot
    * [BIGTOP-2135] - PigCSVCleaner fails due to the lack of the dependent jar
    * [BIGTOP-2136] - A comment about parameter substitution in BPS_analytics.pig is slightly wrong
    * [BIGTOP-2138] - deb: make bigtop-jsvc a wrapper package for jsvc package
    * [BIGTOP-2220] - flume-agent.init incorrectly handles flume.conf
    * [BIGTOP-2225] - Bump toolchain gradle to 2.10
    * [BIGTOP-2229] - bigtop deploy to support centos-7
    * [BIGTOP-2231] - build.gradle carries one too many sets of repositories
    * [BIGTOP-2261] - adding bigtop/puppet:fedora-22 build support for ppc64le
    * [BIGTOP-2274] - CLONE - rpm: need to make bigtop-jsvc a wrapper package for jsvc package
    * [BIGTOP-2301] - Bigtop Homepage shows wrong url to CI
    * [BIGTOP-2302] - Use apt instead of yum in setup-env-debian.sh
    * [BIGTOP-2303] - Fix the indentation in docker-hadoop.sh
    * [BIGTOP-2308] - Clean up build directory after sucessfull build of package
    * [BIGTOP-2318] - Release assembly needs to be updated
    * [BIGTOP-2340] - BIGTOP-2319 is incomplete: the code for smoke-tests is missing
    * [BIGTOP-2342] - Set yarn.log.server.url to point to JH server
    * [BIGTOP-2346] - Do not use gradle delete() for sources and build directories
    * [BIGTOP-2347] - Clean up build directory after sucessfull build of package (2nd try)
    * [BIGTOP-2350] - HCatalog WebHCat server's default file incorrectly specifies HCAT_PREFIX AND HADOOP_PREFIX
    * [BIGTOP-2353] - fix qfs suse build
    * [BIGTOP-2354] - qfs does not build on fedora
    * [BIGTOP-2358] - Update the URL for Bigtop-trunk-packages job on README
    * [BIGTOP-2359] - Add .DS_Store to .gitignore
    * [BIGTOP-2362] - Enabling bigtop docker provisioner for ppc64le (ubuntu 15.04)
    * [BIGTOP-2366] - Support https:// repositories for DEB systems
    * [BIGTOP-2367] - QFS packages do not handle /var/run/qfs properly
    * [BIGTOP-2372] - Puppet deploy README points to non-existing repo
    * [BIGTOP-2373] - kinit path is not correctly configured in hue.ini template for CentOs by puppet module
    * [BIGTOP-2374] - Toolchain needs clear warning for Puppet <3
    * [BIGTOP-2376] - Update Tomcat and remove obsolete downloads 
    * [BIGTOP-2377] - Update to Hadoop 2.7.2
    * [BIGTOP-2378] - Do not use archive.apache.org for ant download
    * [BIGTOP-2379] - update maven to 3.3.9 and refactor toolchain
    * [BIGTOP-2380] - support opensuse-42.1 (leap)
    * [BIGTOP-2382] - Parameterise and expose "default_hdfs_superuser" for hue.ini
    * [BIGTOP-2399] - Maven artifacts are still on 2.6.0 version of Apache Hadoop
    * [BIGTOP-2400] - Get groovy plugins used by Maven in sync with Bigtop groovy runtime
    * [BIGTOP-2401] - a commiter name is missing in the "Who we are" page
    * [BIGTOP-2402] - yet another commiter name is missing in the "Who we are" page
    * [BIGTOP-2404] - puppetize.sh fails on Ubuntu 14.04 because of the lack of apt-get update
    * [BIGTOP-2405] - Rollback BIGTOP-2049 as the original issue was fixed in the upstream
    * [BIGTOP-2406] - init scripts do not work reliable on systemd systems
    * [BIGTOP-2412] - arm dockerfile breaks RAT
    * [BIGTOP-2413] - QFS README.md breaks RAT
    * [BIGTOP-2419] - Fix symlinks on packaging Crunch rpm and deb
    * [BIGTOP-2421] - Ignite RPM is broken: "missing" osgi package deps
    * [BIGTOP-2423] - Fix hard-coded port number in Sqoop smokes
    * [BIGTOP-2425] - crunch needs JDK8 javadoc
    * [BIGTOP-2427] - jsvc build not recognizing ARM as valid platform
    * [BIGTOP-2430] - Adding Dockerfile to build puppet image for ubuntu-16.04-ppc64le
    * [BIGTOP-2431] - Adding Dockerfile to build slaves image for ubuntu-16.04-ppc64le
    * [BIGTOP-2433] - mvn is missing in Bigtop Toolchain
    * [BIGTOP-2434] - Change Spark test to unpack jar file and retrieve resources
    * [BIGTOP-2439] - flink: fix adduser and register init.d scripts on DEB systemes
    * [BIGTOP-2441] - spark smoke test doesn't work relying on yarn-client submittion
    * [BIGTOP-2445] - Adding Dockerfile to build deploy image for ubuntu-16.04-ppc64le
    * [BIGTOP-2448] - Adding Dockerfile to build puppet image for ubuntu-16.04-arm
    * [BIGTOP-2449] - Adding Dockerfile to build slaves image for ubuntu-16.04-x86
    * [BIGTOP-2450] - Adding Dockerfile to build slaves image for ubuntu-16.04-arm
    * [BIGTOP-2460] -  docker-hadoop.sh fails when deploying on ubunt 16.04 images
    * [BIGTOP-2463] - Regression: bigtop-jsvc build fails on ppc64le architecture 
    * [BIGTOP-2464] - Outdated descriptions in vagrant-puppet-vm/README.md
    * [BIGTOP-2471] - qfs does not build on opensuse:42.1
    * [BIGTOP-2472] - zeppelin puppet module needs to expose ZEPPELIN_WAR_TEMPDIR
    * [BIGTOP-2473] - Mahout puppet script fails to find Package[hadoop]
    * [BIGTOP-2474] - Improve handling of gradle home
    * [BIGTOP-2487] - Alluxio /var/log/alluxio is not created 
    * [BIGTOP-2488] - Redundant zookeeper/lib directory
    * [BIGTOP-2494] - Use systemd within bigtop/deploy docker image for debian-8, centos-7, fix centos-7 provisioner
    * [BIGTOP-2495] - hive-hbase package is broken
    * [BIGTOP-2509] - Path error in bigtop-packages/src/common/solr/tomcat-deployment.sh
    * [BIGTOP-2512] - Wrong help message in docker-hadoop.sh
    * [BIGTOP-2513] - Some RAT exclude rules defined in build.gradle are not defined in pom.xml
    * [BIGTOP-2523] - Incorrect cycle dependency during puppet deployment causes error at Debian 8
    * [BIGTOP-2527] - Recreate all bigtop docker images and install "host" on debian
    * [BIGTOP-2528] - provisioner fails to add short host name
    * [BIGTOP-2529] - Vagrant Provisioner failed to start up daemons
    * [BIGTOP-2533] - Use TLS for downloading sources
    * [BIGTOP-2535] - frontend-maven-plugin fails on ppc64le
    * [BIGTOP-2536] - tarball.destination is ignored when set
    * [BIGTOP-2537] - Hive smoke test identifies as org.apache.bigtop.itest.hadoop.mapreduce
    * [BIGTOP-2542] - Some files related to docker provisioner breaks RAT
    * [BIGTOP-2543] - Some minor problems on provisioner/docker/docker-hadoop.sh
    * [BIGTOP-2545] - Add ZOOKEEPER-2594 to bigtop
    * [BIGTOP-2546] - Make debian/ubuntu toolchain install more resistent agains failures
    * [BIGTOP-2549] - "Expected" and "actual" values are mistakenly switched in some JUnit method invocation
    * [BIGTOP-2551] - docker-hadoop.sh --create fails with "Error: Could not match |$index" message
    * [BIGTOP-2553] - namenode ports are not configured for non-HA mode
    * [BIGTOP-2556] - Building Hadoop fails because Tomcat 6.0.45 is not downloadable from Apache mirror
    * [BIGTOP-2557] - BIGTOP-2536 broke DataFu, QFS and YCSB
    * [BIGTOP-2558] - Add ppc64le and arm64 node to the build slave configuration
    * [BIGTOP-2559] - Revert JIRA BIGTOP-2535
    * [BIGTOP-2560] - Spark charm failing automated tests
    * [BIGTOP-2563] - zeppelin build fails on ppc64le
    * [BIGTOP-2564] - HBase build fails on Power
    * [BIGTOP-2565] - upgrade Spark to version 1.6.2
    * [BIGTOP-2566] - Specify KAFKA_VERSION in build command for Flume
    * [BIGTOP-2569] - Spark 2.0
    * [BIGTOP-2570] - ease hadoop charm debugging
    * [BIGTOP-2582] - Adding Spark1 components for Spark 1.x family 
    * [BIGTOP-2585] - Zookeeper service does not start if kerberos is disabled
    * [BIGTOP-2587] - vagrant-puppet-vm fails with "Could not find class node_with_components"
    * [BIGTOP-2588] - Spark 2.0.1 installation fails on DEB
    * [BIGTOP-2589] - spark1 build break
    * [BIGTOP-2590] - Flume build break on RPM
    * [BIGTOP-2591] - Fix bug in BIGTOP-2569
    * [BIGTOP-2593] - Build fail caused by tomcat 6.0.45 version
    * [BIGTOP-2594] - Workaround to fix Hive Build, by using SPARK1 Version
    * [BIGTOP-2596] - Phoenix build fails
    * [BIGTOP-2597] - crunch build failed
    * [BIGTOP-2599] - Zeppelin 0.6.2 build fails on Power
    * [BIGTOP-2602] - ignite-hadoop build break
    * [BIGTOP-2603] - NN/RM charm should include a spark user/group
    * [BIGTOP-2604] - Build flink-dist with proper shading
    * [BIGTOP-2605] - Addendum for BIGTOP-2514
    * [BIGTOP-2606] - spark1 build fails when RPM is sellected
    * [BIGTOP-2608] - upgrade Hadoop to 2.7.3
    * [BIGTOP-2609] - upgrade Kafka to version 0.10.0.0
    * [BIGTOP-2610] - upgrade mahout to version 0.12.2
    * [BIGTOP-2612] - Need bigtop/puppet image for Fedora-25
    * [BIGTOP-2618] - bigtop-jsvc build fails with OpenJDK-1.8
    * [BIGTOP-2621] - JAVA_HOME is not set on Fedora-25+JAVA-1.8 for x86 
    * [BIGTOP-2623] - Zeppelin 0.6.2 build fails on all platforms
    * [BIGTOP-2628] - sqoop2 build fails when JAVA 8 is used
    * [BIGTOP-2632] - bigtop 1.1.0 sqoop2 wrote rpm error
    * [BIGTOP-2635] - ubuntu on ppc64le is missing a apt-get update
    * [BIGTOP-2636] - Fix giraph after upgrade to Hadoop-2.7.3
    * [BIGTOP-2637] - Fix flume because of kafka 0.10 update
    * [BIGTOP-2638] - Update to kafka 0.10.1.0
    * [BIGTOP-2640] - Incomplete patch BIGTOP-2635 - Bigtop stack build fails on Ubuntu 16.04-ppc64le
    * [BIGTOP-2643] - Force giraph to compile by removing findbugs from all pom.xml
    * [BIGTOP-2644] - CI compiles random greenplum source
    * [BIGTOP-2648] - Gradle 2.7 SSL Problems
    * [BIGTOP-2649] - Default Java8 blocks default debian jdk
    * [BIGTOP-2650] - Docker build should pull up to date packages
    * [BIGTOP-2651] - Delete obsolete docker images and build files.
    * [BIGTOP-2652] - tajo rpm packaging seriously broken
    * [BIGTOP-2653] - upgrading to Spark 2.1
    * [BIGTOP-2654] - spark 2.1 binaries need either SPARK_HOME or non existing find-spark-home exe
    * [BIGTOP-2655] - Help spark find the native hadoop libs
    * [BIGTOP-2656] - regression - spark 2.1 upgrade breaks rpm packaging 
    * [BIGTOP-2661] - Docker deploy images should pull upstream images
    * [BIGTOP-2662] - provisioner: Add support for JDK8 on debian
    * [BIGTOP-2663] - puppet hadoop module: Consolidate memory resource settings 
    * [BIGTOP-2664] - create provisioner test for trunk packages with jdk8
    * [BIGTOP-2665] - Fix hue for opensuse
    * [BIGTOP-2669] - Create bigtop-1.2 repository 
    * [BIGTOP-2673] - Need to back port HADOOP-11628 for JDK8
    * [BIGTOP-2674] - docker-hadoop option -C does not work correctly any more
    * [BIGTOP-2675] - [Puppet] Kafka can only be deployed on master node
    * [BIGTOP-2676] - Smoke test fails on Spark 2
    * [BIGTOP-2678] - Add hive-hbase role to install hive-hbase rpm
    * [BIGTOP-2689] - Upgrade Zeppelin to version 0.7
    * [BIGTOP-2690] - gradlew toolchain fails trying to download Ant 1.9.8
    * [BIGTOP-2692] - Flume init script should load only '.conf' extension files
    * [BIGTOP-2693] - Update readme for build and configuring git repo for packages
    * [BIGTOP-2695] - arch.dot for bigpetstore-spark is outdated
    * [BIGTOP-2699] - Zeppeling CI build is broken 
    * [BIGTOP-2707] - localhost is missing in docker provisioner instances
    * [BIGTOP-2708] - puppet code always installs hdfs by default
    * [BIGTOP-2710] - qfs debian build is breaking because it is confused about Maven home
    * [BIGTOP-2711] - fix rat problems
    * [BIGTOP-2715] - Tiny typo in the README.md
    * [BIGTOP-2718] - Mark tez package as arch dependent
    * [BIGTOP-2719] - Mark zeppelin package as arch dependent
    * [BIGTOP-2721] - libsnappy reference path is not correct for hadoop/ubuntu16 build
    * [BIGTOP-2724] - putting a final nail in Java's 7 coffin
    * [BIGTOP-2725] - a few usability improvements to run_itest.sh
    * [BIGTOP-2726] - Bump ambari version to 2.5
    * [BIGTOP-2727] - fix deployment tasks





** Improvement
    * [BIGTOP-1608] - Create Unified testing solution: Smoke-Tests and Test-Artifacts
    * [BIGTOP-1843] - Upgrade Sqoop to 1.4.6
    * [BIGTOP-2077] - Bump HBase version to 1.1
    * [BIGTOP-2118] - Update HBase to 0.98.17
    * [BIGTOP-2306] - Add support for specifying git repository access credentials
    * [BIGTOP-2309] - Update submodules after git clone
    * [BIGTOP-2327] - Bump up Phoenix to 4.7.0
    * [BIGTOP-2330] - Bump Tachyon version to 0.8.2
    * [BIGTOP-2332] - Upgrade Tajo version to 0.11.1
    * [BIGTOP-2333] - Make Apache Pig work with HBase 1.1 on Hadoop 2
    * [BIGTOP-2337] - Fix script to make deb in Tajo
    * [BIGTOP-2351] - Vagrant VM is missing /user/vagrant HDFS directory
    * [BIGTOP-2352] - Packaged Vagrant box has incorrect host info on restart
    * [BIGTOP-2370] - Upgrade DataFu version to 1.3.0
    * [BIGTOP-2381] - Making Zookeeper hosts templatize in puppet module of hue
    * [BIGTOP-2384] - Refactor toolchain code to extract packages version out of every action
    * [BIGTOP-2385] - Reformat bigtop_toolchain/manifests/packages.pp to ease maintenance
    * [BIGTOP-2393] - Add ARM64 support for build environment
    * [BIGTOP-2395] - Create separate page to point "Download now" link to
    * [BIGTOP-2403] - Remove affiliation column in the team list
    * [BIGTOP-2407] - Making "force_username_lowercase" variable templatize in puppet module of hue
    * [BIGTOP-2408] - group_filter variable value is not templatize in puppet module of hue
    * [BIGTOP-2409] - nt_domain configuration option for hue to connect to Active Directory
    * [BIGTOP-2410] - Making "ldap_username_pattern" variable templatize in puppet module of hue
    * [BIGTOP-2411] - Add OS-neutral wrappers to build all native packages and repositories 
    * [BIGTOP-2416] - Upgrade Crunch to 0.13.0
    * [BIGTOP-2429] - Add Solr to gradle smokes
    * [BIGTOP-2443] - inject unzip method to ZipInputStream, accepting regex for include
    * [BIGTOP-2455] - support pre-installed java environment
    * [BIGTOP-2458] - Add option to disable IP hostname checking for DataNode registration
    * [BIGTOP-2459] - Add option to disable vmem check for NodeManager
    * [BIGTOP-2466] - HBase puppet scripts co-deploy ZK and Datanode along with HBase
    * [BIGTOP-2478] - Zookeeper does not have any smoke tests
    * [BIGTOP-2479] - Update qfs maintainer to kstinson
    * [BIGTOP-2490] - Spark in HA when Zookeeper is available 
    * [BIGTOP-2504] - Kafka should be able to bind to something other than 0.0.0.0/the default interface
    * [BIGTOP-2506] - Zookeeper: non default interface for client
    * [BIGTOP-2507] - Make buildstamp configurable by a bom file
    * [BIGTOP-2516] - Add Zeppelin Charm
    * [BIGTOP-2521] - Problem with deprecated methods in puppet code with puppet option parser=future
    * [BIGTOP-2522] - Add spark processing juju bundle
    * [BIGTOP-2547] - Don't render ip-hostname-check in hdfs-site.xml if default
    * [BIGTOP-2548] - Refresh charms for Juju 2.0 and Xenial
    * [BIGTOP-2554] - expose bind-host options in hieradata
    * [BIGTOP-2555] - hadoop charms should use bind-host overrides
    * [BIGTOP-2561] - add juju bundle for hadoop-spark
    * [BIGTOP-2571] - cwr driven updates to the zeppelin juju charm
    * [BIGTOP-2575] - zk charm test updates
    * [BIGTOP-2576] - For small clusters it is useful to turn replace-datanode-on-failure off
    * [BIGTOP-2577] - kafka charm test updates
    * [BIGTOP-2578] - Puppet needs to be updated for Hive Server2
    * [BIGTOP-2579] - Puppet needs to be updated for Hive Metastore service
    * [BIGTOP-2611] - Adding Fedora-25 with Java 1.8 support
    * [BIGTOP-2616] - refresh juju hadoop-processing bundle
    * [BIGTOP-2617] - refresh juju spark-processing bundle
    * [BIGTOP-2682] - update juju bundles with recent charm revs
    * [BIGTOP-2688] - Add flag for provisioning of Yum Repo
    * [BIGTOP-2694] - Added Hernan Vivani (hvivani) as elasticsearch maintainer
    * [BIGTOP-2696] - Build out VM for sandboxes
    * [BIGTOP-2697] - Back port HADOOP-12366 into Bigtop
    * [BIGTOP-2712] - Juju CI driven updates
    * [BIGTOP-2714] - Update Groovy in the toolchain to 2.4.10




** New Feature
    * [BIGTOP-1641] - Add packaging for Apache Tajo
    * [BIGTOP-2282] - Define Bigtop 1.2 release BOM
    * [BIGTOP-2296] - Provide a way to build Docker container with functional stack
    * [BIGTOP-2339] - add centos-7 to the provisioiner matrix
    * [BIGTOP-2435] - Add Juju charms for hadoop component
    * [BIGTOP-2451] - Adding Ubuntu 16.04 support to Bigtop
    * [BIGTOP-2452] - Adding Dockerfile to build deploy image for ubuntu-16.04-x86
    * [BIGTOP-2476] - Add Zookeeper Charm
    * [BIGTOP-2477] - Add Juju charm for spark component
    * [BIGTOP-2481] - Add HBase Charm
    * [BIGTOP-2482] - Adding Pig charm
    * [BIGTOP-2483] - Add Mahout Charm
    * [BIGTOP-2486] - Add Kafka Charm
    * [BIGTOP-2524] - Add Greenplum component
    * [BIGTOP-2615] - Provide a tool to build pseudo cluster docker images
    * [BIGTOP-2660] - Add Giraph Charm














** Task
    * [BIGTOP-2289] - Set master version to 1.2.0-SNAPSHOT
    * [BIGTOP-2334] - Update latest release link on the website
    * [BIGTOP-2335] - ci link should use https:// authority
    * [BIGTOP-2368] - OpenStack config bigtop repo-url changes.
    * [BIGTOP-2371] - Add Oozie to gradle smoke tests
    * [BIGTOP-2414] - Rename Tachyon to Alluxio
    * [BIGTOP-2415] - readme spelling error
    * [BIGTOP-2456] - Update Apache Apex version to 3.4.0
    * [BIGTOP-2497] - Upgrade Apache Phoenix to 4.8.1
    * [BIGTOP-2500] - Remove hadoop jars from TEZ_HOME/lib and create appropriate symlinks
    * [BIGTOP-2525] - committer test:  add myself to team-list.xml
    * [BIGTOP-2538] - Bump version of Solr to 4.10.4
    * [BIGTOP-2550] - Update juju hadoop bundle for Juju 2.0 and Xenial
    * [BIGTOP-2567] - Upgrade Flume version to 1.7.0
    * [BIGTOP-2568] - Upgrade Kafka version to 0.9.0.1
    * [BIGTOP-2592] - Upgrade to Spark 2.0.2
    * [BIGTOP-2622] - Add Kengo Seki to team list
    * [BIGTOP-2629] - Add Jonathan Kelly to team list
    * [BIGTOP-2670] - Bump up Apache Apex version to 3.5.0
    * [BIGTOP-2687] - Remove /usr/share/java/*.jar from Sqoop2 catalina.properties
    * [BIGTOP-2703] - refresh juju charms/bundles with metric and CI support
    * [BIGTOP-2722] - Remove workaround allowing build by root in Tez



** Test
    * [BIGTOP-2534] - Flume tests fail with java.lang.NoClassDefFoundError: org/apache/commons/io/Charsets


** Wish
    * [BIGTOP-2680] - Update kafka to 0.10.1.1

* Release 1.1.0 (2016-01-30)

Release Notes - Bigtop - Version 1.1.0

** Sub-task
    * [BIGTOP-1494] - Introduce Groovy DSL to replace bigtop.mk
    * [BIGTOP-1499] - released source code  is not same with source code in branch
    * [BIGTOP-1898] - Dockerfiles to build bigtop/puppet docker images for 1.0 release
    * [BIGTOP-1899] - Migrate CI master to EC2 instance donated by Amazon EMR team
    * [BIGTOP-1901] - Provide bigtop/deploy images on dockerhub for CI and users to consume docker provisioner
    * [BIGTOP-1947] - Fix RAT plugin configuration to be able to RAT-validate all published artifacts
    * [BIGTOP-1959] - Avoid running top-level assembly while doing deploy for subprojects
    * [BIGTOP-1965] - Remove the link to 0.8.0 from the website
    * [BIGTOP-1973] - Add new tests for HDFS Balancer functionality
    * [BIGTOP-1975] - Smoke tests for Spark SQL
    * [BIGTOP-1981] - Add new tests for test, text, count commands
    * [BIGTOP-1983] - Move BigPetStore data generator to bigtop-data-generators
    * [BIGTOP-1984] - Extract samplers library from BigPetStore data generator
    * [BIGTOP-1985] - Extract name generator from BigPetStore data generator
    * [BIGTOP-1986] - Extract location dataset from BigPetStore data generator
    * [BIGTOP-1990] - Add gradle multi-project build files for bigtop-data-generators
    * [BIGTOP-1991] - Add BigTop Weatherman
    * [BIGTOP-1992] - Fix RAT check errors resulting from BPS data generator move
    * [BIGTOP-1995] - Update BigPetStore to use external locations  data
    * [BIGTOP-2000] - Add BigTop Data Generators to maintainers file
    * [BIGTOP-2009] - Add new tests for chgrp, cp, ls, mv, du, put, get, mkdir, stat and touchz
    * [BIGTOP-2025] - Make BOM to be a directional graph
    * [BIGTOP-2033] - Build order of the stack is broken 
    * [BIGTOP-2051] - Get rid of hair-brain environment vars left after make-based build
    * [BIGTOP-2055] - Refactor packages.gradle to get rid of excessive data containers; make code cleaner
    * [BIGTOP-2087] - The 1.0 release package artifacts on Bigtop jenkins is broken due to CI transition
    * [BIGTOP-2096] - ignite-hadoop service should restart upon changes in the package or configs
    * [BIGTOP-2097] - cleaning up the ignite-service
    * [BIGTOP-2104] - Packages upgrade to Spark 1.5.1
    * [BIGTOP-2105] - Puppet recipes improvements after Spark is bumped to 1.5.1
    * [BIGTOP-2107] - Ignite package still shows website at the incubator
    * [BIGTOP-2113] - Spark master doesn&#39;t bind to the host: ignores SPARK_MASTER_IP
    * [BIGTOP-2122] - Add zeppelin packages
    * [BIGTOP-2123] - Add zeppelin Puppet recipes
    * [BIGTOP-2149] - Zeppeling 0.5.5 has been officially released. Change the source ref
    * [BIGTOP-2154] - spark-shell doesn&#39;t start anymore without Hive libs in the classpath
    * [BIGTOP-2166] - Zeppelin shouldn&#39;t be build against constant version of Ignite
    * [BIGTOP-2167] - Zeppelin interpreter list doesn&#39;t include Ignite
    * [BIGTOP-2169] - Zeppeling has more upstream dependencies
    * [BIGTOP-2174] - Bump up ignite-hadoop version to the latest 1.5.0-b1
    * [BIGTOP-2185] - Exclude Zeppelin interpreter.json from RAT check
    * [BIGTOP-2219] - Comb the smoke-tests to make code base easier for refactoring
    * [BIGTOP-2226] - Remove gradle wrapper folder in smoke-tests
    * [BIGTOP-2234] - TestBlockRecovery incorrectly fails on a single node cluster
    * [BIGTOP-2235] - Allow smoke-tests to use filename regexps instead of explicite listings
    * [BIGTOP-2245] - TestFuseHCFS might fall on &#39;+&#39; op. involving String and GString; class name is wrong
    * [BIGTOP-2267] - Zeppeling 0.5.6 is out; let&#39;s bump it in our stack
    * [BIGTOP-2271] - Update maven rat config to match one from gradle
    * [BIGTOP-2277] - release assembly needs to include bigtop_toolchain
    * [BIGTOP-2278] - Wrap separate maven release steps into convenient gradle task

** Bug
    * [BIGTOP-1022] - Giraph build script should also specify ZooKeeper, HBase, and Hive versions
    * [BIGTOP-1318] - Consider not forking compute-classpath.sh for spark
    * [BIGTOP-1344] - spec files assume RPMs being built on Red Hat
    * [BIGTOP-1352] - Refactor puppet code for installing JDK7
    * [BIGTOP-1658] - puppet recipe updates for latest spark (1.3+ )
    * [BIGTOP-1690] - Puppet should automatically create data directories
    * [BIGTOP-1789] - Spark 1.3.0 incompatible with Hive 1.1.0
    * [BIGTOP-1805] - Upgrade Hadoop to 2.7 if released
    * [BIGTOP-1838] - Pig build does not publish artifacts of build
    * [BIGTOP-1877] - Upgrade Crunch to 0.12.0
    * [BIGTOP-1886] - Kafka server can not create a log-cleaner.log file
    * [BIGTOP-1892] - Current required version of gradle 2.4 is not used everywhere
    * [BIGTOP-1893] - Compilation of hadoop-yarn-client failed 
    * [BIGTOP-1894] - Snappy development packages are missing from bigtop_toolchain
    * [BIGTOP-1896] - bigtop_toolchain broken bei ant update
    * [BIGTOP-1902] - typo in bigtop-deploy/vm/vagrant-puppet-vm/vagrantconfig.yaml
    * [BIGTOP-1905] - Update Hue build for the upcoming 3.9 release
    * [BIGTOP-1909] - Include compiled .mo files for HUE i18n
    * [BIGTOP-1913] - Update hive to 1.2.1
    * [BIGTOP-1916] - Update Website for 1.0
    * [BIGTOP-1917] - Simplify gradle creating apt/yum repositories for better CI 
    * [BIGTOP-1936] - Provide JDK8 for Bigtop
    * [BIGTOP-1937] - redhat-lsb is required by kafka daemon
    * [BIGTOP-1938] - kafka packages /usr/bin on RPM 
    * [BIGTOP-1940] - Consider removing tests expecting &#39;sudo&#39; from skip-list
    * [BIGTOP-1946] - Missing ASL header in some of iTest files
    * [BIGTOP-1948] - Need to upgrade groovy-eclipse-batch as it keeps pulling from non-existing repo
    * [BIGTOP-1949] - Sqoop 1.4.5 artifacts aren&#39;t getting resolved in the release...
    * [BIGTOP-1950] - Upgrade maven-assembly plugin: StackOverFlowException is thrown
    * [BIGTOP-1951] - Fix licenses in the source files
    * [BIGTOP-1954] - Change the component name in the MAINTAINERS.txt
    * [BIGTOP-1956] - Multi RS HBase requires unique hbase.tmp.dir to be set for each RS on a node
    * [BIGTOP-1958] - Upgrade default repositories and docker images to 1.0
    * [BIGTOP-1960] - The smoke-test wrapper in bigtop-deploy can only be used in redhat series of Linux
    * [BIGTOP-1963] - Upgrade Mahout to 0.11.0
    * [BIGTOP-1966] - site&#39;s index.xml is malformatted
    * [BIGTOP-1967] - Update the front-page of the website with new CI hostname
    * [BIGTOP-1987] - Recover resources/kmeans_data.txt for Spark smokes
    * [BIGTOP-1996] - Dockerfiles for bigtop-slaves
    * [BIGTOP-1999] - website link to the release bits is broken and points to the top-level mirror&#39;s directory
    * [BIGTOP-2003] - Bigtop puppet fails to deploy on Ubuntu due to a hiera 1.3.0 bug
    * [BIGTOP-2004] - Download task fails with Gradle 2.6
    * [BIGTOP-2007] - bigtop.mk version of the stack needs to be bumped to 1.1.0-SNAPSHOT
    * [BIGTOP-2008] - build.gradle has out-of-date version
    * [BIGTOP-2014] - [VM provisioner] Missing FQDN on Ubuntu causes puppet deployment malfunction
    * [BIGTOP-2016] - tez does not build on opensuse
    * [BIGTOP-2017] - Rebase bigtop-slaves on bigtop-puppet
    * [BIGTOP-2019] - BigPetStore Spark isn&#39;t compiling due to changes in SQL API
    * [BIGTOP-2026] - Phoenix build defines HBASE_VERSION in two different places.
    * [BIGTOP-2027] - Bump gradle version, the wrapper to 2.7
    * [BIGTOP-2028] - Enhance puppet config of zookeeper to support kerberized clients
    * [BIGTOP-2032] - Tez install does not set up tez jars on hdfs causing Pig to fail
    * [BIGTOP-2037] - BIGTOP-1746 Added Files Without Apache License Headers
    * [BIGTOP-2038] - Pig destination name incorrect
    * [BIGTOP-2039] - Solr download URL is incorrect
    * [BIGTOP-2040] - Mahout can not be build with Maven 3.0.5 - build containers need to be upgraded
    * [BIGTOP-2041] - Spark pkg name is incorrect
    * [BIGTOP-2042] - Tachyon name is incorrect
    * [BIGTOP-2043] - Kafka source incorrect
    * [BIGTOP-2044] - Unnecessary printout has been introduced by BIGTOP-1494
    * [BIGTOP-2046] - puppet module search path
    * [BIGTOP-2050] - Description of clean tasks have null entries
    * [BIGTOP-2052] - Remove obsolete environment variables
    * [BIGTOP-2053] - After rebasing on Hadoop 2.7.1 yarn module should be returned to ignite-hadoop build
    * [BIGTOP-2054] - Update Pig
    * [BIGTOP-2056] - Remove top-level check-env.sh
    * [BIGTOP-2057] - null check doesn&#39;t safeguard against non-existing values in the BOM config
    * [BIGTOP-2059] - Bump Ignite to 1.4
    * [BIGTOP-2061] - toolchain is failing because add-apt-repository command isn&#39;t available off-hand
    * [BIGTOP-2062] - cluster.yaml declares undefined vars; apply is broken
    * [BIGTOP-2066] - init-hdfs.sh is broken by recent hadoop update
    * [BIGTOP-2068] - Cannot Build Bigtop-Utils packages
    * [BIGTOP-2071] - Gstring.empty doesn&#39;t exist
    * [BIGTOP-2074] - spark-worker doesn&#39;t start during deploy from master
    * [BIGTOP-2082] - Remove x86 Assembler Code from zookeeper
    * [BIGTOP-2083] - smoke-tests are still on hadoop 2.6.0
    * [BIGTOP-2084] - rename all puppet modules to have an underscore rather a dash 
    * [BIGTOP-2085] - gradle toolchain should install necessary puppet modules
    * [BIGTOP-2086] - Install essential puppet modules along with puppet itself
    * [BIGTOP-2088] - Support protobuf installation for OPENPOWER
    * [BIGTOP-2089] - Fix bigtop.sh generation
    * [BIGTOP-2090] - Remove left-over junk after BIGTOP-2053
    * [BIGTOP-2094] - ignite-hadoop fails to deploy after BIGTOP-2084
    * [BIGTOP-2098] - Update bigtop_deploy to current state of puppetize.sh
    * [BIGTOP-2114] - hive is broken after BIGTOP-2104
    * [BIGTOP-2115] - phoenix is broken after BIGTOP-2104
    * [BIGTOP-2120] - opensuse: Hue packages are broken after BIGTOP-1905
    * [BIGTOP-2121] - Missing &#39;:&#39; in bigtop::roles description
    * [BIGTOP-2126] - Fix default repo locations in the deployment site.pp
    * [BIGTOP-2127] - opensuse: fix kerberos python module
    * [BIGTOP-2128] - ignite-hadoop man page still refers to the Incubator
    * [BIGTOP-2131] - [Docker] bigtop slaves images should be built without cache
    * [BIGTOP-2139] - crunch compile fails with Insufficient memory on POWER
    * [BIGTOP-2140] - hbase compile fails with Insufficient memory on POWER
    * [BIGTOP-2144] - Update default repos in Bigtop Provisioner
    * [BIGTOP-2147] - Minor nits in bigpetstore-spark/README.md
    * [BIGTOP-2148] - generator.SparkDriver outputs empty data in cluster mode
    * [BIGTOP-2150] - Reversing directional build behavior 
    * [BIGTOP-2152] - Fix conflict with libressl-devel from mysql-devel
    * [BIGTOP-2155] - Fix Hue 3.9.0 build failed on Fedora
    * [BIGTOP-2156] - Fix Sqoop 1.4.5 build failed on OpenSuSE
    * [BIGTOP-2159] - unable to build RPM for zeppelin
    * [BIGTOP-2162] - phoenix-core-*-tests.jar should be located at $PHOENIX_HOME
    * [BIGTOP-2168] - A erroneous typo in FailureVars#loadProps method
    * [BIGTOP-2171] - shared gradle directory on slave containers should be writable for non-root users
    * [BIGTOP-2172] - get rid of gradlew inside of subprojects
    * [BIGTOP-2173] - smoke-tests need to pass-through system properties
    * [BIGTOP-2175] - BIGTOP_HOME should be either asserter or replaced with setup logic
    * [BIGTOP-2176] - Package version of ignite-hadoop has illegal &quot;-&quot; character
    * [BIGTOP-2177] - Build dependecies list has wrong component name for ignite
    * [BIGTOP-2181] - Setting Ignite version to use &#39;.&#39; broke Zeppelin build.
    * [BIGTOP-2187] - toolchain creates user with different ids on different systems
    * [BIGTOP-2188] - bigtop/puppet:ubuntu-14.04 image does not support ppc64le 
    * [BIGTOP-2189] - bigtop/slave:ubuntu-14.04 image does not support ppc64le 
    * [BIGTOP-2190] - libprotobuf8 2.5.0 installation fails on ubuntu 14.04 for ppc64le
    * [BIGTOP-2191] - openjdk-7 is missing in bigtop/slave:ubuntu-14.04-ppc64le docker image 
    * [BIGTOP-2196] - Docker configuration for ubuntu-15.04-ppc64le
    * [BIGTOP-2198] - adding bigtop/slaves:ubuntu-15.04 support for ppc64le
    * [BIGTOP-2199] - Add change introduced by BIGTOP-2171
    * [BIGTOP-2200] - Fix download path for protobuf ubuntu-15.04 on ppc64le
    * [BIGTOP-2201] - Fix BIGTOP-2200 again
    * [BIGTOP-2215] - Enable autopurge in zookeeper
    * [BIGTOP-2221] - rpmbuild is missing in bigtop/slaves:trunk-opensuse-13.2 docker image
    * [BIGTOP-2222] - Hadoop do-component-build should pull in and use BOM
    * [BIGTOP-2223] - .dockerignore doesn&#39;t have ASL header
    * [BIGTOP-2236] - GRADLE_USER_HOME should be set for bigtop/slaves images only
    * [BIGTOP-2237] - Nullify the standard output when generating gradle cache 
    * [BIGTOP-2238] - Provisioner should propagate hdfs ssh keys for testing
    * [BIGTOP-2240] - add -XX:PermSize=1024m -XX:MaxPermSize=1024m to build environment
    * [BIGTOP-2242] - Running ./gradlew should only require JAVA_HOME for test task
    * [BIGTOP-2243] - :itest-common:test is broken without JAVA_HOME being set
    * [BIGTOP-2244] - CI provisioner tests are failing after BIGTOP-2227 change
    * [BIGTOP-2246] - Add smoke tests for HCFS
    * [BIGTOP-2247] - Expand HDFS smoke test suite
    * [BIGTOP-2252] - provisional hdfs ssh keys couldn&#39;t be found during deployment
    * [BIGTOP-2255] - bigtop/deploy:ubuntu-15.04 image does not support ppc64le
    * [BIGTOP-2256] - Promote return codes from docker to the CI while building images
    * [BIGTOP-2272] - moved hdfs ssh key are failing rat check
    * [BIGTOP-2275] - Update configuration files for jsvc
    * [BIGTOP-2276] - Zeppeling added war_tempdir location, which needs to be set
    * [BIGTOP-2281] - Add HIVE-12875 to Bigtop
    * [BIGTOP-2288] - Hadoop time-server fails to start 
    * [BIGTOP-2299] - test resources are breaking rat

** Improvement
    * [BIGTOP-1126] - Add Hama to Bigtop
    * [BIGTOP-1131] - Update Build Requirements on our web pages
    * [BIGTOP-1309] - Gradle environment overhaul
    * [BIGTOP-1443] - Update front page of website
    * [BIGTOP-1809] - Remove gridgain-hadoop component once ignite-hadoop gets added
    * [BIGTOP-1888] - Upgrade Flume to 1.6.0
    * [BIGTOP-1908] - Move bigtop-deploy&#39;s dockerfiles into a centralized docker place
    * [BIGTOP-1910] - Adjust the dependency for hue-beeswax
    * [BIGTOP-1914] - improve puppet README.md file
    * [BIGTOP-1915] - Upgrade Oozie to 4.2.0
    * [BIGTOP-1920] - Include YCSB in Bigtop
    * [BIGTOP-1921] - Puppet recipe for YCSB
    * [BIGTOP-1923] - Bump Ignite to 1.2 with major fixes
    * [BIGTOP-1941] - Upgrade Phoenix to 4.4.0
    * [BIGTOP-1942] - Upgrade Phoenix to 4.6.0
    * [BIGTOP-1943] - Upgrade SCALA version to 2.10.4
    * [BIGTOP-1944] - Upgrade Spark version to 1.5.1
    * [BIGTOP-1955] - Upgrade Ignite Hadoop component version from 1.2.0 to 1.3.0
    * [BIGTOP-1964] - Upgrade Tez version to 0.6.2
    * [BIGTOP-1970] - Ignite IGFS now fully supports mutiltenancy: deployment should configure it with HDFS backing
    * [BIGTOP-1971] - Support Spark SQL CLI with Apache Hive out of the box
    * [BIGTOP-1974] - Revise SPARK_HOME/conf/spark-env.sh
    * [BIGTOP-1993] - Bump groovy to 2.4.4 in the development toolchain
    * [BIGTOP-1997] - Bump bigtop-groovy runtime to 2.4.4
    * [BIGTOP-1998] - Toolchain installer needs to switch from CGI to Lua mirror selection
    * [BIGTOP-2005] - Remove SCALA_HOME requirement
    * [BIGTOP-2018] - Create a puppetizing script
    * [BIGTOP-2020] - Add Gradle RAT plugin to the top-level project
    * [BIGTOP-2063] - Provide default config to deploy hive on top of Ignite
    * [BIGTOP-2065] - Update deployment README.md to reflect on better deployment experience
    * [BIGTOP-2080] - Investigate removing Scala from the toolchain
    * [BIGTOP-2081] - implement a nexus docker container for CI
    * [BIGTOP-2091] - Build ignite-hadoop assembly with specific version of Spark
    * [BIGTOP-2102] - Upgrade YCSB to 0.4.0
    * [BIGTOP-2103] - [Docker] Move bigtop/slaves image build to gradle
    * [BIGTOP-2110] - [Docker] Cache packages required by gradle to execute into bigtop/slaves images
    * [BIGTOP-2119] - Bump Mahout version to 0.11.1
    * [BIGTOP-2141] - Have a way to specify alternative BOM file in the build time
    * [BIGTOP-2142] - Source cleanup: bigtop-repos shouldn&#39;t be top-level.
    * [BIGTOP-2143] - [Puppet] Automatically generate default repo
    * [BIGTOP-2153] - Simplify and complete storage dir creation
    * [BIGTOP-2163] - Add a phoenix-pherf sub-package for Phoenix
    * [BIGTOP-2164] - Phoenix Queryserver should write it&#39;s logs into /var/log/phoenix/
    * [BIGTOP-2192] - Start generating ubuntu-14.04 deployment image
    * [BIGTOP-2194] - Add Ubuntu configuration to the docker provisioner
    * [BIGTOP-2239] - Smoke tests should have a single location for logger configuration
    * [BIGTOP-2259] - Check for smoke-test projects should be generalized 

** New Feature
    * [BIGTOP-1149] - Package Kite
    * [BIGTOP-1746] - Introduce the concept of roles in bigtop cluster deployment
    * [BIGTOP-1769] - Zeppelin Integration
    * [BIGTOP-1976] - Replace Pair type with Apache Commons Lang Pair type

** Task
    * [BIGTOP-1701] - Upgrade to Hive 1.1.0
    * [BIGTOP-1795] - Upgrade bigtop_toolchain to Maven 3.2.5
    * [BIGTOP-1821] - Add smoke tests for Ignite Hadoop Bigtop module
    * [BIGTOP-1897] - Umbrella JIRA for CI overhaul
    * [BIGTOP-1925] - Add ywkim as a maintainer for YCSB
    * [BIGTOP-1953] - Upgrade bigtop_toolchain to Maven 3.3.3
    * [BIGTOP-2069] - Update README.md to reflect CTR trial
    * [BIGTOP-2078] - Define Bigtop 1.1 release BOM
    * [BIGTOP-2146] - Upgrade bigtop toolchain ant version to 1.9.6
    * [BIGTOP-2214] - Bump up ignite-hadoop version to the latest stable 1.5.0.final
    * [BIGTOP-2297] - Update provisioner pointers to (future) 1.1 release repos

** Test
    * [BIGTOP-2158] - Update README.md to reflect the acceptance of CTR model
    * [BIGTOP-2232] - Add smoke tests for HDFS
    * [BIGTOP-2249] - Add YARN smoke tests


* Release 1.0.0 (2015-05-29)

Release Notes - Bigtop - Version 1.0.0

** Sub-task
    * [BIGTOP-1105] - Fix lintian errors in the hadoop package
    * [BIGTOP-1334] - Add DFS tests to TestCLI
    * [BIGTOP-1392] - Hive basic smoke test fails
    * [BIGTOP-1461] - Add a simple Hive validation to smoke-tests.
    * [BIGTOP-1465] - Include Sqoop1 in bigtop 0.9
    * [BIGTOP-1468] - Include zookeeper 3.4.6
    * [BIGTOP-1486] - Upgrade Hue to 3.7
    * [BIGTOP-1535] - Add Spark ETL script to BigPetStore
    * [BIGTOP-1537] - [BigPetStore] Add  Spark Product Recommender example
    * [BIGTOP-1543] - hive-0.14 in bigtop
    * [BIGTOP-1550] - Spark update to 1.1.0
    * [BIGTOP-1563] - Puppet deployment needs to setup user hdfs keys for password-less logins
    * [BIGTOP-1571] - Remove Whirr from the BOM
    * [BIGTOP-1594] - Upgrade Pig to 0.14.0
    * [BIGTOP-1609] - Use openjdk7 for CentOS
    * [BIGTOP-1615] - Tests dependencies are on old Hadoop versions (2.3.0, 2.4.1)
    * [BIGTOP-1632] - Support JMX monitoring when multiple HBase RS is brought up in a node
    * [BIGTOP-1649] - Upgrade Apache Flume to 1.5.2
    * [BIGTOP-1707] - Upgrade Hadoop to 2.6.0
    * [BIGTOP-1727] - Fix a build failure for Spark 1.2.1
    * [BIGTOP-1728] - jackson dependency management for Spark 1.2.1 and  Hadoop 2.6.0
    * [BIGTOP-1738] - Update HBase because javadoc broken
    * [BIGTOP-1765] - Bump the stack version to 1.0
    * [BIGTOP-1768] - Use openjdk in ubuntu14, Remove references to jdk6 
    * [BIGTOP-1842] - Remove gridgain-hadoop from BOM
    * [BIGTOP-1899] - Migrate CI master to EC2 instance donated by Amazon EMR team
    * [BIGTOP-1900] - Upgrade bigtop/slaves images on bigtop's dockerhub
    * [BIGTOP-1901] - Provide bigtop/deploy images on dockerhub for CI and users to consume docker provisioner
    * [BIGTOP-1947] - Fix RAT plugin configuration to be able to RAT-validate all published artifacts

** Bug
    * [BIGTOP-894] - Pig compilation fails on RPM systems on Bigtop trunk
    * [BIGTOP-965] - IntegrationTestHiveSmokeBulk not being run
    * [BIGTOP-972] - fix packagetest package remove logic
    * [BIGTOP-977] - hive smoke tests are full of internal infrastructure details irrelevant to Bigtop
    * [BIGTOP-1050] - Permissions on YARN LCE should be 4754
    * [BIGTOP-1104] - Fix lintian errors
    * [BIGTOP-1121] - implement tests for HDFS snapshots
    * [BIGTOP-1135] - Hue has google analytics enabled by default
    * [BIGTOP-1194] - redhat-lsb-core is sufficient in spec files
    * [BIGTOP-1277] - Remove Windows files from unix packaging
    * [BIGTOP-1287] - Mahout smokes : Remove dirchlet/meanshift clustering
    * [BIGTOP-1327] - bigpetstore.arch is out of date
    * [BIGTOP-1356] - Generate hive.install on the fly
    * [BIGTOP-1357] - Get rid of HCatalog packaging code
    * [BIGTOP-1381] - Datafu and Spark .deb build is broken 
    * [BIGTOP-1384] - Implement Gradle Wrapper for smoke tests and cleanup.
    * [BIGTOP-1395] - Simplifying non-component versions evaluation
    * [BIGTOP-1445] - Pig fails with clean .ivy and .m2
    * [BIGTOP-1446] - Spark fails with clean .m2
    * [BIGTOP-1451] - smoke-tests (gradle based) Mahout need to run a real smoke test.
    * [BIGTOP-1457] - Hue do-component-build does not set version properly
    * [BIGTOP-1458] - Maven build severly broken 
    * [BIGTOP-1459] - Remove hadoop-client jar from packages that bundle it
    * [BIGTOP-1460] - maven dependencies broken
    * [BIGTOP-1462] - Failed to build spark by gradle
    * [BIGTOP-1467] - version of hadoop-auth in oozie is wrong 
    * [BIGTOP-1472] - Hadoop RPM build is broken after BIGTOP-1462
    * [BIGTOP-1487] - Documentation for use case and deployment models for failure tests.
    * [BIGTOP-1488] - bigtop_toolchain hardcode the apache mirror sites for downloading maven
    * [BIGTOP-1490] - Adding GridGain to BigTop
    * [BIGTOP-1491] - Update docker-puppet README 
    * [BIGTOP-1497] - Add tachyon to bigtop 
    * [BIGTOP-1502] - Improve puppet deployment for new gridgain component
    * [BIGTOP-1504] - Bigtop docker provision does not work on mac
    * [BIGTOP-1506] - bigtop-utils won't detect JAVA_HOME in some cases
    * [BIGTOP-1508] - fix Puppet warnings under Puppet 3 
    * [BIGTOP-1509] - Update deployment README after BIGTOP-1047
    * [BIGTOP-1511] - TestCLI: make TestCLI compatible with Hadoop 2.4 (HADOOP-8691)
    * [BIGTOP-1513] - FailureExecutor.groovy is in the wrong module, causing compiler errors.
    * [BIGTOP-1521] - Bigtop smoke-tests hierarchy and fast failure
    * [BIGTOP-1522] - nodemanager deployment needs to include hadoop-mapreduce package
    * [BIGTOP-1523] - Gradle install for test artifacts uses wrong sequence of the targets
    * [BIGTOP-1524] - FailureExecutor  breaks smoke tests : Smoke tests should run from source
    * [BIGTOP-1526] - property file for FailureVars can not be placed to {{/}}
    * [BIGTOP-1534] - Update README.md to reflect new build system and other changes
    * [BIGTOP-1541] - Support Debian jessie in Bigtop_toolchain; cleanup of pp files
    * [BIGTOP-1542] - Debian Packages will not build
    * [BIGTOP-1544] - [BigPetStore] Use of java.io.File and check for directory existence will fail with non-POSIX DFSs (HDFS, S3, etc.)
    * [BIGTOP-1548] - hue uses snapshot dependency to removed snapshot
    * [BIGTOP-1549] - spark compile broken
    * [BIGTOP-1551] - build stops because gradle does not handle symlinks well
    * [BIGTOP-1553] - puppet installation fails when components value is a single item instead of a list
    * [BIGTOP-1554] - bigtop-deploy/puppet/config/site.csv was wrongfully committed.
    * [BIGTOP-1562] - Critical tachyon pupet improvements.
    * [BIGTOP-1564] - docker-puppet doesn't use vagrantconfg.yaml for configuration parameters
    * [BIGTOP-1566] - Puppet README file needs to reflect multiple modules directoty requirement
    * [BIGTOP-1567] - puppet cannot install components whatever given to it
    * [BIGTOP-1568] - bigtop01 needs gradle
    * [BIGTOP-1570] - docker-puppet fails to deploy due to stdlib can not be found
    * [BIGTOP-1574] - Phoenix packaging requires build and classpath changes after PHOENIX-1455
    * [BIGTOP-1579] - Implement patching for Bigtop
    * [BIGTOP-1580] - Improve Bigtop Toolchain: Versioning of Packages
    * [BIGTOP-1585] - test artifacts tasks include extra tasks for nonexisting components
    * [BIGTOP-1586] - BigPetStore-Spark only works on the East Coast .
    * [BIGTOP-1587] - Fix typos in install-tomcat.sh
    * [BIGTOP-1588] - Current Bigtop Pig does not build because of API Change in Hive
    * [BIGTOP-1589] - Prioritization is broken in bigtop-detect-javahome
    * [BIGTOP-1592] - Integration test IntegrationTestClusterFailures is failing
    * [BIGTOP-1596] - bigtop build fails because it tries to write to forrest installation
    * [BIGTOP-1604] - Create a MAINTAINERS.txt File
    * [BIGTOP-1605] - Tachyon RPM does not depend on bigtop utils
    * [BIGTOP-1606] - Tachyon webapp directory not located where expected
    * [BIGTOP-1610] - Fix /etc/profile.d/bigtop.sh scripts 
    * [BIGTOP-1611] - mahoutsmokes aren't compiling
    * [BIGTOP-1618] - iTest integration tests need only to be bound to verify goal
    * [BIGTOP-1620] - Hadoop deb Packages for architecture "all" containing binaries
    * [BIGTOP-1626] - Add bmahe as a maintainer for Apache Flume
    * [BIGTOP-1633] - Pig compile fails again 
    * [BIGTOP-1635] - hue compile on vanilla debian
    * [BIGTOP-1636] - Missing patches and files for hue
    * [BIGTOP-1639] - Add Olaf Flebbe to dev list
    * [BIGTOP-1642] - Restructure and enhance toolchain
    * [BIGTOP-1652] - Fix BigPetStore-Spark Data format regression
    * [BIGTOP-1654] - change some hadoop puppet variables from local to node scope
    * [BIGTOP-1656] - add tez variables to hadoop-env.sh
    * [BIGTOP-1657] - bigtop-deploy puppets to support tez
    * [BIGTOP-1660] - Upgrade to Hive-1.0
    * [BIGTOP-1662] - puppet: Fix hadoop configuration file incompleteness due to hiera conversion
    * [BIGTOP-1663] - TestHadoopSmoke is failing because of improper set-up
    * [BIGTOP-1665] - Update Wiki pages on how to develop and build Bigtop
    * [BIGTOP-1668] - puppet: Adjust kerberos module for current Debian
    * [BIGTOP-1669] - puppet: Hadoop: Separate dependencies on Kerberos keytabs
    * [BIGTOP-1677] - Tez packaging is still failing
    * [BIGTOP-1678] - Use openjdk7 for AmazonLinux
    * [BIGTOP-1687] - Puppet: fix wrong array representation for hadoop-zookeeper::server::ensemble
    * [BIGTOP-1694] - puppet: Make httpfs subscribe to core-site and hdfs-site
    * [BIGTOP-1699] - sqoop does not build on debian
    * [BIGTOP-1703] - Limt override of JAVA_OPTS in install_solr.sh to cause minimal side-effects
    * [BIGTOP-1706] - Make TestBlockRecovery runnable under all users
    * [BIGTOP-1710] - Spark 1.1.0 does not build for DEB
    * [BIGTOP-1711] - add packages to compile hue
    * [BIGTOP-1712] - Specification for Docker images.
    * [BIGTOP-1722] - upgrade tachyon to 0.6.0
    * [BIGTOP-1723] - update Tachyon Maintainers
    * [BIGTOP-1724] - Update centos vagrant box 
    * [BIGTOP-1729] - Install Hive has typo in HCATALOG option
    * [BIGTOP-1731] - Gradle mustRunAfter doesn't work is expected
    * [BIGTOP-1732] - remove has_ssh in Docker provisioner
    * [BIGTOP-1733] - fix local_yum implementation
    * [BIGTOP-1745] - Add Mark Grover as committer on the website
    * [BIGTOP-1748] - Remove assert on fs.trash.interval from TestCLI and TestDFSCLI
    * [BIGTOP-1751] - Puppet deployment ignores bigtop_repo_uri variable
    * [BIGTOP-1756] - Add HADOOP_MAPRED_HOME property to common
    * [BIGTOP-1757] - bigtop_toolchain has to differentiate between centos6 and centos7
    * [BIGTOP-1758] - Remove redundant property checks from TestHadoopExamples
    * [BIGTOP-1761] - Delete testConf.xml from hadoop-smoke resources 
    * [BIGTOP-1763] - Handle broken symlinks when copying jars
    * [BIGTOP-1764] - Fix copying mapreduce jars to HDFS for Oozie
    * [BIGTOP-1774] - Update mailing list page
    * [BIGTOP-1775] - Fix typos and mistakes on mailing list page
    * [BIGTOP-1776] - Resolve an warning on packaging Hadoop RPM
    * [BIGTOP-1778] - spark-1.3.0 broke hive
    * [BIGTOP-1779] - giraph compile broken
    * [BIGTOP-1780] - bigtop_toolchain: JAVA_HOME incorrect, remove JAVA6_HOME
    * [BIGTOP-1781] - tachyon fails to build
    * [BIGTOP-1790] - Top level menu says 'Power By' - needs to be fixed
    * [BIGTOP-1793] - bigtop_toolchain: remove JAVA_HOME/bin from PATH
    * [BIGTOP-1798] - init-hdfs.sh uses groovy but no dependency in package description given
    * [BIGTOP-1804] - Not again: srpm target fails on SUSE
    * [BIGTOP-1808] - hive 1.0.0 : kerberos does not work correctly
    * [BIGTOP-1810] - Spark thriftserver service does not indicate success
    * [BIGTOP-1812] - fix bps pig integration test
    * [BIGTOP-1813] - Create /user/hbase HDFS directory
    * [BIGTOP-1814] - Puppet deployment code needs to work with ignite-hadoop component
    * [BIGTOP-1815] - Tez build is broken in the container
    * [BIGTOP-1816] - Puppet deploy is broken on Ubuntu
    * [BIGTOP-1817] - bigtop-utils deb is missing  init-hcfs.groovy file
    * [BIGTOP-1818] - ignite-hadoop-service debian is missed; causing Puppet deploy to fail
    * [BIGTOP-1824] - Tachyon master and worker daemon script does not work propertly
    * [BIGTOP-1827] - Tachyon package name conflict on Debian/Ubuntu
    * [BIGTOP-1828] - Puppet: Tachyon does not get formatted before tachyon daemons are started up
    * [BIGTOP-1830] - Move apache-forrest installation from  bigtop_toolchain to pig compile
    * [BIGTOP-1832] - hdfs-site.xml: update shortcut reader and remove obsolete shortcut reader users
    * [BIGTOP-1833] - Bump Ignite to 1.1.0
    * [BIGTOP-1835] - Update project RDF file
    * [BIGTOP-1839] - Building RPM for Zookeeper 3.4.6 is broken
    * [BIGTOP-1840] - datafu does not pick up pig dependency from local repository
    * [BIGTOP-1841] - toolchain can not set java correctly in fedora
    * [BIGTOP-1845] - toolchain can not drop bigtop.sh in fedora because of puppet syntax error
    * [BIGTOP-1848] - spark deb packages broken
    * [BIGTOP-1849] - toolchain can not set java home correctly in CentOS 7
    * [BIGTOP-1850] - Update Hue to 3.8
    * [BIGTOP-1853] - Phoenix build does not properly override Hadoop version property
    * [BIGTOP-1855] - Remove Obsolete Jobtracker settings from mapred-site.xml
    * [BIGTOP-1857] - Support yarn-built-in proxy
    * [BIGTOP-1859] - Unable to build Hue packages on Amazon Linux
    * [BIGTOP-1860] - ignite-hadoop release URL should point to apache dist server, not a mirror
    * [BIGTOP-1861] - giraph does not build
    * [BIGTOP-1865] - circular dependency between bigtop-groovy and bigtop-utils
    * [BIGTOP-1866] - openssl-devel is required by hue RPM package
    * [BIGTOP-1867] - Upgrade Gradle version to 2.4
    * [BIGTOP-1868] - Address the custom 'clean' warning 
    * [BIGTOP-1869] - Hue 3.8.1 refinements
    * [BIGTOP-1870] - Latest version of Puppet::Apt doesn't work for our deployment recipes
    * [BIGTOP-1872] - Improve HUE puppet recipies
    * [BIGTOP-1874] - HBase build failed due to Codehaus repository is out of service
    * [BIGTOP-1875] - Oozie build failed due to Codehaus repository is out of service
    * [BIGTOP-1876] - Update puppet recipes for Sqoop2
    * [BIGTOP-1879] - vagrant-puppet-vm is broken
    * [BIGTOP-1886] - Kafka server can not create a log-cleaner.log file
    * [BIGTOP-1893] - Compilation of hadoop-yarn-client failed
    * [BIGTOP-1894] - Snappy development packages are missing from bigtop_toolchain
    * [BIGTOP-1896] - bigtop_toolchain broken bei ant update
    * [BIGTOP-1902] - typo in bigtop-deploy/vm/vagrant-puppet-vm/vagrantconfig.yaml
    * [BIGTOP-1916] - Update Website for 1.0
    * [BIGTOP-1937] - redhat-lsb is required by kafka daemon
    * [BIGTOP-1938] - kafka packages /usr/bin on RPM
    * [BIGTOP-1946] - Missing ASL header in some of iTest files
    * [BIGTOP-1949] - Sqoop 1.4.5 artifacts aren't getting resolved in the release...
    * [BIGTOP-1950] - Upgrade maven-assembly plugin: StackOverFlowException is thrown
    * [BIGTOP-1951] - Fix licenses in the source files
    * [BIGTOP-1958] - Upgrade default repositories and docker images to 1.0

** Improvement
    * [BIGTOP-1047] - Support Puppet 3.x
    * [BIGTOP-1204] - Add support for AmazonLinux
    * [BIGTOP-1235] - Speed-up init-hdfs.sh for complete HCFS compliant provisioning
    * [BIGTOP-1275] - BigPetStore: Add all 50 states
    * [BIGTOP-1301] - Groovy 2.3.0 is out! Let's bundle it into the stack
    * [BIGTOP-1325] - Update TestHDFSCLI to include tests from upstream
    * [BIGTOP-1366] - Updated, Richer Model for Generating Data for BigPetStore 
    * [BIGTOP-1388] - Use cluster failure tests during other tests with command line parametrization
    * [BIGTOP-1414] - Add Apache Spark implementation to BigPetStore
    * [BIGTOP-1423] - Add Groovy installation to the bigtop_toolchain
    * [BIGTOP-1449] - Add RC Testing support to vagrant recipe
    * [BIGTOP-1450] - Eliminate broken hive test artifacts in favor of smoke-tests.
    * [BIGTOP-1478] - Start tomcat watchdog as part of solr init scripts
    * [BIGTOP-1481] - Log files are cluttered with messages from tar
    * [BIGTOP-1484] - Include python in toolchain
    * [BIGTOP-1489] - move the tomcat_watchdog code out of install_solr.sh into a separate file in bigtop-utils in order to facilitate reusability
    * [BIGTOP-1495] - Remove make build system
    * [BIGTOP-1498] - Add RC Testing to Docker based Bigtop provisioner
    * [BIGTOP-1501] - come up with a way to use Jenkins plugins/Groovy console to create jobs
    * [BIGTOP-1510] - Minor README update aboud bigtop-deploy
    * [BIGTOP-1517] - refactor vagrant provisioners to be configurable by yaml file
    * [BIGTOP-1527] - Allow to fetch package's source code from Git
    * [BIGTOP-1545] - [BigPetStore] Bump version of BPS data generator library to 0.2.1
    * [BIGTOP-1547] - Confirm tachyon functioning in vagrant recipes.
    * [BIGTOP-1555] - remove mapred-app from docs or code snippet (post-BIGTOP-1522), cleanup vagrant-puppet to core components.
    * [BIGTOP-1557] - website misses ci and announce mailing lists info
    * [BIGTOP-1558] - Make gradle easier to navigate
    * [BIGTOP-1559] - Tests are failing in Apache CI build
    * [BIGTOP-1569] - provide alias targets for building packages native to the OS
    * [BIGTOP-1576] - Add Vagrant installation to bigtop_toolchain
    * [BIGTOP-1578] - Refactor vagrant-puppet provisioner to have its configurations all come from yaml
    * [BIGTOP-1581] - Allow multiple Flume agents to be executed as a service using Bigtop init.d script
    * [BIGTOP-1583] - update the default yum repo in puppet site.pp
    * [BIGTOP-1590] - Add a functionality to run integration tests for itest
    * [BIGTOP-1591] - JarContentTest is failing on JDK7
    * [BIGTOP-1593] - Fix types in FailureVars 
    * [BIGTOP-1600] - Improve front page content of website
    * [BIGTOP-1601] - cleanup whitespaces across test-artifacts 
    * [BIGTOP-1603] - Rename docker-puppet and vagrant-puppet to better indicate its function and difference
    * [BIGTOP-1612] - Update README for smoke-tests
    * [BIGTOP-1613] - Add .gitignore for vagrant-puppet
    * [BIGTOP-1614] - Add .gitignore file for docker-puppet
    * [BIGTOP-1621] - Migrate itest to gradle
    * [BIGTOP-1627] - Move enable_local_yum implementation to bigtop-deploy/utils/setup-env.sh to share with Docker provisioner
    * [BIGTOP-1634] - Puppet class parameter and hiera conversion
    * [BIGTOP-1640] - Add missing files for Apache Spark
    * [BIGTOP-1645] - Add subpackages for spark history server and thrift server 
    * [BIGTOP-1651] - puppet: Format namenode and zkfc in noninteractive mode
    * [BIGTOP-1653] - Add queries for customer, state, and product statistics w/ d3 friendly JSON output to analytics phase. 
    * [BIGTOP-1659] - gridgain-hadoop packages need to provide unversioned softlinks for accelerator jar files
    * [BIGTOP-1667] - Clean up and simplify the install phase for Apache Spark
    * [BIGTOP-1670] - puppet: Support Kerberos authentication on Hadoop component web GUIs
    * [BIGTOP-1674] - Account for BPS simulation "burn-in" time 
    * [BIGTOP-1675] - Puppet: remove wheel group setting for bigtop_real_users
    * [BIGTOP-1676] - Puppet: add deb repo auto deploy
    * [BIGTOP-1681] - [BigPetStore] Clean up BPS SparkSQL analytics module, add new queries
    * [BIGTOP-1683] - puppet hadoop-env.sh: Add option to configure tez environment
    * [BIGTOP-1684] - puppet hadoop/yarn: Make container executor configurable
    * [BIGTOP-1685] - puppet hadoop: Remove useless use of explicit hiera lookup
    * [BIGTOP-1686] - puppet hadoop/mapred: Update and clean mapred template and namespace
    * [BIGTOP-1691] - Heira site.yaml template needs to have repo uri 
    * [BIGTOP-1692] - hieradata/site.yaml is missing gridgain-hadoop component
    * [BIGTOP-1693] - Puppet stdlib should be automatically installed by toolchain
    * [BIGTOP-1696] - Provide build command to show BOM list
    * [BIGTOP-1697] - Bootstrap: hook up toolchain into gradle build
    * [BIGTOP-1698] - Following BIGTOP-1697 improve README entry on toolchain setup
    * [BIGTOP-1700] - Package YARN Timeline Server service for Apache Hadoop 
    * [BIGTOP-1705] - puppet: Allow configuring which hue apps to install
    * [BIGTOP-1709] - Enable "hadoop26" profile for Apache Tez
    * [BIGTOP-1718] - add facility for printing out BOM in json format
    * [BIGTOP-1721] - Remove unnecessary files from Sqoop package
    * [BIGTOP-1725] - Exclude null values from BOM json output added in BIGTOP-1718
    * [BIGTOP-1741] - Upgrade to Apache Phoenix 4.3.1
    * [BIGTOP-1742] - Add ywkim as a maintainer for Apache Hive, Spark, Sqoop* and Phoenix
    * [BIGTOP-1743] - Add RJ Nowling as committer to website
    * [BIGTOP-1770] - Let the user specify which JDK package to be installed in vagrantconfig.yaml
    * [BIGTOP-1771] - Let the user specify what components to be tested when running smoke-tests by Docker/VM provisioner
    * [BIGTOP-1783] - Import BigPetStore Data Generator into BigTop
    * [BIGTOP-1787] - puppet: Update hue.ini to match Hue 3.7.1 template
    * [BIGTOP-1791] - Set group of /user/hue to "hue" in HDFS
    * [BIGTOP-1794] - Update README for bigtop_toolchain
    * [BIGTOP-1801] - Generalize subst pattern matching for BOM file
    * [BIGTOP-1803] - Overide Vagrant configurations from environment variables
    * [BIGTOP-1809] - Remove gridgain-hadoop component once ignite-hadoop gets added
    * [BIGTOP-1829] - Tachyon configuration files should reside in /etc/tachyon/conf instead of /etc/tachyon
    * [BIGTOP-1836] - Better UX for Docker provisioner by integrating it into gradle 
    * [BIGTOP-1851] - Upgrade to HBase 0.98.12
    * [BIGTOP-1862] - Add release download link to the front page of the website
    * [BIGTOP-1919] - Remove fixConditional methods in BPS data generator
    * [BIGTOP-1923] - Bump Ignite to 1.2 with major fixes
    * [BIGTOP-1932] - [BigPetStore] Add larger product collection
    * [BIGTOP-1939] - Enable basic hdfs-nfs gateway configuration

** New Feature
    * [BIGTOP-989] - Add Apache Kafka  to Apache Bigtop
    * [BIGTOP-1417] - Dockerize the puppetized vagrant deployer
    * [BIGTOP-1448] - Include zookeeper C library in bigtop
    * [BIGTOP-1480] - Define BOM for 1.0 release of Bigtop
    * [BIGTOP-1552] - Add support for AmazonLinux to bigtop-deploy/puppet
    * [BIGTOP-1716] - Define SCALA_VERSION in bigtop.bom
    * [BIGTOP-1744] - Add BigPigPetstore File and REST Load Generation.
    * [BIGTOP-1806] - Integrate Apache Ignite (incubating) with BigTop
    * [BIGTOP-1918] - Add product enumeration to BPS data generator
    * [BIGTOP-1931] - Add multinomial product purchasing model to BPS Data Generator

** Task
    * [BIGTOP-1393] - Retire the make build system
    * [BIGTOP-1525] - FailureExecutor : Is it going to be maintained/used?
    * [BIGTOP-1556] - Cleanup some unused minor stuff.
    * [BIGTOP-1595] - kill list
    * [BIGTOP-1597] - Design flyers for upcoming SCALE conference
    * [BIGTOP-1638] - Add Dasha Boudnik to dev list
    * [BIGTOP-1648] - Update to Spark 1x to Spark 1.2.1
    * [BIGTOP-1655] - Update VM and Docker provisioner to work with hiera converted puppet recipes
    * [BIGTOP-1726] - Confirm that Spark 1.2.1 runs properly in BigTop, and run the BPS integration test.
    * [BIGTOP-1755] - Upgrade to Spark 1.3.0
    * [BIGTOP-1777] - Add cool ASCII-art logo of Bigtop to the build.gradle
    * [BIGTOP-1822] - Puppet apt module should be automatically installed by toolchain
    * [BIGTOP-1831] - Upgrade Mahout to 0.10
    * [BIGTOP-1834] - Upgrade to Spark 1.3.1
    * [BIGTOP-1854] - Trim Tachyon maintainers' list
    * [BIGTOP-1873] - Puppet apt module version must be 2.0.1 or above after BIGTOP-1870
    * [BIGTOP-1897] - Umbrella JIRA for CI overhaul

** Test
    * [BIGTOP-1377] - Add a test case for performing block corruption recovery
    * [BIGTOP-1560] - Add a test case for performing block corruption recovery
    * [BIGTOP-1617] - Make clean-up commands in TestCLI more specific
    * [BIGTOP-1629] - Move testDFSCLI from hcfs to hdfs directory
    * [BIGTOP-1664] - make test unpack resources optional

** Wish
    * [BIGTOP-1619] - change hadoop namenode port to 8020 (apache default port) in puppet script


* Release 0.8.0 (2014-09-06)

Release Notes - Bigtop - Version 0.8.0

- SUB-TASK
    - [BIGTOP-1111] - Bump version of Hadoop to 2.2.0
    - [BIGTOP-1165] - Ivy config for hive metastore looks incorrect, which breaks build on JDK 7
    - [BIGTOP-1166] - Hive-jdbc doesn't compile on JDK 7, which breaks build
    - [BIGTOP-1183] - Rename spark package to spark-core
    - [BIGTOP-1184] - bump hadoop version to 2.3.0
    - [BIGTOP-1202] - One-button-click way for installing all needed bits of testing framework
    - [BIGTOP-1203] - Update toolchaing to automatically install Gradle into dev env.
    - [BIGTOP-1208] - Add DFSIO test into longevity suite
    - [BIGTOP-1209] - Add SLive test into longevity suite
    - [BIGTOP-1242] - bump jsvc to 1.0.15
    - [BIGTOP-1244] - bump flume to 1.5.0.1
    - [BIGTOP-1278] - bump pig version to 0.12.1
    - [BIGTOP-1279] - bump hive version to 0.12.0
    - [BIGTOP-1280] - bump Oozie version to 4.0.1
    - [BIGTOP-1281] - bump hbase version to 0.98.2
    - [BIGTOP-1282] - bump Mahout version to 0.9
    - [BIGTOP-1283] - bump Solr version to 4.6.0
    - [BIGTOP-1284] - bump Spark version to 0.9.1
    - [BIGTOP-1285] - Bump version of Phoenix to 4.0
    - [BIGTOP-1291] - On a clean ~/.m2 hbase mvn install site will fail as install is executed first
    - [BIGTOP-1293] - Include Hive 0.13 into the stack
    - [BIGTOP-1302] - Update hbase smoke tests to escape Hbase's "event horizon"
    - [BIGTOP-1330] - bump Giraph version to 1.1.0
    - [BIGTOP-1331] - bump Hue version to 3.6.0
    - [BIGTOP-1340] - Hbase build has to use hadoop-two.version sys. prop
    - [BIGTOP-1350] - Bump version of Crunch to 0.10.0
    - [BIGTOP-1354] - bump version of Solr to 4.9.0
    - [BIGTOP-1426] - Bump version of Hadoop to 2.4.1
    - [BIGTOP-1432] - Update HBase version to 0.98.5 in the BOM
    - [BIGTOP-1433] - Fix Hive build after BIGTOP-1429 
    - [BIGTOP-1434] - Maven build failing with NoClassDefFoundError at maven-site-plugin:3.0-beta-3:site (packaging-documentation) @ sqoop-docs 
    - [BIGTOP-1435] - Fix Crunch build after BIGTOP-1429 

- BUG
    - [BIGTOP-282] - the licensing status of the MovieLens data files needs to be cleared up
    - [BIGTOP-831] - Hadoop branch-2 (and trunk?) are failing when built with JDK7u11
    - [BIGTOP-922] - Existing Puppet recipes are failing to initialize HDFS dictories on the first run
    - [BIGTOP-986] - install-flume.sh uses -x instead of -e
    - [BIGTOP-996] - Document steps needed to run BT tests on a fresh host
    - [BIGTOP-997] - TestCLI fails test id 5:  comparator fails
    - [BIGTOP-1042] - Add support for Hadoop 2.1.x-beta
    - [BIGTOP-1048] - ZooKeeper installation use "zookeeper-server.pid" as default while ZooKeeper expects zookeeper_server.pid
    - [BIGTOP-1072] - Vagrant scripts for spinning up and "hydrating" bigtop vms 
    - [BIGTOP-1092] - Add Hue documentation package
    - [BIGTOP-1097] - introduce bigtop-groovy package
    - [BIGTOP-1124] - solrctl should be able to auto-detect JAVA_HOME
    - [BIGTOP-1125] - Return value does not reflect status checks
    - [BIGTOP-1128] - FIX and modularize mahout sample data sets
    - [BIGTOP-1132] - Phoenix RPM specfile does not create symlinks
    - [BIGTOP-1141] - Add TestYarnNode to test yarn node 
    - [BIGTOP-1143] - Oozie configuration file is incomplete
    - [BIGTOP-1146] - Flume NG package is broken because of org.hbase.asynchbase deps. mismanagement
    - [BIGTOP-1150] - update Spark debian packaging to the latest format
    - [BIGTOP-1153] - Crunch package doesn't depend on anything
    - [BIGTOP-1164] - Get whole Bigtop stack building on JDK 7
    - [BIGTOP-1167] - got "Permission denied" when creating vagrant home folder in provision.sh
    - [BIGTOP-1168] - hue build fails (unresolvable maven dependencies)
    - [BIGTOP-1169] - Hue rpm build fails
    - [BIGTOP-1174] - missing dependency setting on init-hdfs.sh in puppet recipes
    - [BIGTOP-1181] - Add pyspark to spark package
    - [BIGTOP-1187] - Spark service packages have extraneous core in the name
    - [BIGTOP-1191] - master pom.xml file formatting is out of whack
    - [BIGTOP-1197] - iTest PackageManagerTests are failing
    - [BIGTOP-1199] - Makefile for deb packing needs to support zip archives
    - [BIGTOP-1205] - GRADLE_OPTS missing closing " in toolchain jenkins.sh.*
    - [BIGTOP-1217] - Spark test-artifact missing repository for install
    - [BIGTOP-1218] - Add JDK7 to Bigtop toolchain
    - [BIGTOP-1220] - Gradle task order isn't enforced properly with dependsOn
    - [BIGTOP-1221] - Expand and updated FUSE tests
    - [BIGTOP-1223] - TestSlive does not fully remove root directory after an iteration
    - [BIGTOP-1225] - TestHDFSQuota can fail if tests are run out of order
    - [BIGTOP-1226] - TestSLive setup() already being used, need to rename
    - [BIGTOP-1232] - test artifact build fails in io-longevity
    - [BIGTOP-1234] - TestFileAppend shouldn't reuse client during testMultipleOutputStreamFailure()
    - [BIGTOP-1236] - TestCLI expecting permissions incorrectly 
    - [BIGTOP-1238] - TestCLI has misspelled 'NAMNEODE' that is used without protocol name
    - [BIGTOP-1239] - TestCLI: make ports optional in regex comparators
    - [BIGTOP-1246] - Fix the shell-object bug in HttpFs smoke tests
    - [BIGTOP-1250] - TestTextSnappy fails
    - [BIGTOP-1252] - Update ant from 1.9.2 to 1.9.3
    - [BIGTOP-1253] - TestSLive calling setpDir() instead of setupDir()
    - [BIGTOP-1254] - add gradle specific files to .gitignore
    - [BIGTOP-1255] - init-hcfs.json needs to encode privileges as strings, not numbers.
    - [BIGTOP-1256] - Spark package deployment should reflect BIGTOP-1183
    - [BIGTOP-1258] - Spark puppet deploy might fail as /etc/spark can not be created
    - [BIGTOP-1259] - spark-worker service should be started after spark-master if ran on the same node
    - [BIGTOP-1260] - Puppet deployment should reflect on the new name of spark package
    - [BIGTOP-1268] - Jenkins Job Bigtop-trunk-Hadoop failed from 3/15/2014 due to protoc version
    - [BIGTOP-1274] - yarn ResourceManager should be started before starting NodeManagers
    - [BIGTOP-1290] - Zookeeper build is failing on Ant 1.9.3
    - [BIGTOP-1294] - asciidoc is missed from centos and sles environments of bigtop_toolchain
    - [BIGTOP-1295] - package.mk misteriously missing mkdir for RPMS that leads to SUSE build to fail
    - [BIGTOP-1300] - need to bump ant version to 1.9.4 in bigtop_toolchain
    - [BIGTOP-1303] - Pig 0.12.1 build is broken at the site target. Stack build can't proceed
    - [BIGTOP-1304] - bigtop_toolchain needs to install Scala 2.10 to support Spark build
    - [BIGTOP-1306] - RPM licensing metadata is inconsistent and wrong
    - [BIGTOP-1313] - Ant 1.9.4 update is missed from ant.pp recipe.
    - [BIGTOP-1319] - hive-rpm target is broken
    - [BIGTOP-1322] - hbase_install.sh shall be called with bash
    - [BIGTOP-1324] - Fix typo in testHDFSConf.xml of TestCLI
    - [BIGTOP-1336] - Puppet recipes failed to deploy kerberos enabled hadoop cluster
    - [BIGTOP-1337] - Logging success messages in service startup and shutdown only after verification.
    - [BIGTOP-1345] - remove bigtop-packages/src/root@mgrover-centos6-2.ent.cloudera.com
    - [BIGTOP-1346] - Generalize evaluation regexp in packages.gradle
    - [BIGTOP-1355] - Hive 0.13 deb build is broken
    - [BIGTOP-1358] - adjust toolchain to use JDK7 by default
    - [BIGTOP-1359] - fix a few issues with our puppet_toolchain code
    - [BIGTOP-1371] - Spark-master service fails to start due to missing /usr/lib/spark/work
    - [BIGTOP-1380] - Pig might run out of memory during site construction
    - [BIGTOP-1382] - Hadoop site.csv components additions: yarn & mapred-app
    - [BIGTOP-1390] - JDK Woes
    - [BIGTOP-1394] - package test manifest got out of date
    - [BIGTOP-1396] - update metadata for bigtop-groovy and phoenix
    - [BIGTOP-1397] - hive-hbase package is missing after move to the latest Hive
    - [BIGTOP-1398] - hadoop-hdfs-fuse can't be installed on Ubuntu 14.04
    - [BIGTOP-1399] - add --help to alternative invocation to support newer Ubuntus
    - [BIGTOP-1400] - Whirr is failing with PermGen error: needs to be bumped up
    - [BIGTOP-1401] - Create man pages for YARN, HDFS and MAPRED. 
    - [BIGTOP-1402] - Update bigtop gradle to 2.x
    - [BIGTOP-1405] - Gradle 2.0 installation from toolchain is broken
    - [BIGTOP-1415] - Remove redundant jars from spark package.
    - [BIGTOP-1418] - [BigPetStore] build.gradle - wrong variable name (hadoopClusterRuntime instead of runtime)
    - [BIGTOP-1420] - Update Phoenix version to 4.1.0 in the BOM
    - [BIGTOP-1421] - Phoenix build is missing some variables
    - [BIGTOP-1425] - gradle build can fail with NPE in an obscure way
    - [BIGTOP-1427] - HBase build should build hbase-***-hadoop2 by default
    - [BIGTOP-1428] - update tests to reflect new home for hbase user
    - [BIGTOP-1429] - Apache build of Bigtop test artifacts fails to find correct Hbase jars
    - [BIGTOP-1430] - incorrect version of spark-core prevents test artifacts from compiling
    - [BIGTOP-1438] - asciidoc is no longer needed by Sqoop
    - [BIGTOP-1439] - split jdk7 and jdk6 in Bigtop toolchain
    - [BIGTOP-1440] - a few usability updates to bigtop_toolchain
    - [BIGTOP-1441] - bigtop_toolchain fails on Ubuntu
    - [BIGTOP-1442] - need to add proper clean up for the toolchain puppet code
    - [BIGTOP-1444] - Phoenix RPM build is broken after BIGTOP-1421

- IMPROVEMENT
    - [BIGTOP-840] - Refactor Bigtop puppet code for better integration with newer Puppet and Whirr
    - [BIGTOP-848] - Allow to build stack on top of an arbitrary Hadoop SHA
    - [BIGTOP-952] - init-hdfs.sh is dog slow. Let's replace it with a direct HDFS API calls and better layout management
    - [BIGTOP-992] - Create HowToContribute wiki page
    - [BIGTOP-1019] - Remove mysql requirement constraint from sqoop tests
    - [BIGTOP-1026] - Big Top Mapred/Itest assertions should report specific commands which fail
    - [BIGTOP-1029] - Add support for HBase 0.96+
    - [BIGTOP-1085] - spark packages needs to be split
    - [BIGTOP-1110] - Define BOM for 0.8.0 release of Bigtop
    - [BIGTOP-1130] - Update Build Requirements on our web pages
    - [BIGTOP-1137] - provide a way to request a major version of JDK
    - [BIGTOP-1138] - hadoop-conf-pseudo package uses the deprecated fs.default.name parameter
    - [BIGTOP-1139] - bigtop-tomcat and bigtop-jsvc don't depend on bigtop-utils
    - [BIGTOP-1144] - Need to update command 'puppet apply' in file bigtop-deploy/puppet/README.md
    - [BIGTOP-1147] - README.md improvments
    - [BIGTOP-1152] - speed up spark build
    - [BIGTOP-1155] - New logo ! 
    - [BIGTOP-1161] - Have a way to dynamically select components to be deployed by Puppet recipes.
    - [BIGTOP-1163] - puppet apply shows db init error if the oozie server is already running
    - [BIGTOP-1171] - Puppetize the Vagrant deployer
    - [BIGTOP-1178] - Clusterize the puppetized vagrant deployer.
    - [BIGTOP-1195] - Higher level interface to smokes.
    - [BIGTOP-1200] - Implement Generic Text File to define HCFS filesystem semantics
    - [BIGTOP-1201] - Enhance (gradleize) the build to ease development, deployment; abstract implementation
    - [BIGTOP-1207] - Create a foundation layer to build longevity and performance tests for the stack
    - [BIGTOP-1210] - integrate BIGTOP-952 with plain text HCFS FS definition from  BIGTOP-1200
    - [BIGTOP-1213] - TestHadoopExamples smokes: orderering of tests; other improvements
    - [BIGTOP-1222] - Simplify and gradleize a subset of the bigtop smokes
    - [BIGTOP-1224] - Provide a simple order for tests
    - [BIGTOP-1241] - BIGTOP should update protobuf to 2.5 from 2.4.x 
    - [BIGTOP-1257] - Make TestHadoopExamples modular enough to support longevity tests.
    - [BIGTOP-1269] - BigPetStore: Create build w/ gradle
    - [BIGTOP-1289] - Update component versions in the pom.xml (including hadoop)
    - [BIGTOP-1296] - Fix permission and Update README for vagrant-puppet recipe
    - [BIGTOP-1311] - allow easy site publishing
    - [BIGTOP-1312] - Add dynamic menus, update, links, modern CSS to bigtop site.
    - [BIGTOP-1314] - Deprecate make build
    - [BIGTOP-1316] - enhance Shell for better checking of return code & output logging
    - [BIGTOP-1321] - TestCLI: check assumptions before the test run
    - [BIGTOP-1342] - Make TestCLI usable for both HDFS and HCFS
    - [BIGTOP-1347] - Support better entropy performance on vagrant VMs
    - [BIGTOP-1348] - vagrant-puppet provisioning is too slow on installing packages
    - [BIGTOP-1372] - Bigtop needs feature that takes in multiple arguments to build specific components at command line
    - [BIGTOP-1374] - Add dynamic override of BOM variables into Gradle build
    - [BIGTOP-1391] - Improve README.md so that the markdown rendering is pretty and easy to read

- NEW FEATURE
    - [BIGTOP-1039] - Add packaging for Shark analytics 
    - [BIGTOP-1089] - BigPetStore: A polyglot big data processing blueprint
    - [BIGTOP-1188] - Smoke tests for HttpFs
    - [BIGTOP-1192] - Add utilities to facilitate cluster failure testing into bigtop-test-framework
    - [BIGTOP-1212] - Pick or build a framework for building fake data sets
    - [BIGTOP-1272] - BigPetStore: Productionize the Mahout recommender
    - [BIGTOP-1351] - Init script for HBase Thrift2 server is missing

- TASK
    - [BIGTOP-236] - The user installed by hbase gets an incorrect home directory
    - [BIGTOP-1240] - Formatting Guidelines

- TEST
    - [BIGTOP-1040] - Add integration tests for Shark component


* Release 0.7.0 (2013-10-28)

- SUB-TASK
  - [BIGTOP-932] - Allow puppet recipes to automatically pull in needed files from web
  - [BIGTOP-964] - Bump hive version to 0.11
  - [BIGTOP-993] - Add packaging for Phoenix
  - [BIGTOP-1053] - Bump version of Hadoop to 2.0.6-alpha
  - [BIGTOP-1073] - Bump version of HBase to 0.94.11
  - [BIGTOP-1074] - Bump version of Hue to 2.5.0
  - [BIGTOP-1075] - bump version of Flume to 1.4.0
  - [BIGTOP-1076] - bump version of Crunch to 0.7.0
  - [BIGTOP-1077] - Bump version of Hive to 0.11.0
  - [BIGTOP-1078] - bump version of Datafu to 1.0.0
  - [BIGTOP-1079] - bump version of Solr to 4.5.0
  - [BIGTOP-1083] - Spark version was changed with incubating process.
  - [BIGTOP-1101] - Bump version of HBase to 0.94.12

- BUG
  - [BIGTOP-990] - /usr/lib/bigtop-utils/ should be owned by bigtop-utils package
  - [BIGTOP-998] - Consolidate Hue packages
  - [BIGTOP-1005] - Create versionless symlinks in hadoop client directory
  - [BIGTOP-1006] - Explicitly state the working directory to be used in init scripts instead of relying on user's home directories
  - [BIGTOP-1008] - /usr/lib/bigtop-utils directory is not owned by bigtop-utils package in RPMs
  - [BIGTOP-1010] - libsnappy not included in the final hadoop RPM
  - [BIGTOP-1011] - bigtop-detect-javahome has a quirky search order
  - [BIGTOP-1017] - Revert a commit that introduces some unneeded dependencies
  - [BIGTOP-1027] - 'bigtop-detect-classpath' helper script missing from bigtop-utils
  - [BIGTOP-1033] - itest-common: fix debian install to avoid conffile prompt
  - [BIGTOP-1034] - Custom user's home directory's creation fails in init-hdfs.sh
  - [BIGTOP-1036] - Hue's oozie app package should depend on hue jobsub package
  - [BIGTOP-1037] - Provide a mechanism to control the sourcing of defaults files
  - [BIGTOP-1044] - hive and hive-jdbc versions should be kept in sync
  - [BIGTOP-1045] - Be consistent with shells, bigtop-detect-javahome, and bigtop-utils versions
  - [BIGTOP-1046] - Pig's use of BIGTOP_DEFAULTS_DIR is evaluated at the wrong time
  - [BIGTOP-1051] - Spark archive should come in tar.gz format
  - [BIGTOP-1052] - Increase environment configurability/debugging of Mahout Tests
  - [BIGTOP-1055] - Spark package doesn't create PREFIX/bin directory and sets wrong permissions
  - [BIGTOP-1059] - Add path option for pig.jar to pig smoke pom.xml
  - [BIGTOP-1070] - Add BIGTOP_CLASSPATH functionality to tomcat deployment
  - [BIGTOP-1071] - bigtop-detect-javahome should select the first possible candidate in the list
  - [BIGTOP-1081] - deb spark packing needs to set SOURCE_DIR
  - [BIGTOP-1082] - spark package tests are missing
  - [BIGTOP-1084] - spark build on CentOS 5 and SLES11 is broken
  - [BIGTOP-1086] - fix miscellaneous failures in package tests
  - [BIGTOP-1087] - flume rpm package needs to own /usr/lib/flume/tools
  - [BIGTOP-1088] - oozie packages need to own /etc/oozie/conf.dist/tomcat-deployment.{default,secure}
  - [BIGTOP-1090] - hue packaging needs to handle mutable bits (app.reg and hue.pth)
  - [BIGTOP-1094] - spark SPEC mistakenly re-defines alternatives command on SLES/OpenSUSE 
  - [BIGTOP-1095] - oozie  packaging doesn't remove tomcat alternatives
  - [BIGTOP-1096] - alternatives within the alternatives-managed sub-directory could be harmful
  - [BIGTOP-1098] - now that Spark has had its first incubator release we have to adjust bigtop accordingly
  - [BIGTOP-1099] - sync up the versions used for smoke tests with the BOM versions
  - [BIGTOP-1100] - the new Tomcat deployment style would benefit from a few usability tweaks
  - [BIGTOP-1103] - Remaining fixes of BIGTOP_DEFAULTS_DIR evaluation
  - [BIGTOP-1107] - Update to the official Hue 2.5.1 release
  - [BIGTOP-1108] - Solr 4.5.0 has been formally released and we should start using the official release bits
  - [BIGTOP-1112] - sqoop-client should require bigtop-utils
  - [BIGTOP-1114] - Hue metastore app is missing from core registration and Debian packages
  - [BIGTOP-1115] - update package test manifest for Bigtop 0.7.0
  - [BIGTOP-1117] - hive-hcatalog integration has a few issues
  - [BIGTOP-1119] - phoenix DEB packages differ in a few ways from RPM counterparts

- IMPROVEMENT
  - [BIGTOP-927] - Update puppet recipes to support Ubuntu
  - [BIGTOP-938] - Upgrade to Junit 4.11
  - [BIGTOP-955] - HBase installation should advertise its location and configuration
  - [BIGTOP-1004] - Hadoop packages do not include version independent symlinks
  - [BIGTOP-1021] - Update HBase version to 0.94.9
  - [BIGTOP-1031] - README has outdated/ambiguous information
  - [BIGTOP-1041] - Add Puppet support for Spark cluster deployment
  - [BIGTOP-1056] - some changes are introduced into Spark build: needs to be updated here
  - [BIGTOP-1063] - Add Scala 2.9.3 to bigtop-toolchain
  - [BIGTOP-1069] - Remove descriptions about JDK5 dependency
  - [BIGTOP-1080] - Change /usr/bin scripts to be alternatives instead of flat files
  - [BIGTOP-1106] - update our puppet deployment topology

- NEW FEATURE
  - [BIGTOP-811] - Add /var/lib/bigtop as a location to install SQL connectors and other plug-ins
  - [BIGTOP-1023] - Define BOM for 0.7.0 release of Bigtop

- TASK
  - [BIGTOP-715] - Add Spark packaging
  - [BIGTOP-939] - Make usage of bigtop-tomcat more dynamic

- TEST
  - [BIGTOP-719] - Add TestTextSnappy to test hadoop fs -text with snappy compressed files
  - [BIGTOP-1030] - Develop integration tests for new Spark component
  - [BIGTOP-1057] - Add TeraGen / TeraSort Benchmakring

* Release 0.6.0 (2013-06-10)

- SUB-TASK
  - [BIGTOP-239] - HBase init scripts are shut down in the wrong order
  - [BIGTOP-812] - HttpFS is using Tomcat 6.0.32 which has numerous vulnerabilities
  - [BIGTOP-813] - add integration test for HCatlog
  - [BIGTOP-814] - add packaging test for HCatlog
  - [BIGTOP-822] - Bump version of Hadoop to 2.0.5
  - [BIGTOP-824] - Bump version of Hive to 0.10
  - [BIGTOP-832] - Bump version of Hue to 2.3.0
  - [BIGTOP-833] - Update HCatalog packaging for Bigtop 0.6.0 integration
  - [BIGTOP-839] - add packaging test for Sqoop 2
  - [BIGTOP-852] - Improve HDFS helper script
  - [BIGTOP-854] - add package testing manifest for HCatalog
  - [BIGTOP-855] - add integration tests for HCatalog
  - [BIGTOP-861] - init-hdfs.sh does not work from init scripts
  - [BIGTOP-862] - All the Apache Hadoop services ought to start nicely and in order
  - [BIGTOP-863] - verify the existence of the initscripts with typo
  - [BIGTOP-864] -  update the appliance for the location of the init-hdfs.sh script
  - [BIGTOP-880] - Bump version of Datafu to 0.0.6
  - [BIGTOP-891] - TestPigTest doesn't run against YARN cluster
  - [BIGTOP-915] - bump version of Oozie to 3.3.2
  - [BIGTOP-916] - Bump version of Pig to 0.11.1
  - [BIGTOP-917] - Bump version of Solr to 4.2.1
  - [BIGTOP-926] - Bump version of Giraph to 1.0
  - [BIGTOP-933] - Need to add ASF license text to bigtop-toolchain files
  - [BIGTOP-962] - Bump Sqoop version to 1.99.2
  - [BIGTOP-963] - bump version of Whirr to 0.8.2
  - [BIGTOP-980] - bigtop-toolchaing user module can't create 'jenkins' user

- BUG FIXES
  - [BIGTOP-275] - scoping of variable in puppet code is incorrect
  - [BIGTOP-379] - Package testing for Bigtop 0.5.0 release
  - [BIGTOP-445] - yarn default file has the wrong name
  - [BIGTOP-463] - should we reconsider /usr/lib vs. /usr/libexec decision?
  - [BIGTOP-483] - Smoke test of Hadoop fails with clitest missing testConf.xml file
  - [BIGTOP-489] - TestCLI with two test cases fails ID - 146 and 147 related to refreshServiceAcl
  - [BIGTOP-504] - provide a functionality for detecting libjvm.so in bigtop-utils
  - [BIGTOP-545] - package testing manifest in trunk needs to be updated
  - [BIGTOP-553] - Metadata for packages needs to be harmonized between RPM and Debain
  - [BIGTOP-584] - Fix hive smoke test failures in trunk
  - [BIGTOP-624] - running start on a service already running should return success
  - [BIGTOP-637] - Update boxgrinder appliance for the coming release
  - [BIGTOP-786] - Not able to find wiki link on Bigtop homepage
  - [BIGTOP-804] - org.apache.bigtop.itest.pmanager.PackageManagerTest.testLookupGcc fails on some systems
  - [BIGTOP-808] - hadoop-conf-pseudo package breaks hadoop-conf alternatives during upgrades
  - [BIGTOP-809] - Remove harmless scary message from solr build
  - [BIGTOP-815] - Move the trunk forward now that 0.5.0 is released
  - [BIGTOP-818] - Updated list of supported platforms on Bigtop's homepage and readme file
  - [BIGTOP-823] - Remove obsolete slf4j removal in hive packaging
  - [BIGTOP-826] - Wrong return code returned when stopping Hue on RHEL/SUSE
  - [BIGTOP-827] - Ubuntu Install Instructutions Fail with a 404
  - [BIGTOP-829] - Hue status returned wrong information on SLES
  - [BIGTOP-830] - Add $(APACHE_MIRROR) for bigtop-tomcat
  - [BIGTOP-834] - Remove workaround for MAPREDUCE-4814 in historyserver
  - [BIGTOP-835] - The shell exec method must have variants which have timeout and can run in background
  - [BIGTOP-836] - Hue status on SuSE doesn't work when run from outside of /usr/bin
  - [BIGTOP-837] - Oozie 3.3.0 can't be build against Hadoop 2.0.3 or later
  - [BIGTOP-841] - hadoop-conf-pseudo missed configuration for capacity scheduler and historyserver
  - [BIGTOP-842] - hadoop-mapreduce-historyserver service dumps some output to the console instead of its .out file 
  - [BIGTOP-844] - hadoop rpm upgrade sequence is broken
  - [BIGTOP-846] - The helper script introduced in BIGTOP-547 doesn't create /user/$USER directories on HDFS
  - [BIGTOP-850] - Remove non-ASF repositories and infrastructure references from the project files
  - [BIGTOP-851] - Typo breaks detection of multiple libraries in bigtop-utils in some JVMs
  - [BIGTOP-853] - HBase test, TestLoadAndVerify does not work on secure clusters
  - [BIGTOP-857] - Inconsistent group ownership of /var/run/hadoop-hdfs between .deb and .rpm installs
  - [BIGTOP-858] - HBase tests are no longer compile with HBase 0.94
  - [BIGTOP-859] - fix the Bigtop trunk package test
  - [BIGTOP-869] - hadoop preun should not stop services itself on behalf of its subpackages
  - [BIGTOP-870] - Bump version of Pig to 0.11
  - [BIGTOP-873] - Hive needs Ivy cache cleared
  - [BIGTOP-874] - make test contracts show up in javadoc
  - [BIGTOP-875] - hadoop-smoke is broken because of missed dependency
  - [BIGTOP-876] - TestDFSAdmin in hadoop-smoke is outdated and still relies on presence of -upgradeProgress
  - [BIGTOP-877] - TestDFSAdmin in hadoop-smoke has to ensure its own environment, e.g. create HDFS paths, etc.
  - [BIGTOP-878] - Bump version of Oozie to 3.3.1
  - [BIGTOP-879] - Bump version of Solr to 4.2.0
  - [BIGTOP-883] - Add support for Oracle RPM Java 1.7
  - [BIGTOP-884] - hive smoke tests can't be executed as a jar file isn't present anymore
  - [BIGTOP-885] - TestHiveSmokeBulk fails on Hive 0.9
  - [BIGTOP-886] - Non-fatal errors when starting Hive daemons in EL5
  - [BIGTOP-887] - Sqoop 2 should be consistent with Oozie / Bigtop for server plugins directory
  - [BIGTOP-888] - Oozie losing value of JAVA_HOME when spawning sub-shell
  - [BIGTOP-889] - pig smoke tests are no longer running
  - [BIGTOP-890] - Remove workaround for distributed cache problem from Oozie package
  - [BIGTOP-892] - hadoop packages misses capacity-scheduler configuration
  - [BIGTOP-894] - Pig compilation fails on RPM systems on Bigtop trunk
  - [BIGTOP-895] - A number of testcases in TestCLI are failing with (at least) Hadoop 2.0.3 and later
  - [BIGTOP-896] - Solr rpm requires redhat-lsb to run
  - [BIGTOP-899] - enabled deployment topology with 3 nodes
  - [BIGTOP-900] - update deployment configs for Kerberized installations
  - [BIGTOP-901] - Oozie smoke tests mightn't be able to obtain the jobtracker or namenode hostnames, using old config. names 
  - [BIGTOP-902] - Hive uses same file for log4j and standard output
  - [BIGTOP-903] - crunch integration tests need to clean up output directory before each individual subtask is run
  - [BIGTOP-904] - mahout tests should default to /tmp as a temp location
  - [BIGTOP-905] - bump versions of test execution poms to match the BOM
  - [BIGTOP-906] - a few tests need artifacts compiled against Hadoop 2.X
  - [BIGTOP-907] -  hadoop-mapreduce-historyserver should require hadoop-hdfs
  - [BIGTOP-910] - datanode init script cannot stop the process bcause it cannot find the pid file
  - [BIGTOP-912] - update HBase tests for 0.6.0
  - [BIGTOP-914] - puppet needs to provision test users
  - [BIGTOP-918] - Move BOM version info to the root pom file
  - [BIGTOP-920] - Add HCatalog tests
  - [BIGTOP-923] - Packages that depend on bigtop-utils needs to specify >= 0.6
  - [BIGTOP-928] - Hive can't be build against non-published Hadoop artifacts
  - [BIGTOP-929] - Pig component build needs to use internal resolvers
  - [BIGTOP-930] - init-hdfs.sh fails on execution
  - [BIGTOP-934] - Hidden cookie is being set by wiki.cloudera.org via http://blogs.apache.org/bigtop top page
  - [BIGTOP-935] - Use init script templates for hive
  - [BIGTOP-936] - Use init script templates for hbase
  - [BIGTOP-937] - Hive does not restart on Ubuntu
  - [BIGTOP-940] - fix issues with Hive package
  - [BIGTOP-945] - Service lock files need to match init script name
  - [BIGTOP-946] - solr-server runlevels are wrong in debian
  - [BIGTOP-947] - oozie init script does not use JAVA_HOME in /etc/default/bigtop-utils
  - [BIGTOP-948] - TestFileAppend and TestHDFSQuota tests need to be updated
  - [BIGTOP-949] - Add Sqoop tests
  - [BIGTOP-950] - race condition for output consumption in Shell code
  - [BIGTOP-951] - Hive Smoke's TestJdbcDriver fails
  - [BIGTOP-953] - Revert BIGTOP-835 and BIGTOP-950
  - [BIGTOP-954] - metadada and user data for sqoop and hcatalog packages are wrong
  - [BIGTOP-956] - fix small issues with mahout, hue and oozie tests
  - [BIGTOP-957] - update deployment code for Sqoop2
  - [BIGTOP-958] - update deployment code for HCatalog
  - [BIGTOP-959] - get rid of hadoop specific init.d.tmpl
  - [BIGTOP-960] - Remove workaround for HBASE-6263 in hbase-thrift start
  - [BIGTOP-968] - oozie is now part of the core hue
  - [BIGTOP-969] - a few files belong to more than one package
  - [BIGTOP-970] - update package test manifest and fix small issues in package metadata for Bigtop 0.6.0
  - [BIGTOP-971] - take care of the rat licensing complaints
  - [BIGTOP-974] - Crunch download location is no longer /incubator
  - [BIGTOP-975] - HBase regionserver init script does not implement "condrestart" command
  - [BIGTOP-981] - Provide minimal documentation for puppet deploy config file
  - [BIGTOP-982] - hcatalog needs to be given HCAT_HOME and HIVE_HOME
  - [BIGTOP-983] - Oozie-client package ships its docs twice
  - [BIGTOP-984] - bigtop-utils doesn't detect JAVA_HOME for Oracle JDK 7 when package by Debian's tool
  - [BIGTOP-985] - Create Hive JDBC package
  - [BIGTOP-988] - HCatalog does not launch daemon process in a known directory
  - [BIGTOP-991] - crunch archive is incorrect
  - [BIGTOP-994] - hdfs-init missed a few permissions on the sub-directories
  - [BIGTOP-997] - TestCLI fails test id 5:  comparator fails
  - [BIGTOP-1001] - need package tests for hive-jdbc package
  - [BIGTOP-1002] - Complete porting Sqoop import tests to Sqoop 2

- IMPROVEMENT
  - [BIGTOP-12] - Add HCatalog to Bigtop
  - [BIGTOP-547] - create an HDFS setup helper script
  - [BIGTOP-712] - Bigtop 0.5.0 release
  - [BIGTOP-713] - use newer debhelper and source format 3.0 (quilt) for Debian and Ubuntu packaging
  - [BIGTOP-756] - Provide the thrift API interface file in the HBase packages
  - [BIGTOP-763] - Add hdfs-journalnode to hadoop.spec
  - [BIGTOP-817] - Wiki breadcrumb still shows Bigtop(incubating)
  - [BIGTOP-821] - Puppet README's Usage section cuts off because of angle bracket delimiter
  - [BIGTOP-838] - Both conf.empty and conf.pseudo packages don't seem to include a sample hadoop-env.sh file
  - [BIGTOP-843] - It would be really cool if bigtop-detect-javahome were smarter and didn't pick a 32-bit JVM, or a 1.7 JVM set with default
  - [BIGTOP-882] - Upload content of Oozie sharelib to HDFS
  - [BIGTOP-893] - migrate puppet code to use init-hdfs.sh
  - [BIGTOP-931] - a few improvements to secure puppet deployment code
  - [BIGTOP-961] - hcatalog should be re-using hive user when running
  - [BIGTOP-967] - package removal is currently missing from our package tests
  - [BIGTOP-973] - Improve error diagnostics when sed'ing Hadoop version in Oozie package
  - [BIGTOP-995] - JDK bug 6979329 requires a redundant kinit -R
  - [BIGTOP-1000] - Remove remaining references to the Incubator

- NEW FEATURE
  - [BIGTOP-732] - Support running multiple HBase region servers
  - [BIGTOP-881] - Add support for Oozie to be configured with SSL (HTTPS)

- TASK
  - [BIGTOP-118] - Check to ensure our build system requirements are actually declared properly in the packaging.
  - [BIGTOP-681] - Package tests needed for new DataFu package
  - [BIGTOP-720] - Build environment automation
  - [BIGTOP-760] - Push artifacts from non-Maven projects into local Maven cache
  - [BIGTOP-805] - Add Sqoop 2 to bigtop

- TEST
  - [BIGTOP-621] - Add test for distcp - intra cluster
  - [BIGTOP-625] - Add HDFS Append Test
  - [BIGTOP-693] - Add hadoop-fuse-dfs test
  - [BIGTOP-728] - add datafu integration test

* Release 0.5.0 (2012-12-25)

- SUB-TASK
  - [BIGTOP-39] - Include Apache Avro in Bigtop
  - [BIGTOP-41] - Add Apache Thrift to Bigtop
  - [BIGTOP-65] - Package Apache Forrest
  - [BIGTOP-225] - Exit consistently in init scripts for stop on stopped service
  - [BIGTOP-232] - create an example .ks file for Bigtop
  - [BIGTOP-237] - Oozie init scripts are way too verbose
  - [BIGTOP-239] - HBase init scripts are shut down in the wrong order
  - [BIGTOP-240] - hbase initscripts should be more explicit
  - [BIGTOP-302] - 1. Start a separate Wiki page on Installing Bigtop in VMs (VirtualBox) (make sure to record the fact that one needs >> 2GB of RAM)    2. Record the experience with 32bit OSes 
  - [BIGTOP-380] - Initscripts have misleading messages
  - [BIGTOP-533] - BigTop Hama Integration Tests
  - [BIGTOP-551] - Updates for packaging manifest
  - [BIGTOP-612] - Add Crunch to Bigtop
  - [BIGTOP-692] - Bump Whirr to 0.8.1
  - [BIGTOP-695] - Make variables used in flume build/install scripts consistent
  - [BIGTOP-696] - Make variables used in oozie build/install scripts consistent
  - [BIGTOP-697] - Make variables used in zookeeper build/install scripts consistent
  - [BIGTOP-700] - Make variables used in whirr build/install scripts consistent
  - [BIGTOP-702] - Make variables used in datafu build/install scripts consistent
  - [BIGTOP-703] - Make variables used in jsvc build/install scripts consistent
  - [BIGTOP-704] - Make variables used in pig build/install scripts consistent
  - [BIGTOP-705] - Make variables used in giraph build/install scripts consistent
  - [BIGTOP-706] - Make variables used in hive build/install scripts consistent
  - [BIGTOP-707] - Make variables used in tomcat build/install scripts consistent
  - [BIGTOP-711] - update hadoop version to 2.0.2-alpha 
  - [BIGTOP-714] - HDFS Fuse build broken for 0.23.3
  - [BIGTOP-733] - Bump Hue to 2.1.0
  - [BIGTOP-735] - Upgrade to pull Solr 4.0 when it's officially released
  - [BIGTOP-736] - When Solr is integrated, we'll need some tests.
  - [BIGTOP-744] - add package test for Solr
  - [BIGTOP-750] - Bump Zookeeper to 3.4.5
  - [BIGTOP-751] - Bump HBase to 0.94.2
  - [BIGTOP-752] - Bump Sqoop to 1.4.2
  - [BIGTOP-753] - Bump Flume to 1.3.0
  - [BIGTOP-765] - Create deployment code for Solr
  - [BIGTOP-791] - Bump Oozie to 3.3.0

- BUG
  - [BIGTOP-51] - Layout of Bigtop repository can be optimized
  - [BIGTOP-79] - Audit RPM package dependencies for programs invoked from install/uninstall scripts
  - [BIGTOP-98] - Ability to force ivy/maven version inter-dependency needs to be implemented
  - [BIGTOP-105] - hadoop services can not be started with the default configs in place
  - [BIGTOP-106] - review and cleanup install/unistall/upgrade time dependencies
  - [BIGTOP-107] - make Bigtop packaging work in kick-start environment
  - [BIGTOP-135] - make jsvc use detection more robust on SLES
  - [BIGTOP-168] - all of the packages that link to hadoop-core need to also link commons-configuration-1.6.jar
  - [BIGTOP-172] - Hadoop init.d scripts are flaky on stop
  - [BIGTOP-177] - Remove or fix versioned dependencies between packages of Bigtop
  - [BIGTOP-187] - some packages ship log files
  - [BIGTOP-200] - /var/lib/hadoop is set to 777 on installation it should just be group writable
  - [BIGTOP-213] - We should use another group than hadoop for system groups
  - [BIGTOP-218] - we need to figure out which compressors/codecs need to be pulled into Bigtop
  - [BIGTOP-219] - Pig/HBase integration is not working
  - [BIGTOP-222] - some man pages in /usr/share/doc/flume
  - [BIGTOP-223] -  install/ initscripts fixes 
  - [BIGTOP-224] - Some configuration files have their permissions set to 755
  - [BIGTOP-226] - everything in /usr/lib/pig is set to 755. Non executable files should just be 644
  - [BIGTOP-227] - whirr has all its files (except its man page) set as 755
  - [BIGTOP-228] - Whirr should have a symlink to the hadoop's jars it needs
  - [BIGTOP-229] - pig package install an alternative with an inconsitent name
  - [BIGTOP-230] - removing packages displays the following extraneous messages
  - [BIGTOP-256] - Lintian Errors/Warnings - Hadoop Package
  - [BIGTOP-275] - scoping of variable in puppet code is incorrect
  - [BIGTOP-279] - we shouldn't be using properties that have been deprecated in config/puppet
  - [BIGTOP-282] - the licensing status of the MovieLens data files needs to be cleared up
  - [BIGTOP-292] - BIgtop SRPMs can not be rebuilt
  - [BIGTOP-307] - README documentation is inaccurate
  - [BIGTOP-311] - hadoop does not build in off-line mode
  - [BIGTOP-326] - puppet modules need to be renamed to align with renaming that happens on the package front
  - [BIGTOP-330] - hadoop 0.23 pseudo conf needs to set more properties to avoid using /tmp as its datadir
  - [BIGTOP-335] - sqoop-metastore service fails to start because it ends up using /usr/lib/hadoop/bin/hadoop
  - [BIGTOP-340] - wrapper scripts would benefit from being explicit
  - [BIGTOP-347] - we need to get rid of workaround for HDFS-1943 in hadoop init.d scripts
  - [BIGTOP-358] - now that hadoop packages have been split we have to update the dependencies on the downstream packages
  - [BIGTOP-368] - /usr/bin/hadoop sources /etc/default/yarn unconditionally
  - [BIGTOP-377] - Clean up packages
  - [BIGTOP-379] - Package testing for Bigtop 0.5.0 release
  - [BIGTOP-385] - new artifacts in Hadoop 0.23 need to be properly packaged
  - [BIGTOP-395] - flume-ng init.d scripts seem to be unhappy on Debian
  - [BIGTOP-425] - HMaster dies from RemoteException: Server IPC version 5 cannot communicate with client version 4
  - [BIGTOP-436] - flume-node stop seems to mistarget some other java process on lucid
  - [BIGTOP-445] - yarn default file has the wrong name
  - [BIGTOP-463] - should we reconsider /usr/lib vs. /usr/libexec decision?
  - [BIGTOP-471] - hive server setup after installation fails on creating /var/lock/subsys directory
  - [BIGTOP-483] - Smoke test of Hadoop fails with clitest missing testConf.xml file
  - [BIGTOP-486] - separate principals from keytabs in our kerberos module
  - [BIGTOP-489] - TestCLI with two test cases fails ID - 146 and 147 related to refreshServiceAcl
  - [BIGTOP-490] - SmokeTest-Mahout test failures
  - [BIGTOP-492] - make our launcher scripts recognize cascading defaults
  - [BIGTOP-504] - provide a functionality for detecting libjvm.so in bigtop-utils
  - [BIGTOP-511] - Add debian repo to bigtop puppet
  - [BIGTOP-520] - HBase Debian builds run do-component-build twice
  - [BIGTOP-525] - make sure yarn.dispatcher.exit-on-error is set to true
  - [BIGTOP-531] - package metadata check error: when description is empty, the summary will append text "description" at the end of summary
  - [BIGTOP-542] - Issue when installing the new zkfc
  - [BIGTOP-545] - package testing manifest in trunk needs to be updated
  - [BIGTOP-549] - update puppet code for the latest state of HA in Hadoop
  - [BIGTOP-553] - Metadata for packages needs to be harmonized between RPM and Debain
  - [BIGTOP-566] - Flume NG pkg init script should allow user to customize the location of the conf dir
  - [BIGTOP-581] - Need to move iTest website to a correct location
  - [BIGTOP-584] - Fix hive smoke test failures in trunk
  - [BIGTOP-591] - libhdfs0-dev is missing files
  - [BIGTOP-615] - Add support for Ambrose Pig job visualization
  - [BIGTOP-624] - running start on a service already running should return success
  - [BIGTOP-634] - Weird output when doing an init action on oozie when it is already running
  - [BIGTOP-637] - Update boxgrinder appliance for the coming release
  - [BIGTOP-644] - fix the runlevels for a few packages in yum/apt/zypper
  - [BIGTOP-648] - hbase-thrift cannot be started properly
  - [BIGTOP-654] - Set nproc for HDFS user
  - [BIGTOP-658] - Move hbase dependency in hive out of the main package
  - [BIGTOP-662] - cannot start hue-server
  - [BIGTOP-663] - cannot start sqoop-metastore in Ubuntu precise
  - [BIGTOP-664] - hive-metastore script has error when execute 'service hive-metastore status' in Ubuntu precise
  - [BIGTOP-667] - start hadoop-httpfs in SLES return 3 instead of 0
  - [BIGTOP-669] - Add DataFu to Bigtop distribution
  - [BIGTOP-676] - Update HBase version to 0.94.1-rc0
  - [BIGTOP-679] - fuse_dfs binary has moved due to HDFS-3537
  - [BIGTOP-684] - copyright header in bigtop-packages/src/common/hadoop/conf.secure/core-site.xml is in wrong place
  - [BIGTOP-686] - Apache Flume 1.2.0 went out so we should upgrade to it
  - [BIGTOP-689] - Oozie use of /var/tmp in some CentOS versions create issues
  - [BIGTOP-691] - flume gets killed too fast when the service is asked to stop
  - [BIGTOP-694] - Some HBase Scripts Need To Be Excluded From Packaging
  - [BIGTOP-699] - hadoop-fuse-dfs fails to find libjvm.so when JAVA_HOME happens to be a symlink
  - [BIGTOP-701] - Bigtop Hadoop package does not include bash tab completion
  - [BIGTOP-708] - modify Hive integration test to depends on the correct jar file
  - [BIGTOP-721] - improve the package daemon status check, check twice by some delay if status doesn't match expected value
  - [BIGTOP-725] - package service test TestServices should only do config once for a group of services
  - [BIGTOP-729] - zookeeper initd script status doesn't work
  - [BIGTOP-734] - Proposed fixes to Hive logging configuration
  - [BIGTOP-740] - improve the package file content tests to ignore platform specific file names
  - [BIGTOP-745] - fix incorrect javadocs in test framework
  - [BIGTOP-754] - libhdfs0-dev package is empty
  - [BIGTOP-755] - YARN_HOME is now HADOOP_YARN_HOME
  - [BIGTOP-758] - [Pig] Override hadoop-core and hadoop-test artifact versions only if Hadoop < 2.x
  - [BIGTOP-759] - Flume do-component-build should set hbase.version according to BOM
  - [BIGTOP-762] - Updates for building Flume versions >= 1.2
  - [BIGTOP-766] - Make it possible to override Apache URLs for the builds that require them
  - [BIGTOP-768] - Bump the version of Groovy to 1.8
  - [BIGTOP-774] - solr build fails on Debian
  - [BIGTOP-775] - In Groovy 1.8 the behavior of a getters of static fields changed slightly
  - [BIGTOP-776] - A few updates to Oozie related packaging code to accomodate Oozie's TLP status
  - [BIGTOP-778] - move Solr app to under /solr in Tomcat deployment and provide more knobs
  - [BIGTOP-780] - cannot install hive-server in SLES
  - [BIGTOP-781] - Bigtop packages seem to have a bunch of parasitic provides
  - [BIGTOP-782] - 'service hue status' still show 'failed' after hue is started in SLES
  - [BIGTOP-783] - 'service hue stop' cannot stop the hue service in SLES
  - [BIGTOP-785] - clean up build-time dependencies in our packages
  - [BIGTOP-788] - Oozie RPM build error due to lack of usr/lib/oozie/{libserver,oozie-server,libext}
  - [BIGTOP-789] - remove shadow-utils dependency from zookeeper
  - [BIGTOP-793] - add crunch integration tests
  - [BIGTOP-794] - puppet code around hadoop_head_node breaks on newer puppets
  - [BIGTOP-795] - need to abstract away the notion of Bigtop puppet repo
  - [BIGTOP-796] - hive install tries to tickle HDFS and it shouldn't
  - [BIGTOP-797] - provide a way to 'rsync' files into HDFS during puppet deployment
  - [BIGTOP-798] - introduce a fatjar collection of all the Bigtop integration tests and all their dependencies
  - [BIGTOP-800] - BIGTOP_JSVC is lacking ARCHIVE designation
  - [BIGTOP-801] - prioritize jdk over jre in bigtop-utils javadetection
  - [BIGTOP-803] - somehow puppet gets confused by the hadoop fs output

- IMPROVEMENT
  - [BIGTOP-12] - Add HCatalog to Bigtop
  - [BIGTOP-22] - Unify init scripts
  - [BIGTOP-58] - Add man page for Mahout
  - [BIGTOP-60] - Add normal rpmbuild options for make rpm
  - [BIGTOP-78] - Misc improvments 
  - [BIGTOP-117] - Document incompatible API changes between releases
  - [BIGTOP-153] - Build should detect invalid archives in the dl directory
  - [BIGTOP-204] - Add information about supported projects and criteria for support to Apache Bigtop website
  - [BIGTOP-233] - Ubuntu integration: ufw application profiles
  - [BIGTOP-245] - Improve Bigtop layout
  - [BIGTOP-263] - we need a way to provide supervision for long running daemon applications
  - [BIGTOP-284] - It would be nice to integrate Nutch crawling as one of the MR (and perhaps HBase) tests for Bigtop
  - [BIGTOP-304] - document test creation and test execution steps in Bigtop
  - [BIGTOP-351] - Make HBASE_HEAPSIZE manageable via puppet
  - [BIGTOP-375] - Publish a table of component dependency versions
  - [BIGTOP-410] - Build secure version of HBase
  - [BIGTOP-433] - Make variables used in build/install scripts consistent
  - [BIGTOP-451] - ooziedb.sh script should run as the unix user that runs oozie server
  - [BIGTOP-452] - oozie installation should offer to run ooziedb.sh
  - [BIGTOP-456] - Consider splitting homedir between mapred and hdfs users?
  - [BIGTOP-476] - Improvement of BigTop iTest framework
  - [BIGTOP-497] - add bash tab completion to our hadoop packages
  - [BIGTOP-517] - Flume packaging should use the term "agent" instead of "node".
  - [BIGTOP-536] - provide suitable title in the <title> tag of the main home page for bigtop-incubating
  - [BIGTOP-547] - create an HDFS setup helper script
  - [BIGTOP-550] - Add ability to have multiple zookeeper servers to puppet
  - [BIGTOP-571] - we might need to guard against direct use of the upstream launcher scripts
  - [BIGTOP-575] - [Pseudo-dist config] Should yarn.nodemanager.remote-app-log-dir really be set?
  - [BIGTOP-576] - Minor discrepancy in naming of logs/users vs. base log directories
  - [BIGTOP-640] - Sync up dependency library versions automatically
  - [BIGTOP-670] - provide a link to our Jenkins server from the Bigtop's project page
  - [BIGTOP-680] - Write util function to capture test input parameters
  - [BIGTOP-688] - improve hue packaging via making virtual env relocatable and moving DB files into /var/lib/hue
  - [BIGTOP-710] - Create a higher level orchestration deployment framework
  - [BIGTOP-712] - Bigtop 0.5.0 release
  - [BIGTOP-713] - use newer debhelper and source format 3.0 (quilt) for Debian and Ubuntu packaging
  - [BIGTOP-716] - standardize on bash as a shell of choice
  - [BIGTOP-718] - Update wiki for component requirements
  - [BIGTOP-726] - make it possible to run HiveBulkScriptExecutor scripts selectively
  - [BIGTOP-731] - Reorganize Hadoop tests
  - [BIGTOP-742] - tighten permissions on hadoop services home directories
  - [BIGTOP-756] - Provide the thrift API interface file in the HBase packages
  - [BIGTOP-757] - Install ZooKeeper jars into the local Maven cache
  - [BIGTOP-769] - Create a generic shell executor iTest driver
  - [BIGTOP-772] - Remove all references to the incubation from the trunk of Bigtop
  - [BIGTOP-777] - separate the Package Tests into service tests, file content tests, and dependency tests
  - [BIGTOP-779] - create a config management utility for SolrCloud
  - [BIGTOP-784] - test deployment code on all of the supported platforms (using OpenJDK7 where available)
  - [BIGTOP-787] - Surface all possible options in /etc/default/flume-node
  - [BIGTOP-792] - org.apache.bigtop.itest.posix.Service needs to be updated to accomodate upstart/systemd
  - [BIGTOP-799] - create an itest method for unpacking all the resources into the HDFS or local filesystem
  - [BIGTOP-802] - Add rollback option to DataNode service script
  - [BIGTOP-806] - now that MAPREDUCE-3916 is fixed we should enable webproxy

- NEW FEATURE
  - [BIGTOP-42] - Start doing testpatch-like patch validation
  - [BIGTOP-64] - Package Apache tools used in Bigtop builds
  - [BIGTOP-101] - Need to come up with a strategy for dealing with soft dependencies between packages
  - [BIGTOP-103] - add support for upstart service management facility
  - [BIGTOP-116] - Add support for systemd
  - [BIGTOP-220] - Add mrunit to Bigtop
  - [BIGTOP-246] - Provide more verbose output at artifact build time
  - [BIGTOP-276] - Standardize how clients create classpaths and java.library.paths
  - [BIGTOP-350] - Some sort of system expert would be useful for manifests reviews
  - [BIGTOP-399] - Provide a one-click install package for seamless deployment of Bigtop from the release/nightly repos
  - [BIGTOP-458] - Create some builds/tests jobs for openJDK 6 and 7 on bigtop01 jenkins
  - [BIGTOP-460] - Add support for daemontools-encore
  - [BIGTOP-524] - Add tests to verify that our init scripts conform to the LSB specification
  - [BIGTOP-594] - Introduce git-style bigtop command line and BIGTOP_HOME environment variable
  - [BIGTOP-601] - introduce bigtop-build packages for packaging build-time dependencies
  - [BIGTOP-635] - Implement a cluster-abstraction, discovery and manipulation framework for iTest
  - [BIGTOP-685] - provide a way to specify the parameters expected by a test
  - [BIGTOP-687] - Support YARN as a subproject of Hadoop
  - [BIGTOP-730] - add tarball driver into Bigtop

- TASK
  - [BIGTOP-236] - The user installed by hbase gets an incorrect home directory
  - [BIGTOP-314] - add ZooKeeper systest to Bigtop testing regime 
  - [BIGTOP-406] - Enable openSuse VM on bigtop01
  - [BIGTOP-439] - we need to review package test manifest for the Bigtop 0.4.0 release
  - [BIGTOP-681] - Package tests needed for new DataFu package
  - [BIGTOP-715] - Add Spark packaging
  - [BIGTOP-720] - Build environment automation
  - [BIGTOP-760] - Push artifacts from non-Maven projects into local Maven cache

- TEST
  - [BIGTOP-614] - Add HDFS HA tests
  - [BIGTOP-621] - Add test for distcp - intra cluster
  - [BIGTOP-625] - Add HDFS Append Test
  - [BIGTOP-629] - Adding Automated HA Tests 
  - [BIGTOP-693] - Add hadoop-fuse-dfs test
  - [BIGTOP-719] - Add TestTextSnappy to test hadoop fs -text with snappy compressed files
  - [BIGTOP-728] - add datafu integration test

- WISH
  - [BIGTOP-67] - Resize bigtop logo in header of website

* Release 0.4.0 (2012-06-25)

- SUB-TASK
  - [BIGTOP-249] - Fix namenode webapp
  - [BIGTOP-250] - Build contrib modules
  - [BIGTOP-251] - Making sure security works with the new packages for hadoop 0.23
  - [BIGTOP-254] - Write init scripts for the new yarn services
  - [BIGTOP-268] - Examples do not run
  - [BIGTOP-270] - Need to create versionless jars for integration point with other projects
  - [BIGTOP-271] - Kill the sbin package for hadoop 0.23
  - [BIGTOP-299] - Recording the fact that Java needs to be installed *before* installing Bigtop (at least on Ubuntu)
  - [BIGTOP-300] - Record the information on slow mirrors
  - [BIGTOP-387] - Zookeeper version needs to be updated to 3.4.3
  - [BIGTOP-424] - Bump version of Oozie to 3.1.3
  - [BIGTOP-527] - Integrate Hue 2.0.0 into Bigtop
  - [BIGTOP-538] - update puppet code for  BIGTOP-535
  - [BIGTOP-539] - update puppet code for  BIGTOP-534
  - [BIGTOP-603] - Bump version of Pig to 0.10.0
  - [BIGTOP-604] - Bump version of Hive to 0.9.0
  - [BIGTOP-605] - Create How To Release document
  - [BIGTOP-606] - Bump version of HBase to 0.94.0
  - [BIGTOP-617] - Bump version of Oozie to 3.2.0
  - [BIGTOP-628] - bump version of Mahout to 0.7.0

- BUG FIXES
  - [BIGTOP-96] - Mahout examples try to write to /usr/lib/mahout/examples/bin/work
  - [BIGTOP-162] - downstream components need to be patched to be compatible with MR2
  - [BIGTOP-186] - whirr package ships source code and needs some permissions fixes
  - [BIGTOP-264] - Hadoop 23 upstream tarball put some of its hadoop jars in the same directory as some of the dependencies
  - [BIGTOP-269] - in .23 HBase need to link to a much wider set of hadoop jars
  - [BIGTOP-272] - small cleanup for hadoop 0.23
  - [BIGTOP-274] - yarn-site.xml needs to be addedd to the Hadoop client classpath
  - [BIGTOP-277] - hive package in hadoop-0.23 branch is hopelessly broken
  - [BIGTOP-283] - in hadoop-0.23 the sha for Hadoop needs to be bumped to the 23.1-SNAPSHOT cut off point
  - [BIGTOP-285] - Remove source jars from hadoop-0.23
  - [BIGTOP-286] - hadoop-0.23: hadoop-mapreduce-examples.jar is empty
  - [BIGTOP-288] - hadoop-0.23: pig contrib should have jars
  - [BIGTOP-289] - hadoop-0.23: need to package native libraries for compression
  - [BIGTOP-291] - __id_u RPM macro seems to be disabled in newer versions of RPMs
  - [BIGTOP-294] - brp-repack-jars chokes on guice-2.0.jar because of the directories without any read permission
  - [BIGTOP-308] - hadoop-0.23 branch doesn't provide .so links to hadoop native libraries
  - [BIGTOP-309] - hadoop-0.23 puppet code needs to deploy history server
  - [BIGTOP-312] - Puppet resource dependency syntax used in hadoop/manifests/init.pp doesn't always work
  - [BIGTOP-316] - split up hadoop packages into common, hdfs, mapreduce (and yarn)
  - [BIGTOP-325] - bump version of Zookeeper to 3.4.2
  - [BIGTOP-331] - our init scripts fail to detect a failed history server in hadoop 0.23
  - [BIGTOP-333] - heed to start properly packaging httpfs
  - [BIGTOP-338] - hadoop 0.23 doc package does not contain generated documentation
  - [BIGTOP-339] - zookeeper init.d script has a typo in PID file location
  - [BIGTOP-341] -  hadoop streaming is not available in hadoop-0.23 branch
  - [BIGTOP-344] - puppet code needs to be updated to be able to deploy Hadoop 0.23 YARN in a secure fashion
  - [BIGTOP-345] - container-executor.conf.dir needs to be set to /etc/hadoop/conf
  - [BIGTOP-346] - container-executor needs to be owned by root:yarn and have permissions of 6050
  - [BIGTOP-348] - jsvc location needs to be updated in init.d datanode script
  - [BIGTOP-349] - jsvc from hadoop build fails on some of the Linux systems that Bigtop has to support
  - [BIGTOP-355] - missed yarn.nodemanager.local-dirs, yarn.nodemanager.log-dirs and yarn.nodemanager.remote-app-log-dir in our puppet code
  - [BIGTOP-357] - libjvm.so dependency on CentOS can only be satisfied by libgcj in some cases
  - [BIGTOP-359] - documentation build is picked from the wrong place
  - [BIGTOP-367] - Upgrade sequencing issue
  - [BIGTOP-369] - pig package has license files in the wrong location
  - [BIGTOP-372] - hive can't be started without setting HADOOP_HOME
  - [BIGTOP-373] - bigtop-detect-javahome not customizable
  - [BIGTOP-376] - Remove unused obsolete statement in hadoop packaging
  - [BIGTOP-378] - history server security configs are missing
  - [BIGTOP-381] - need to catch up with the HEAD of hadoop-common in hadoop-0.23
  - [BIGTOP-383] - bigtop-detect-javahome installed at location unexpected by scripts on SLES
  - [BIGTOP-389] - need to start packaging apache commons daemon jsvc
  - [BIGTOP-392] - zookeeper package needs to be updated for 3.4 series
  - [BIGTOP-393] - hadoop packages don't set nproc
  - [BIGTOP-396] - Missing resource dependencies in puppet for secure clusters
  - [BIGTOP-397] - hbase, sqoop and oozie don't use alternatives for managing configuration
  - [BIGTOP-402] - manifests for package testing contain way too many duplicate data
  - [BIGTOP-407] - hadoop package can't be installed on debian
  - [BIGTOP-408] - HBase build needs to be worked around in hadoop-0.23 branch
  - [BIGTOP-409] - sqoop build fails on SLES
  - [BIGTOP-415] - need to workaround MAPREDUCE-3890
  - [BIGTOP-416] - run levels for init.d scripts need to be harmonized
  - [BIGTOP-417] - webapps shipped by bigtop components should be using a system-provided Tomcat
  - [BIGTOP-418] - Package MAPREDUCE-2858 (MRv2 WebApp Security)
  - [BIGTOP-420] - bigtop-detect-javahome installed at location unexpected by scripts on SLES
  - [BIGTOP-421] - Sign every single file from the convenience artefact in the releases
  - [BIGTOP-422] - need to start packaging fuse for Hadoop 0.23
  - [BIGTOP-423] - hadoop package needs to be split into hadoop-client and hadoop-server packages
  - [BIGTOP-426] - build failures in hadoop-0.23 branch
  - [BIGTOP-428] - sqoop build needs to be forced to depend on HBase 0.92.0 artifacts
  - [BIGTOP-429] - CATALINA_PID needs to be updated in hadoop-httpfs.default to correspond to the calculated value
  - [BIGTOP-430] - oozie examples are missing
  - [BIGTOP-434] - Potential issue in the way Bigtop test infrastructure deal with arch in packages
  - [BIGTOP-435] - need to split hadoop subpackages even further for hadoop-0.23
  - [BIGTOP-438] - need to bump the version of hadoop .23 to hadoop-0.23.3-SNAPSHOT
  - [BIGTOP-443] - deb/oozie/oozie-client.postinst installs an alternative for a path that isn't there
  - [BIGTOP-448] - Cannot install flume-ng-node pkg
  - [BIGTOP-449] - hadoop package cleanup for hadoop-0.23
  - [BIGTOP-450] - repackage Oozie as a true webapp
  - [BIGTOP-453] - hadoop needs to depend on Zookeeper
  - [BIGTOP-455] - we still need at HADOOP_LIBEXEC_DIR=/usr/lib/hadoop/libexec to be present in our launcher scrtips
  - [BIGTOP-461] - hadoop-httpfs unconditionally removes the alternative
  - [BIGTOP-462] - JSVC_HOME location can be both /usr/lib/bigtop-utils and /usr/libexec/bigtop-utils
  - [BIGTOP-464] - There's currently a commented block in puppet/modules/hadoop/templates/yarn-site.xml that fails to render in some cases
  - [BIGTOP-467] - [puppet] yarn historyserver currently doesn't depend on the mapreduce keytab as it should
  - [BIGTOP-468] - [puppet] Fix httpfs dependencies and give it its own keytab 
  - [BIGTOP-469] - [puppet] web authentication principal missing from hdfs-site.xml
  - [BIGTOP-472] - make deb fails when building Whirr - OutOfMemoryError: PermGen space
  - [BIGTOP-473] - zookeeper man page needs to be updated
  - [BIGTOP-474] - improve Oozie integration with Hadoop 0.23
  - [BIGTOP-477] - launcher script for pig, hive, sqoop and mahout should not source /etc/default/hadoop anymore
  - [BIGTOP-478] - perhaps we should go back to mapred as a user name for mapreduce daemons in Hadoop 0.23
  - [BIGTOP-479] - init.d scripts should provide an option for initializing persistent state of the services that require it
  - [BIGTOP-480] - log aggregation knob is now yarn.log-aggregation-enable and needs to be enabled
  - [BIGTOP-481] - fix the way to handle repo key for Debian like system
  - [BIGTOP-482] - HTTPFS puppet code needs to be updated
  - [BIGTOP-484] - Fix typo error ('alredy' -> 'already')
  - [BIGTOP-485] - transition package dependencies to hadoop-client package
  - [BIGTOP-487] - oozie security configuration needs to be updated
  - [BIGTOP-488] - TestCLI missing dependency
  - [BIGTOP-493] - [puppet] core-site.xml and httpfs-site.xml end up changing every few times puppet is run
  - [BIGTOP-496] - Hive ships some source code in the package.
  - [BIGTOP-498] - Oozie's home dir is currently set to /var/run/oozie but should be /var/lib/oozie
  - [BIGTOP-500] - Oozie hive workflows are broken because of the HADOOP_HOME being deprecated
  - [BIGTOP-501] - it would help to have libext point to /var/lib/oozie in Oozie packaging
  - [BIGTOP-502] - Flume NG init script should pass --name "agent" instead of --name "<hostname>"
  - [BIGTOP-503] - remove unsupported upstream launcher scripts from packaging
  - [BIGTOP-505] - Flume should exit 0 when trying to stop a non-running service
  - [BIGTOP-506] - Flume should exit 0 when trying to start an already running service
  - [BIGTOP-507] - sqoop deb package is empty
  - [BIGTOP-509] - make all is failing because flume-1.0.0-incubating.tar.gz does not exist in APACHE_MIRROR
  - [BIGTOP-510] - log4j property must be set with property in for Flume NG pkg
  - [BIGTOP-512] - oozie can't be installed on debian
  - [BIGTOP-513] - Pig Packaging Cleanup
  - [BIGTOP-516] - it would be cleaner to get rid of mapreduce entries in limits.d/mapreduce.conf now that we consolidated the user back to mapred
  - [BIGTOP-519] - /etc/default files are not marked as configs by various hadoop packages
  - [BIGTOP-521] - Hadoop Pseudo-conf files have wrong permissions
  - [BIGTOP-526] - it could be useful to have dfs.permissions.enabled set to true in our configs
  - [BIGTOP-528] - A small patch to give better return codes which can be understood by chef and pupper among others.
  - [BIGTOP-529] - [puppet] We don't currently format zookeeper nodes on first run
  - [BIGTOP-530] - [puppet] We currently xst the HTTP principal multiple times, each time invalidating the previous one
  - [BIGTOP-537] - provide a workaround for non-LSB compliant catalina.sh handling of a stop action
  - [BIGTOP-540] - hadoop package on debian is missing JSVC_HOME specification
  - [BIGTOP-541] - Build issue for hadoop RPM
  - [BIGTOP-543] - fuse_dfs_wrapper.sh should not be provided
  - [BIGTOP-544] - zookeeper-server init doesn't work
  - [BIGTOP-546] - Hadoop rpm is missing fuse default file
  - [BIGTOP-548] - we should consider moving the creation of the hive user into the hive package
  - [BIGTOP-552] - Enable HDFS durable sync
  - [BIGTOP-554] - rat is complaining again
  - [BIGTOP-556] - hbase, yarn and hdfs users are getting incorrect home directories on Debian
  - [BIGTOP-557] - /etc/oozie/conf and oozie-conf alternative should belong to oozie instead of oozie-client
  - [BIGTOP-558] - debian description can't have the following set of characters ${VAR}
  - [BIGTOP-559] - HttpFS fails to load Hadoop configuration after installation. 
  - [BIGTOP-560] - Flume-ng does not depend on ant or xml-commons anymore
  - [BIGTOP-561] - HBase packaging has dangling symlinks
  - [BIGTOP-562] - fix Mahout smoke test in trunk branch
  - [BIGTOP-563] - Build behind proxy fails
  - [BIGTOP-564] - Build failure for big-top trunk for pig, oozie, and whirr
  - [BIGTOP-565] - catalina-based services should be really careful with catalina stop
  - [BIGTOP-568] - Move the configuration directory for hadoop to /etc/hadoop
  - [BIGTOP-574] - Add netcat and fuser as dependencies for some of the Bigtop stack. 
  - [BIGTOP-579] - hadoop-yarn creates log files with inconsistent ownership on Debian/Ubuntu
  - [BIGTOP-580] - a wrapper for the ZooKeeper cleanup script is missing
  - [BIGTOP-582] - when running Hadoop daemons pidofproc is mistakenly looking for 'su' instead of 'java'
  - [BIGTOP-583] - "Class path contains multiple SLF4J bindings" warnings
  - [BIGTOP-585] - hbase package has dangling symlinks
  - [BIGTOP-586] - HBase package should provide a versionless symlink to a jar for other projects to depend upon
  - [BIGTOP-587] - Hive package needs to depend on Zookeper and HBase
  - [BIGTOP-588] - Oozie puppet code needs to take care of initializing the DB
  - [BIGTOP-589] - TestLoadAndVerify's HBase scanner caching setting too high
  - [BIGTOP-590] - hadoop man page needs to be updated
  - [BIGTOP-592] - clean up content of conf.empty and conf.pseudo config files
  - [BIGTOP-593] - improve the package test to handle [arch=xx] in the repo file
  - [BIGTOP-595] - flume-ng agent should honor /etc/default settings
  - [BIGTOP-596] - move service configuration from groovy code to package xml manifest file
  - [BIGTOP-597] - Flume init scripts should not create the log and lock directories.
  - [BIGTOP-598] - missing zookeeper init on debian
  - [BIGTOP-599] - /var/lock/subsys may not exist on some distributions and this create some issues in Apache Hadoop
  - [BIGTOP-600] - hbase init script should not source hbase-config
  - [BIGTOP-607] - remove python build dependency from Hive package
  - [BIGTOP-608] - remove source/build artifacts from the Pig package
  - [BIGTOP-609] - add support for openjdk 1.7
  - [BIGTOP-616] - Fix TestHadoopSmoke and TestHadoopExamples: tests look for streaming and examples jar in wrong directory
  - [BIGTOP-626] - small misc. issues with the newly introduced Giraph package
  - [BIGTOP-630] - Fix services priorities
  - [BIGTOP-633] - bigtop-utils packages should depend on 'which'
  - [BIGTOP-636] - a few minor tweaks to the Hue deployment code
  - [BIGTOP-638] - move <services> block from common package_date.xml to each platform's (yum, apt, zypper) package_data.xml
  - [BIGTOP-639] - sqoop-metastore cannot stop because "Could not load db driver class: org.hsqldb.jdbcDriver"
  - [BIGTOP-642] - Suse does not have a package named which 
  - [BIGTOP-643] - Fix package statement in TestHDFSQuota
  - [BIGTOP-646] - update metadata for Hue in the package testing manifest
  - [BIGTOP-647] - service flume-node fail to start
  - [BIGTOP-648] - hbase-thrift cannot be started properly
  - [BIGTOP-649] - PackageTestCommon.checkRemoval() is broken
  - [BIGTOP-650] - Override libexecdir for bigtop-utils on mageia

- IMPROVEMENT
  - [BIGTOP-266] - Need to override default yarn task classpath
  - [BIGTOP-273] - Need to update puppet recipies for Hadoop 0.23 deployment
  - [BIGTOP-313] - Move puppet configuration out of manifest and into extlookup() CSV
  - [BIGTOP-322] - update .gitignore to ignore backup files and eclipse generated files.
  - [BIGTOP-332] - it would be nice to bump hadoop version to 0.23.1-SNAPSHOT across the stack
  - [BIGTOP-366] - Set some minimum versions for ZK + Flume
  - [BIGTOP-371] - Update bigtop repository url for the applance
  - [BIGTOP-454] - update oozie man page
  - [BIGTOP-465] - webhdfs isn't in the puppeted hadoop configuration
  - [BIGTOP-466] - Secure zookeeper support missing from puppet
  - [BIGTOP-470] - [puppet] Improve secure configuration for zk and hbase
  - [BIGTOP-475] - Provides initscript for the REST HBase gateway
  - [BIGTOP-522] - Minor Hive Packaging Cleanup
  - [BIGTOP-534] - Need init.d script for zkfc
  - [BIGTOP-535] - add httpfs config property pointing to hadoop conf dir
  - [BIGTOP-555] - Bump version of HBase to 0.92.1
  - [BIGTOP-567] - Make sure we can detect the JAVA_HOME for java-package built JDK package
  - [BIGTOP-572] - Fix HDFS directory values in pseudo-conf hdfs-site.xml for 0.23+ NN/DN/SNN
  - [BIGTOP-573] - we no longer have to override container-executor.conf.dir
  - [BIGTOP-577] - [base conf] There's no hadoop-metrics2.properties present in the configs that are shipped.

- NEW FEATURE
  - [BIGTOP-248] - Update packages for Hadoop 0.23
  - [BIGTOP-267] - Need to implement implement makefiles logic for tarball builds
  - [BIGTOP-306] - Make a boxgrinder appliance
  - [BIGTOP-405] - Create a bootable ISO
  - [BIGTOP-495] - [puppet] Add support for HA namenodes
  - [BIGTOP-570] - Build package for Apache Giraph
  - [BIGTOP-578] - Integrate Hue 2.0.0 into Bigtop
  - [BIGTOP-602] - Bigtop 0.4.0 release

- TASK
  - [BIGTOP-298] - Upgrade to ZooKeeper 3.4.1
  - [BIGTOP-319] - update to Mahout 0.6
  - [BIGTOP-494] - Create Flume 1.1.0 packages in Bigtop

- TEST
  - [BIGTOP-321] - Make TestLoadAndVerify parameterizable and runnable from command line
  - [BIGTOP-444] - Add sqoop smoke tests
  - [BIGTOP-569] - fix for TestCLI failures due to change in behavior of hadoop fs -put
  - [BIGTOP-610] - Add basic hdfs fsck test and move logError helper to bigtop-test-framework
  - [BIGTOP-611] - Add HBase TestImportTsv
  - [BIGTOP-618] - Add HBase hbck test 
  - [BIGTOP-619] - Add HBase CopyTable test
  - [BIGTOP-620] - Add test for dfsadmin commands
  - [BIGTOP-622] - Add test for HDFS Balancer
  - [BIGTOP-623] - Add test for HDFS Quota Testing
  - [BIGTOP-627] - Add HBase balancer test 
  - [BIGTOP-631] - Add HBase Import/Export test
  - [BIGTOP-641] - Add hdfs fsck options in TestFsck

* Release 0.3.0 (2012-03-20)

- SUB-TASK
  - BIGTOP-53: Bump version of flume to 0.9.4
  - BIGTOP-253: Update the debs for hadoop 0.23
  - BIGTOP-317: rename hadoop-zookeeper package into zookeeper
  - BIGTOP-327: rename hadoop-hbase package into hbase
  - BIGTOP-328: rename hadoop-pig package into pig
  - BIGTOP-329: rename hadoop-hive package into hive
  - BIGTOP-353: Bump version of Hadoop to 1.0.1
  - BIGTOP-354: Bump version of HBase to 0.92
  - BIGTOP-360: Bump version of Hive to 0.8.1
  - BIGTOP-361: Bump version of Pig to 0.9.2
  - BIGTOP-362: Bump version of Whirr to 0.7.0
  - BIGTOP-363: Bump version of sqoop to sqoop-1.4.1
  - BIGTOP-387: Zookeeper version needs to be updated to 3.4.3
  - BIGTOP-388: Let's add Mahout 0.6 to trunk
  - BIGTOP-424: Bump version of Oozie to 3.1.3

- BUG
  - BIGTOP-89: mahout examples in package using mahout from /usr/lib/mahout/bin/mahout rather than /usr/bin/mahout
  - BIGTOP-191: refactor hadoop::create_hdfs_dirs
  - BIGTOP-209: on debian hadoop launcher script has exec debian/tmp/usr/lib/hadoop/bin/hadoop
  - BIGTOP-241: hadoop .21+ requires /jobtracker to be available in HDFS
  - BIGTOP-247: Typo in error msgs
  - BIGTOP-257: HBase test source files are in wrong dir, cause compiler errors within Eclipse
  - BIGTOP-258: Compilation Error in sqoop-integration project when using Eclipse
  - BIGTOP-259: Most of the mahout tests can't be executed out-of-the box
  - BIGTOP-262: Compilation Error in  project hadoop-smoke when using Eclipse
  - BIGTOP-265: HBase smoke test execution needs to have extra class-path elements to pick up HBase configs
  - BIGTOP-278: bigtop-packages/src/common/hadoop/do-component-build contains bash syntax but is executed by dash on Debian/Ubuntu
  - BIGTOP-296: puppet code for sqoop module lacks require for sqoop package
  - BIGTOP-312: Puppet resource dependency syntax used in hadoop/manifests/init.pp doesn't always work
  - BIGTOP-315: Cut-n-paste remains of @HADOOP_DAEMON@ in non-hadoop init.d scripts
  - BIGTOP-318: Appliance VM should not have an ephemeral Apache Bigtop (incubating) repository
  - BIGTOP-320: hive RPM spec uses missing __rmdir macros
  - BIGTOP-325: bump version of Zookeeper to 3.4.2
  - BIGTOP-334: Boxgrinder does not support space in repo names
  - BIGTOP-339: zookeeper init.d script has a typo in PID file location
  - BIGTOP-342: Flume build and install scripts should be executable
  - BIGTOP-343: BIGTOP-109 was not applied to debs
  - BIGTOP-352: bump versions of the components required for the next quarterly release of Bigtop
  - BIGTOP-356: hbase pacakge should not ship jar files provided by zookeeper and hadoop
  - BIGTOP-365: Hive metastore hangs on startup on Centos5
  - BIGTOP-367: Upgrade sequencing issue
  - BIGTOP-370: Hive metastore does not initialize with permissions failure
  - BIGTOP-373: bigtop-detect-javahome not customizable
  - BIGTOP-374: bigtop-detect-javahome does not pickup new multiarch locations in Debian/Ubuntu
  - BIGTOP-376: Remove unused obsolete statement in hadoop packaging
  - BIGTOP-379: Package testing for Bigtop 0.3.0 release
  - BIGTOP-382: hadoop-conf-pseudo packages contains subversion metada
  - BIGTOP-383: bigtop-detect-javahome installed at location unexpected by scripts on SLES
  - BIGTOP-384: HBase bundle 2 different versions of hadoop as well as a zookeeper version
  - BIGTOP-386: HBase execution script should exclude ZOOKEEPER_CONF
  - BIGTOP-390: add Fedora to the list of platforms recongnized by iTest
  - BIGTOP-391: update package test manifest
  - BIGTOP-392: zookeeper package needs to be updated for 3.4 series
  - BIGTOP-393: hadoop packages don't set nproc
  - BIGTOP-394: hbase postinst script needs to be renamed
  - BIGTOP-396: Missing resource dependencies in puppet for secure clusters
  - BIGTOP-397: hbase, sqoop and oozie don't use alternatives for managing configuration
  - BIGTOP-401: unable to run hadoop-mapreduce-historyserver
  - BIGTOP-402: manifests for package testing contain way too many duplicate data
  - BIGTOP-404: flume-ng does not start
  - BIGTOP-420: bigtop-detect-javahome installed at location unexpected by scripts on SLES
  - BIGTOP-427: Add support to itest-common for Oracle Linux
  - BIGTOP-428: sqoop build needs to be forced to depend on HBase 0.92.0 artifacts
  - BIGTOP-430: oozie examples are missing
  - BIGTOP-431: Last bump to Hadoop 1.0.1 has broken Mageia's build of Apache Hadoop
  - BIGTOP-432: BIGTOP-424 broke oozie build
  - BIGTOP-437: hadoop 1.0.1 complains about HADOOP_HOME being deprecated
  - BIGTOP-440: need to cleanup pom files in bigtop-tests/test-execution
  - BIGTOP-442: add Apache license to the puppet code
  - BIGTOP-443: deb/oozie/oozie-client.postinst installs an alternative for a path that isn't there
  - BIGTOP-446: Typo in hadoop module for puppet
  - BIGTOP-459: remove references to cloudera from the packaging files

- IMPROVEMENT
  - BIGTOP-17: HBase has no "alternatives" whereas Hadoop and ZK do
  - BIGTOP-210: Organize yum repo by architecture
  - BIGTOP-221: Remove hadoop prefix from non-hadoop packages
  - BIGTOP-261: pseudo distributed config would benefit from dfs.safemode.extension set to 0 and dfs.safemode.min.datanodes set to 1
  - BIGTOP-281: Ivy home for Debian builds should be set to $HOME/.ivy2
  - BIGTOP-313: Move puppet configuration out of manifest and into extlookup() CSV
  - BIGTOP-322: update .gitignore to ignore backup files and eclipse generated files.
  - BIGTOP-371: Update bigtop repository url for the applance

- NEW FEATURE
  - BIGTOP-255: add tests for Mahout
  - BIGTOP-260: Mahout puppet module needs to be implemented
  - BIGTOP-303: Rename Bigtop packages to reflect TLP status of packaged projects
  - BIGTOP-306: Make a boxgrinder appliance
  - BIGTOP-323: Start integrating Flume NG
  - BIGTOP-403: RPM Packages should display the GNU/Linux distribution they are supposed to be installed on
  - BIGTOP-405: Create a bootable ISO

- TASK
  - BIGTOP-157: add support for ZooKeeper version 3.4.0
  - BIGTOP-298: Upgrade to ZooKeeper 3.4.1
  - BIGTOP-439: we need to review package test manifest for the Bigtop 0.3.0 release

- TEST
  - BIGTOP-287: Integrating test for HBASE-4570
  - BIGTOP-321: Make TestLoadAndVerify parameterizable and runnable from command line
  - BIGTOP-411: Add TestRegionMover to HBase system tests
  - BIGTOP-412: Add TestMoveRootMetaRegions to HBase system tests
  - BIGTOP-414: enable hadoop tests in hadoop-0.23 branch to build and to run

* Release 0.2.0 (2011-11-07)

- INCOMPATIBLE CHANGES

- IMPROVEMENTS
  - BIGTOP-11: Adds Apache Mahout (0.5) to Bigtop. (rvs)
  - BIGTOP-25: Add a new bigtop-utils package which provides some java home autodetection (bmahe)
  - BIGTOP-34: Add Hive server package (rvs)
  - BIGTOP-54: Bump version of oozie to 2.3.2 (rvs)
  - BIGTOP-55: Bump version of sqoop to sqoop-1.3.0 (rvs)
  - BIGTOP-56: Bump version of hive to hive-0.7.1 (rvs)
  - BIGTOP-90: Bump version of Hadoop to 0.20.205.0 (rvs)
  - BIGTOP-95: Puppet-based deployment infrastructure needs to be added to bigtop (rvs)
  - BIGTOP-120: Bump version of pig to 0.9.1 (rvs)
  - BIGTOP-121: Bump version of HBase to 0.90.4 (rvs)

- BUG FIXES
  - BIGTOP-27: Add disclaimer to website. (edwardyoon)
  - BIGTOP-4:  Tweaks POMs to use Apache POM as parent, get rid of obsolete infrastructure info. (abayer)
  - BIGTOP-15: Adds build dependency on libssl-dev on Debian. (plinnell)
  - BIGTOP-20: hard-coded pid location in Hadoop init.d scripts (rvs)
  - BIGTOP-26: Fixing svn properties. (abayer)
  - BIGTOP-29: Remove java dependency from all os types (rvs)
  - BIGTOP-30: Fixes ownership of /usr/lib/flume/bin/flume-daemon.sh. (abayer)
  - BIGTOP-31: Remove /usr/lib/whirr/cli/whirr.log from packaging. (abayer)
  - BIGTOP-32: Hadoop fuse package should include a file with defaults (rvs)
  - BIGTOP-38: Add link to the mailing list archives to the Bigtop website (rvs)
  - BIGTOP-40: iTest package names/groupIds need to be moved to org.apache rather than com.cloudera (rvs)
  - BIGTOP-43: HBase and Whirr should now rebuild for Debian packages. (abayer)
  - BIGTOP-45: Fix build issue for Mageia and openSUSE (bmahe)
  - BIGTOP-46: Switches to libzip1 and libzip-dev for Hadoop Debian dependencies. (abayer)
  - BIGTOP-47: Switch Whirr to download from archive.apache.org. (abayer)
  - BIGTOP-48: Fix pig build on Mageia (bmahe)
  - BIGTOP-50: Flume init script's dependency on syslog needs to be removed (rvs)
  - BIGTOP-51: Reorganizes source repository. (abayer)
  - BIGTOP-52: Fold integration/sqoop tests into smokes (rvs)
  - BIGTOP-57: Apt repo creation fails due to invalid distributions file (rvs)
  - BIGTOP-61: HBase fails to add HADOOP_CONF_DIR to its classpath (rvs)
  - BIGTOP-62: /usr/lib/hbase and everything within is owned by hbase:hbase (rvs)
  - BIGTOP-63: Hbase leaves some unnecessary directories and symlinks when being uninstalled (rvs)
  - BIGTOP-68: Moves test-artifacts/(module)/src/test to .../src/main. (abayer)
  - BIGTOP-69: Certain tests in iTest common require extraneous dependencies and should be @Ignored for now (rvs)
  - BIGTOP-70: Need to stub Hadoop 0.21+ dependencies for now in test artifacts (rvs)
  - BIGTOP-71: If explicit Ant dependency was not specified, unit tests would fail. (abayer)
  - BIGTOP-72: Gmaven plugin needs to be explicitly bound to compilation goals (rvs)
  - BIGTOP-73: oozie-client can't be safely removed on Debian (rvs)
  - BIGTOP-74: Add Mahout to package readiness tests (rvs)
  - BIGTOP-75: Mahout package is broken (rvs)
  - BIGTOP-76: Package tests need to be refactored in order to provide accurate reporting (rvs)
  - BIGTOP-77: All of our config files should be marked %config and (noreplace) (rvs)
  - BIGTOP-80: Add package dependencies to Zookeeper RPM for programs invoked from install/uninstall scripts (rvs)
  - BIGTOP-81: oozie-setup.sh script fails if Oozie has not been started once (rvs)
  - BIGTOP-82: Package testing manifest needs to be updated now that we've enabled more tests (rvs)
  - BIGTOP-83: Advanced checks in checkRemoval need to be moved out (rvs)
  - BIGTOP-84: Package removal fails in case alternatives are deleted or damaged (rvs)
  - BIGTOP-85: hadoop package ships native files (rvs)
  - BIGTOP-86: Misc. issues with Oozie package (rvs)
  - BIGTOP-87: The following packages don't remove alternatives: flume, hadoop-pig, hadoop-hive, hadoop-hbase (rvs)
  - BIGTOP-88: Use Hadoop package's hadoop jar in classpath. (abayer)
  - BIGTOP-91: Docs should be in %{_docdir}/<PACKAGE_NAME>-<PACKAGE_VERSION> (rvs)
  - BIGTOP-92: Flume's dependency on ZK needs to be the same for DEB as it is for RPM (rvs)
  - BIGTOP-93: ZK dependencies can not be satisfied on SUSE (rvs)
  - BIGTOP-94: chkconfig startup priorities need to be normalized (rvs)
  - BIGTOP-97: default files need to be normalized and moved to common (rvs)
  - BIGTOP-99: Fix sqoop build for Mageia (bmahe)
  - BIGTOP-100: Whirr packaging build fails if we're not running the tests. (abayer)
  - BIGTOP-102: daemons need to be taken care of when packages are installed/upgraded/uninstalled (rvs)
  - BIGTOP-104: hadoop daemons can not be started because hadoop-config.sh resets HADOOP_HOME (rvs)
  - BIGTOP-105: hadoop services can not be started with the default configs in place (rvs)
  - BIGTOP-108: oozie docs are installed at the incorrect location (rvs)
  - BIGTOP-109: Hadoop should not format the namenode on installation (bmahe)
  - BIGTOP-110: DN can't be started in secure configuration on SLES (rvs)
  - BIGTOP-111: Add urpmi support in test framework for Mageia (bmahe)
  - BIGTOP-112: Fixes for Mageia * Fix zlib dependency for Mageia * Replace textutils dependency by coreutils (bmahe)
  - BIGTOP-113: Fix dependency for mageia on lsb init scripts helpers for flume, hadoop, sqoop, zookeeper and hbase (bmahe)
  - BIGTOP-119: Create version-less symlinks of hadoop jars (bmahe)
  - BIGTOP-122: enable hadoop-sbin package (rvs)
  - BIGTOP-123: enable hadoop-fuse package (rvs)
  - BIGTOP-124: documentation on SLES is not supposed to have package version embedded in the directory name (rvs)
  - BIGTOP-125: whir package is full of build artifacts (rvs)
  - BIGTOP-126: zookeeper rpm should require groupadd/useradd (rvs)
  - BIGTOP-127: BIGTO-120 broke build on at least Fedora (and Mageia) (rvs)
  - BIGTOP-128: Need to call create-c++-configure target so autoreconf is called for native projects (bmahe)
  - BIGTOP-129: oozie init.d scripts should transition to using oozied.sh from upstream (rvs)
  - BIGTOP-130: Mahout package has an unneeded dependency on chkconfig (rvs)
  - BIGTOP-131: RPM dependencies for flume need to be optimized (rvs)
  - BIGTOP-132: hadoop datanode on SLES returns an incorrect code on stop/start (rvs)
  - BIGTOP-133: hadoop packages should set up nofile limits automatically (rvs)
  - BIGTOP-134: hbase packages should set up nofile limits automatically (rvs)
  - BIGTOP-136: hadoop package still leaves binary files in /usr/lib/hadoop/lib (rvs)
  - BIGTOP-137: task-controller needs to be rebuilt (rvs)
  - BIGTOP-138: task-controller binary needs to be root:mapred with 4750 permissions (rvs)
  - BIGTOP-139: links to jsvc and task-controller need to be provided in order to make hard-coded values work (rvs)
  - BIGTOP-140: need to workaround HDFS-1943 (rvs)
  - BIGTOP-141: hadoop now requires an explicit declaration of a HADOOP_SECURE_DN_USER in order to run a secure datanode (rvs)
  - BIGTOP-142: need to update zookeeper manifest to the state of packages (rvs)
  - BIGTOP-143: need to update hadoop manifest to the state of packages (rvs)
  - BIGTOP-144: kerberos deployment needs to be made compatible with default JRE crypto setup (rvs)
  - BIGTOP-145: make cluster.pp be able to handle secure and unsecure deployments (rvs)
  - BIGTOP-148: Hadoop fuse man page does not have the right permission and RPMs should not specify its extension (bmahe)
  - BIGTOP-149: HBase now requires commons-configuration jar to be in its classpath (rvs)
  - BIGTOP-150: hadoop puppet deployment needs to install hadoop-sbin on datanodes when security is turned on (rvs)
  - BIGTOP-151: need to provide more test coverage for HBase testing (rvs)
  - BIGTOP-152: TestHadoopExamples needs refactoring into a parameterized test (rvs)
  - BIGTOP-155: need to implement a uniform way of versioning dependencies for test artifacts (rvs)
  - BIGTOP-156: Only run autoreconf when autotools >= 2.61 is installed (patch by Bruno Mahe) (rvs)
  - BIGTOP-158: oozie build pulls into oozie.war incorrect version of hadoop-core jar file (rvs)
  - BIGTOP-159: oozie init.d script is not executable (plinnell)
  - BIGTOP-160: hadoop has deprecated HADOOP_HOME (rvs)
  - BIGTOP-161: the new layout that Pig script adopted needs to be worked around (rvs)
  - BIGTOP-163: stock hadoop doesn't support wildcards in proxy users (rvs)
  - BIGTOP-164: lzo codecs need to be disabled everywhere in Bigtop (rvs)
  - BIGTOP-165: oozie manifest includes functionality (sqoop and hive actions) that is not in oozie (rvs)
  - BIGTOP-166: Add the missing examples. (plinnell)
  - BIGTOP-167: All of Hadoop wrapper scripts and init.d scripts need to start include find-java code from bigtop-utils (bmahe)
  - BIGTOP-169: Hadoop should buildrequire openssl-devel for centos builds (plinnell)
  - BIGTOP-170: Add some known openJDK locations (bmahe)
  - BIGTOP-171: All of Pig wrapper scripts and init.d scripts need to start include find-java code from bigtop-utils (bmahe)
  - BIGTOP-173: we still have references to hadoop-0.20 in our puppet code (rvs)
  - BIGTOP-174: Does pig really requires git to build?  (plinnell)
  - BIGTOP-175: All of HBase wrapper scripts and init.d scripts need to start include find-java code from bigtop-utils (bmahe)
  - BIGTOP-176: Cleanup mainteners as well as mentions to Cloudera (bmahe)
  - BIGTOP-178: All of Flume wrapper scripts and init.d scripts need to start include find-java code from bigtop-utils (bmahe)
  - BIGTOP-179: All of Hive wrapper scripts and init.d scripts need to start include find-java code from bigtop-utils (bmahe)
  - BIGTOP-180: All of Mahout wrapper scripts and init.d scripts need to start include find-java code from bigtop-utils (bmahe)
  - BIGTOP-181: puppeted hadoop doesn't place PID files into /var/run/hadoop (rvs)
  - BIGTOP-182: All of Oozie wrapper scripts and init.d scripts need to start include find-java code from bigtop-utils (bmahe)
  - BIGTOP-184: All of Sqoop wrapper scripts and init.d scripts need to start include find-java code from bigtop-utils (bmahe)
  - BIGTOP-188: All of Whirr wrapper scripts and init.d scripts need to start include find-java code from bigtop-utils (bmahe)
  - BIGTOP-189: hadoop daemons do not run under the dedicated users (hdfs, mapred) (rvs)
  - BIGTOP-190: All of Zookeeper wrapper scripts and init.d scripts need to start include find-java code from bigtop-utils (bmahe)
  - BIGTOP-191: refactor hadoop::create_hdfs_dirs (rvs)
  - BIGTOP-192: oozie package needs to depend on unzip (rvs)
  - BIGTOP-192: oozie package needs to depend on zip (rvs)
  - BIGTOP-193: zookeeper doesn't generate any logs (rvs)
  - BIGTOP-194: source is not a sh(1) command (bmahe)
  - BIGTOP-195: Document build requirements for openSUSE 11.4 (plinnell)
  - BIGTOP-197: Package testing artifact needs to be refactored (rvs)
  - BIGTOP-198: remove hadoop-daemon.sh is included in too many packages (plinnell)
  - BIGTOP-199: whirr docs are installed in the incorrect location (rvs)
  - BIGTOP-201: bigtop package has an incorrect dependency on libhdfs.so (rvs)
  - BIGTOP-202: zookeeper package is missing zoo.cfg (rvs)
  - BIGTOP-203: sqoop needs to have access to hadoop .jars in its lib (rvs)
  - BIGTOP-205: zookeeper-server doesn't do nohup before launching a damon (rvs)
  - BIGTOP-206: during deployment time hdfs/mapred dir creation should be managed by hadoop module (rvs)
  - BIGTOP-207: zookeeper doesn't allow for overriding the location of the PID file (rvs)
  - BIGTOP-208: Zookeeper does not depend on git or subversion (bmahe)
  - BIGTOP-209: on debian hadoop launcher script has exec debian/tmp/usr/lib/hadoop/bin/hadoop (rvs)
  - BIGTOP-212: need to disable tests for features missing from Bigtop 0.2.0 (rvs)
  - BIGTOP-214: sequencing in puppet module for Hadoop needs to be imporved (rvs)
  - BIGTOP-215: make site.pp a bit more friendly to how we start up cluster in Bigtop jenkins (rvs)
  - BIGTOP-216: make oozie tests more robust in finding oozie-examples.tar.gz (rvs)
  - BIGTOP-217: workaround Hive SQL parser in headers for our tests (rvs)

* Release 0.1.0 (2011-08-19)

- INCOMPATIBLE CHANGES

- IMPROVEMENTS
  - BIGTOP-21: Add support for Mageia. (bmahe)
  - BIGTOP-14: Add CHANGES.txt file. (abayer)
  - BIGTOP-9: Add Bigtop podling website. (edwardyoon)
  - BIGTOP-6: Adding tarball generation to top-level makefile. (abayer)

- BUG FIXES
  - BIGTOP-13: Fix Hive compilation issue. (bmahe)
  - BIGTOP-10: Fixing NOTICE file. (abayer)
  - BIGTOP-8: Debian copyright files needed to be reformatted. (bmahe from James Page)
  - BIGTOP-3: Add top-level, real .gitignore file for git-svn. (abayer)
  - BIGTOP-2: Adding/updating license headers for ASF. (abayer)
  - BIGTOP-1: Initial code import. (abayer)
