# 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.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)
