1. Remove dnl utils jar from git 2. Add LICENSE Headers in missing files 3. Fix NOTICE and LICENSE in all HUDI packages and in top-level 4. Fix License wording in certain HUDI source files 5. Include non java/scala code in RAT licensing check 6. Use whitelist to include dependencies as part of timeline-server bundling
164 lines
4.9 KiB
Bash
Executable File
164 lines
4.9 KiB
Bash
Executable File
#!/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.
|
|
#
|
|
|
|
# This script will update apache hudi (incubating) master branch with next release version
|
|
# and cut release branch for current development version.
|
|
|
|
# Parse parameters passing into the script
|
|
|
|
set -e
|
|
|
|
function clean_up(){
|
|
echo "Do you want to clean local clone repo? [y|N]"
|
|
read confirmation
|
|
if [[ $confirmation = "y" ]]; then
|
|
cd ~
|
|
rm -rf ${LOCAL_CLONE_DIR}
|
|
echo "Clean up local repo."
|
|
fi
|
|
}
|
|
|
|
if [[ $# -eq 1 && $1 = "-h" ]]; then
|
|
echo "This script will update apache hudi(incubating) master branch with next release version and cut release branch for current development version."
|
|
echo "There are two params required:"
|
|
echo "--release=\${CURRENT_RELEASE_VERSION}"
|
|
echo "--next_release=\${NEXT_RELEASE_VERSION}"
|
|
exit
|
|
else
|
|
for param in "$@"
|
|
do
|
|
if [[ $param =~ --release\=([0-9]\.[0-9]*\.[0-9]) ]]; then
|
|
RELEASE=${BASH_REMATCH[1]}
|
|
fi
|
|
if [[ $param =~ --next_release\=([0-9]\.[0-9]*\.[0-9]) ]]; then
|
|
NEXT_VERSION_IN_BASE_BRANCH=${BASH_REMATCH[1]}
|
|
fi
|
|
done
|
|
fi
|
|
if [[ -z "$RELEASE" || -z "$NEXT_VERSION_IN_BASE_BRANCH" ]]; then
|
|
echo "This sricpt needs to be ran with params, please run with -h to get more instructions."
|
|
exit
|
|
fi
|
|
|
|
|
|
MASTER_BRANCH=master
|
|
RELEASE_BRANCH=release-${RELEASE}
|
|
GITHUB_REPO_URL=git@github.com:apache/incubator-hudi.git
|
|
HUDI_ROOT_DIR=incubator-hudi
|
|
LOCAL_CLONE_DIR=hudi_release_${RELEASE}
|
|
|
|
echo "=====================Environment Variables====================="
|
|
echo "version: ${RELEASE}"
|
|
echo "next_release: ${NEXT_VERSION_IN_BASE_BRANCH}"
|
|
echo "working master branch: ${MASTER_BRANCH}"
|
|
echo "working release branch: ${RELEASE_BRANCH}"
|
|
echo "local repo dir: ~/${LOCAL_CLONE_DIR}/${HUDI_ROOT_DIR}"
|
|
echo "==============================================================="
|
|
|
|
cd ~
|
|
if [[ -d ${LOCAL_CLONE_DIR} ]]; then
|
|
rm -rf ${LOCAL_CLONE_DIR}
|
|
fi
|
|
mkdir ${LOCAL_CLONE_DIR}
|
|
cd ${LOCAL_CLONE_DIR}
|
|
git clone ${GITHUB_REPO_URL}
|
|
cd ${HUDI_ROOT_DIR}
|
|
|
|
# Update Notice.txt
|
|
mvn notice:generate
|
|
|
|
echo "==============Update NOTICE.txt in master branch as following================"
|
|
git diff
|
|
echo "==============================================================="
|
|
|
|
echo "Please make sure all changes above are expected. Do you confirm to commit?: [y|N]"
|
|
read confirmation
|
|
if [[ $confirmation != "y" ]]; then
|
|
echo "Exit without committing any changes on master branch."
|
|
clean_up
|
|
exit
|
|
fi
|
|
|
|
git commit -am "Updating NOTICE.txt in master" --allow-empty
|
|
|
|
# Pushing NOTICE.txt changes to master
|
|
if git push origin ${MASTER_BRANCH}; then
|
|
break
|
|
else
|
|
clean_up
|
|
exit
|
|
fi
|
|
|
|
# Now, create local release branch
|
|
git branch ${RELEASE_BRANCH}
|
|
|
|
git checkout ${MASTER_BRANCH}
|
|
|
|
echo "====================Current working branch====================="
|
|
echo ${MASTER_BRANCH}
|
|
echo "==============================================================="
|
|
|
|
# Update master branch
|
|
mvn versions:set -DnewVersion=${NEXT_VERSION_IN_BASE_BRANCH}-SNAPSHOT
|
|
|
|
echo "==============Update master branch as following================"
|
|
git diff
|
|
echo "==============================================================="
|
|
|
|
echo "Please make sure all changes above are expected. Do you confirm to commit?: [y|N]"
|
|
read confirmation
|
|
if [[ $confirmation != "y" ]]; then
|
|
echo "Exit without committing any changes on master branch."
|
|
clean_up
|
|
exit
|
|
fi
|
|
|
|
git commit -am "Moving to ${NEXT_VERSION_IN_BASE_BRANCH}-SNAPSHOT on master branch."
|
|
|
|
if git push origin ${MASTER_BRANCH}; then
|
|
break
|
|
else
|
|
clean_up
|
|
exit
|
|
fi
|
|
|
|
# Checkout and update release branch - Add incubating and remove snapshot
|
|
git checkout ${RELEASE_BRANCH}
|
|
mvn versions:set -DnewVersion=${RELEASE}-incubating
|
|
|
|
echo "==================Current working branch======================="
|
|
echo ${RELEASE_BRANCH}
|
|
echo "==============================================================="
|
|
|
|
echo "===============Update release branch as following=============="
|
|
git diff
|
|
echo "==============================================================="
|
|
|
|
echo "Please make sure all changes above are expected. Do you confirm to commit?: [y|N]"
|
|
read confirmation
|
|
if [[ $confirmation != "y" ]]; then
|
|
echo "Exit without committing any changes on release branch."
|
|
clean_up
|
|
exit
|
|
fi
|
|
|
|
git commit -am "Create release branch for version ${RELEASE}."
|
|
git push --set-upstream origin ${RELEASE_BRANCH}
|
|
|
|
clean_up
|