# 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.
#
# Database of the current verion
#
current:
  number: '0.14.0'
  pinned_number: '0.14.*'
  date: '4 July 2019'
  git-tag: 'a591d76ad9a657110368aa422bb00f4010cb6b6e'
  github-tag-link: 'https://github.com/apache/arrow/releases/tag/apache-arrow-0.14.0'
  release-notes: 'https://arrow.apache.org/release/0.14.0.html'
  mirrors: 'https://www.apache.org/dyn/closer.cgi/arrow/arrow-0.14.0/'
  tarball_name: 'apache-arrow-0.14.0.tar.gz'
  mirrors-tar: 'https://www.apache.org/dyn/closer.cgi/arrow/arrow-0.14.0/apache-arrow-0.14.0.tar.gz'
  java-artifacts: 'http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.arrow%22%20AND%20v%3A%220.14.0%22'
  asc: 'https://www.apache.org/dist/arrow/arrow-0.14.0/apache-arrow-0.14.0.tar.gz.asc'
  sha256: 'https://www.apache.org/dist/arrow/arrow-0.14.0/apache-arrow-0.14.0.tar.gz.sha256'
  sha512: 'https://www.apache.org/dist/arrow/arrow-0.14.0/apache-arrow-0.14.0.tar.gz.sha512'
