<?xml version="1.0" encoding="iso-8859-1"?>
<!--
  ~  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.
  ~
  -->
<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
	<properties>
	    <title>Apache Bigtop downloads</title>
	</properties>
	<body>
		<section name="Software downloads">
			<subsection name="Latest Release" id="releases"></subsection>
			<p>
				You can download the latest most stable release of Apache Bigtop project.
				Source code of the framework will allow you to build, deploy, test, and
				work with distributed (cluster) software for processing of large amounts
				of data.
				<br />
			</p>
			<ul>
				<li>
					The latest release of Apache Bigtop software framework <br/>
					<a href="https://www.apache.org/dyn/closer.cgi/bigtop/bigtop-1.5.0/bigtop-1.5.0-project.tar.gz">Bigtop 1.5.0</a> (<a href="https://apache.org/dist/bigtop/bigtop-1.5.0/bigtop-1.5.0-project.tar.gz.asc">pgp</a> <a href="https://apache.org/dist/bigtop/bigtop-1.5.0/bigtop-1.5.0-project.tar.gz.sha256">sha256</a> <a href="https://apache.org/dist/bigtop/bigtop-1.5.0/bigtop-1.5.0-project.tar.gz.sha512">sha512</a>)
				</li>
				<li>
					Repositories of instsallable binary packages built with latest release
					of the Apache Bitop project <br/>
					<a href="https://www.apache.org/dyn/closer.cgi/bigtop/bigtop-1.5.0/repos/">Installable binary artifacts</a>
				</li>
			</ul>
			<subsection name="Previous Releases" id="archived"></subsection>
			<ul>
				<li>
					1.4.0 released on 2019-06-15<br/>
					<a href="https://archive.apache.org/dist/bigtop/bigtop-1.4.0/bigtop-1.4.0-project.tar.gz">Bigtop 1.4.0</a>(<a href="https://archive.apache.org/dist/bigtop/bigtop-1.4.0/bigtop-1.4.0-project.tar.gz.asc">pgp</a> <a href="https://archive.apache.org/dist/bigtop/bigtop-1.4.0/bigtop-1.4.0-project.tar.gz.sha256">sha256</a> <a href="https://archive.apache.org/dist/bigtop/bigtop-1.4.0/bigtop-1.4.0-project.tar.gz.sha512">sha512</a>)
				</li>
				<li>
					1.3.0 released on 2018-11-17<br/>
					<a href="https://archive.apache.org/dist/bigtop/bigtop-1.3.0/bigtop-1.3.0-project.tar.gz">Bigtop 1.3.0</a>(<a href="https://archive.apache.org/dist/bigtop/bigtop-1.3.0/bigtop-1.3.0-project.tar.gz.asc">pgp</a> <a href="https://archive.apache.org/dist/bigtop/bigtop-1.3.0/bigtop-1.3.0-project.tar.gz.sha256">sha256</a> <a href="https://archive.apache.org/dist/bigtop/bigtop-1.3.0/bigtop-1.3.0-project.tar.gz.sha512">sha512</a>)
				</li>
				<li>
					1.2.1 released on 2017-11-12<br/>
					<a href="https://archive.apache.org/dist/bigtop/bigtop-1.2.1/bigtop-1.2.1-project.tar.gz">Bigtop 1.2.1</a>(<a href="https://archive.apache.org/dist/bigtop/bigtop-1.2.1/bigtop-1.2.1-project.tar.gz.asc">pgp</a> <a href="https://archive.apache.org/dist/bigtop/bigtop-1.2.1/bigtop-1.2.1-project.tar.gz.md5">md5</a> <a href="https://archive.apache.org/dist/bigtop/bigtop-1.2.1/bigtop-1.2.1-project.tar.gz.sha1">sha1</a>)
				</li>
				<li>
					1.2.0 released on 2017-03-30<br/>
					<a href="https://archive.apache.org/dist/bigtop/bigtop-1.2.0/bigtop-1.2.0-project.tar.gz">Bigtop 1.2.0</a>(<a href="https://archive.apache.org/dist/bigtop/bigtop-1.2.0/bigtop-1.2.0-project.tar.gz.asc">pgp</a> <a href="https://archive.apache.org/dist/bigtop/bigtop-1.2.0/bigtop-1.2.0-project.tar.gz.md5">md5</a> <a href="https://archive.apache.org/dist/bigtop/bigtop-1.2.0/bigtop-1.2.0-project.tar.gz.sha1">sha1</a>)
				</li>
				<li>
					1.1.0 released on 2016-01-31<br/>
					<a href="https://archive.apache.org/dist/bigtop/bigtop-1.1.0/bigtop-1.1.0-project.tar.gz">Bigtop 1.1.0</a>(<a href="https://archive.apache.org/dist/bigtop/bigtop-1.1.0/bigtop-1.1.0-project.tar.gz.asc">pgp</a> <a href="https://archive.apache.org/dist/bigtop/bigtop-1.1.0/bigtop-1.1.0-project.tar.gz.md5">md5</a> <a href="https://archive.apache.org/dist/bigtop/bigtop-1.1.0/bigtop-1.1.0-project.tar.gz.sha1">sha1</a>)
				</li>
				<li>
					1.0.0 released on 2015-08-12<br/>
					<a href="https://archive.apache.org/dist/bigtop/bigtop-1.0.0/bigtop-1.0.0-project.tar.gz">Bigtop 1.0.0</a>(<a href="https://archive.apache.org/dist/bigtop/bigtop-1.0.0/bigtop-1.0.0-project.tar.gz.asc">pgp</a> <a href="https://archive.apache.org/dist/bigtop/bigtop-1.0.0/bigtop-1.0.0-project.tar.gz.md5">md5</a> <a href="https://archive.apache.org/dist/bigtop/bigtop-1.0.0/bigtop-1.0.0-project.tar.gz.sha1">sha1</a>)
				</li>
			</ul>
			<subsection name="To verify Bigtop releases using GPG:" id="gpg"></subsection>
			<ol>
				<li>
					Download the release bigtop-X.Y.Z-project.tar.gz from links above.<br/>
				</li>
				<li>
					Download the signature file pgp(bigtop-X.Y.Z-project.tar.gz.asc) from links above.<br/>
				</li>
				<li>
					Download the <a href="https://apache.org/dist/bigtop/KEYS">Bigtop KEYS</a> file.<br/>
				</li>
				<li>
					$ gpg --import KEYS<br/>
				</li>
				<li>
					$ gpg --verify bigtop-X.Y.Z-src.tar.gz.asc<br/>
				</li>
			</ol>
			<subsection name="To verify Bigtop releases using SHA-256 or SHA-512:" id="checksum"></subsection>
			<ol>
				<li>
					Download the release bigtop-X.Y.Z-project.tar.gz from links above.<br/>
				</li>
				<li>
					Download the checksum file sha256/512 from links above.<br/>
				</li>
				<li>
					$ shasum -a 256 bigtop-X.Y.Z-src.tar.gz<br/>
					$ shasum -a 512 bigtop-X.Y.Z-src.tar.gz<br/>
				</li>
			</ol>
			<subsection name="To verify Bigtop releases using SHA-1 or MD5(previous releases only):" id="checksum_prev"></subsection>
			<ol>
				<li>
					Download the release bigtop-X.Y.Z-project.tar.gz from links above.<br/>
				</li>
				<li>
					Download the checksum file sha1 or md5 from links above.<br/>
				</li>
				<li>
					$ shasum bigtop-X.Y.Z-src.tar.gz<br/>
					$ md5 bigtop-X.Y.Z-src.tar.gz<br/>
				</li>
			</ol>
		</section>
	</body>
</document>
