# 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 0.3.0-hadoop23 (unreleased)

- INCOMPATIBLE CHANGES

- IMPROVEMENTS

- BUG FIXES

* 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)
