| #!/usr/bin/env 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 -o pipefail |
| set -e |
| |
| # Go to the Spark project root directory |
| FWDIR="$(cd "`dirname "$0"`"/..; pwd)" |
| cd "$FWDIR" |
| |
| echo -e "q\n" | build/sbt oldDeps/update |
| rm -f .generated-mima* |
| |
| generate_mima_ignore() { |
| SPARK_JAVA_OPTS="-XX:MaxPermSize=1g -Xmx2g" \ |
| ./bin/spark-class org.apache.spark.tools.GenerateMIMAIgnore |
| } |
| |
| # Generate Mima Ignore is called twice, first with latest built jars |
| # on the classpath and then again with previous version jars on the classpath. |
| # Because of a bug in GenerateMIMAIgnore that when old jars are ahead on classpath |
| # it did not process the new classes (which are in assembly jar). |
| generate_mima_ignore |
| |
| export SPARK_CLASSPATH="$(build/sbt "export oldDeps/fullClasspath" | tail -n1)" |
| echo "SPARK_CLASSPATH=$SPARK_CLASSPATH" |
| |
| generate_mima_ignore |
| |
| echo -e "q\n" | build/sbt mima-report-binary-issues | grep -v -e "info.*Resolving" |
| ret_val=$? |
| |
| if [ $ret_val != 0 ]; then |
| echo "NOTE: Exceptions to binary compatibility can be added in project/MimaExcludes.scala" |
| fi |
| |
| rm -f .generated-mima* |
| exit $ret_val |