Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

Commit

Permalink
[WIP] [v1.x] Create tool for building source archives (#19972)
Browse files Browse the repository at this point in the history
  • Loading branch information
josephevans authored Mar 5, 2021
1 parent 06b5e07 commit 098af4f
Show file tree
Hide file tree
Showing 4 changed files with 131 additions and 3 deletions.
2 changes: 0 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -317,8 +317,6 @@
Apache-2.0 license + MIT License
=======================================================================================

src/serialization/cnpy.h (Copy of the AL2 License available at the top of this file, MIT License available at licenses/MIT)
src/serialization/cnpy.cc (Copy of the AL2 License available at the top of this file, MIT License available at licenses/MIT)
3rdparty/onnx-tensorrt/third_party/onnx/tools/protoc-gen-mypy.py (Copy of the referenced AL2 License available at top of current file)

=======================================================================================
Expand Down
2 changes: 1 addition & 1 deletion rat-excludes
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
# The following commands can be used to run a Apache RAT check locally -

# Docker based 1-click-method:
# ci/build.py -p ubuntu_cpu test_rat_check
# ci/build.py -p ubuntu_rat /work/runtime_functions.sh nightly_test_rat_check

# You can also manually download Apache RAT. For installation on Ubuntu:
# sudo apt-get install maven -y #>/dev/null
Expand Down
106 changes: 106 additions & 0 deletions tools/create_source_archive.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
#!/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.

set -e

MXNET_TAG=$1
CMD=$(basename $0)

if [[ -z "$MXNET_TAG" ]]; then
echo "Usage: $CMD <tag>"
echo " where <tag> is the git tag you want to build a release for."
echo ""
echo " example: $CMD 1.8.0.rc3"
exit -1
fi

TAR=tar
if [[ $(uname) == "Darwin" ]]; then
TAR=gtar
fi

# make sure gnu tar is installed
which $TAR > /dev/null
if [[ $? -ne 0 ]]; then
echo "It looks like you don't have GNU tar installed."
echo ""
echo "For OSX users, please install gnu-tar using the command 'brew install gnu-tar'"
exit -1
fi

SRCDIR=apache-mxnet-src-$MXNET_TAG-incubating
TARBALL=$SRCDIR.tar.gz

# clone the repo and checkout the tag
echo "Cloning the MXNet repository..."
git clone -b $MXNET_TAG --depth 1 --recurse-submodules \
--shallow-submodules https://github.com/apache/incubator-mxnet.git \
$SRCDIR
pushd $SRCDIR

#### IMPORTANT ####
# Remove artifacts which do not comply with the Apache Licensing Policy
echo "Removing unwanted artifacts..."
for d in $(cat tools/source-exclude-artifacts.txt | grep -v "^#"); do
if [[ -e $d ]]; then
echo "Removing $d from source archive..."
rm -rf $d
fi
done

# Remove lines from LICENSE file for artifacts removed from source tree
echo "Removing lines from LICENSE for artifacts removed from source archive..."
for d in $(cat tools/source-exclude-artifacts.txt | grep -v "^#"); do
line=$(grep "$d" LICENSE)
if [[ $? -eq 0 && ! -z "$line" ]]; then
echo "Removing line from LICENSE: $line"
cat LICENSE | grep -v "$d" > LICENSE.new
mv -f LICENSE.new LICENSE
fi
done

# Remove other artifacts we do not want contained in the source archive
rm -rf .DS_Store
rm -rf CODEOWNERS
rm -rf .github

# make sure all files referenced in LICENSE file still exist
echo "Making sure all paths referenced in LICENSE file exist..."
for f in $(cat LICENSE | grep "^\s*[0-9A-Za-z]*/[0-9A-Za-z]*" | awk '{print $1}'); do
echo "Checking if $f exists in source..."
if [[ ! -e $f ]]; then
echo -n "ERROR: Path $f is referenced in LICENSE file, but is not present "
echo "in source directory. Please update the LICENSE file."
exit -1
fi
done

# run Apache RAT license checker to verify all source files are compliant
echo "Running Apache RAT License Checker..."
ci/build.py -p ubuntu_rat /work/runtime_functions.sh nightly_test_rat_check


popd

echo "Creating tarball $TARBALL..."
$TAR --exclude-vcs -czf $TARBALL $SRCDIR

# sign the release tarball and create checksum file
gpg --armor --output $TARBALL.asc --detach-sig $TARBALL
shasum -a 512 $TARBALL > $TARBALL.sha512

24 changes: 24 additions & 0 deletions tools/source-exclude-artifacts.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# 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.

# NOTE:
# This is a list of artifacts in the repository that should
# not be included in source release archives due to licensing
# restrictions.

R-package
3rdparty/mkldnn/doc

0 comments on commit 098af4f

Please sign in to comment.