#!/bin/bash # # 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. # # Adapted from https://github.com/apache/datafusion/tree/master/dev/release/create-tarball.sh # This script creates a signed tarball in # dev/dist/apache-datafusion-sqlparser-rs--rc.tar.gz and uploads it to # the "dev" area of the dist.apache.datafusion repository and prepares an # email for sending to the dev@datafusion.apache.org list for a formal # vote. # # See release/README.md for full release instructions # # Requirements: # # 1. gpg setup for signing and have uploaded your public # signature to https://pgp.mit.edu/ # # 2. Logged into the apache svn server with the appropriate # credentials # # 3. Install the requests python package # # # Based in part on 02-source.sh from apache/arrow # set -e SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SOURCE_TOP_DIR="$(cd "${SOURCE_DIR}/../../" && pwd)" if [ "$#" -ne 2 ]; then echo "Usage: $0 " echo "ex. $0 0.52.0 2" exit fi if [[ -z "${GITHUB_TOKEN}" ]]; then echo "Please set personal github token through GITHUB_TOKEN environment variable" exit fi version=$1 rc=$2 tag="v${version}-rc${rc}" echo "Attempting to create ${tarball} from tag ${tag}" release_hash=$(cd "${SOURCE_TOP_DIR}" && git rev-list --max-count=1 ${tag}) release=apache-datafusion-sqlparser-rs-${version} distdir=${SOURCE_TOP_DIR}/dev/dist/${release}-rc${rc} tarname=${release}.tar.gz tarball=${distdir}/${tarname} url="https://dist.apache.org/repos/dist/dev/datafusion/${release}-rc${rc}" if [ -z "$release_hash" ]; then echo "Cannot continue: unknown git tag: ${tag}" fi echo "Draft email for dev@datafusion.apache.org mailing list" echo "" echo "---------------------------------------------------------" cat < containing the files in git at $release_hash # the files in the tarball are prefixed with {version} (e.g. 4.0.1) mkdir -p ${distdir} (cd "${SOURCE_TOP_DIR}" && git archive ${release_hash} --prefix ${release}/ | gzip > ${tarball}) echo "Running rat license checker on ${tarball}" ${SOURCE_DIR}/run-rat.sh ${tarball} echo "Signing tarball and creating checksums" gpg --armor --output ${tarball}.asc --detach-sig ${tarball} # create signing with relative path of tarball # so that they can be verified with a command such as # shasum --check apache-datafusion-sqlparser-rs-0.52.0-rc1.tar.gz.sha512 (cd ${distdir} && shasum -a 256 ${tarname}) > ${tarball}.sha256 (cd ${distdir} && shasum -a 512 ${tarname}) > ${tarball}.sha512 echo "Uploading to sqlparser-rs dist/dev to ${url}" svn co --depth=empty https://dist.apache.org/repos/dist/dev/datafusion ${SOURCE_TOP_DIR}/dev/dist svn add ${distdir} svn ci -m "Apache DataFusion ${version} ${rc}" ${distdir}