You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by ke...@apache.org on 2014/05/15 04:55:35 UTC
git commit: AURORA-227: Aurora build should check for the Python
version
Repository: incubator-aurora
Updated Branches:
refs/heads/master 3361dbedf -> fb11cd381
AURORA-227: Aurora build should check for the Python version
Testing Done:
Running ./gradlew checkPythonVersion with Python != 2.6 or 2.7 results in:
:checkPythonVersion FAILED
FAILURE: Build failed with an exception.
* Where:
Build file '/home/daniel/Projects/incubator-aurora/build.gradle' line: 257
* What went wrong:
Execution failed for task ':checkPythonVersion'.
> Build requires Python 2.6 or Python 2.7
Bugs closed: AURORA-227
Reviewed at https://reviews.apache.org/r/18537/
Project: http://git-wip-us.apache.org/repos/asf/incubator-aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-aurora/commit/fb11cd38
Tree: http://git-wip-us.apache.org/repos/asf/incubator-aurora/tree/fb11cd38
Diff: http://git-wip-us.apache.org/repos/asf/incubator-aurora/diff/fb11cd38
Branch: refs/heads/master
Commit: fb11cd381686b16c6d9e45a634d542ee288423e5
Parents: 3361dbe
Author: Dan Norris <pr...@gmail.com>
Authored: Wed May 14 19:53:56 2014 -0700
Committer: Kevin Sweeney <ke...@apache.org>
Committed: Wed May 14 19:53:56 2014 -0700
----------------------------------------------------------------------
build-support/pex | 10 ++++++++++
build.gradle | 35 +++++++++++++++++++++++++++++++++--
2 files changed, 43 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/fb11cd38/build-support/pex
----------------------------------------------------------------------
diff --git a/build-support/pex b/build-support/pex
index 4cecded..e940e22 100755
--- a/build-support/pex
+++ b/build-support/pex
@@ -18,6 +18,16 @@
set -e
TWITTER_COMMON_PYTHON_VERSION=0.5.6
+
+if which python2.7 >/dev/null; then
+ PY=`which python2.7`
+elif which python2.6 >/dev/null; then
+ PY=`which python2.6`
+else
+ echo 'No python interpreter found on the path. Python will not work!' 1>&2
+ exit 1
+fi
+
HERE=$(cd `dirname "${BASH_SOURCE[0]}"` && pwd)
if ! [ -f "$HERE/pex.venv/BOOTSTRAPPED" ] || \
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/fb11cd38/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 6f43fea..09fe3bf 100644
--- a/build.gradle
+++ b/build.gradle
@@ -245,6 +245,37 @@ tasks.withType(FindBugs) {
excludeFilter = rootProject.file('config/findbugs/excludeFilter.xml')
}
+task checkPython() {
+ def py_versions = ['python2.7', 'python2.6', 'python']
+
+ project.ext.set('py', '')
+
+ py_versions.each { python_exe ->
+ if (project.py.isEmpty()) {
+ // Look for the first version of python listed in py_versions greater than 2.6.
+ // Execute will throw an exception if that python command does not exist,
+ // and set project.py to be empty
+ try {
+ def check = "import sys; sys.stdout.write(str(sys.version_info > (2,6) and sys.version_info < (3,)))"
+ def cmd = [python_exe, "-c", check].execute()
+ def output = cmd.in.text.trim()
+
+ if(output.toLowerCase() == 'true') {
+ project.py = python_exe
+ }
+ } catch (Exception e) {
+ project.py = ''
+ }
+ }
+ }
+
+ doLast {
+ if (project.py.isEmpty()) {
+ throw new GradleException('Build requires Python 2.6 or Python 2.7')
+ }
+ }
+}
+
/**
* Check if Apache Thrift is all ready installed and is the same version as we
* depend on, otherwise compile the version in build-support. project.thrift will
@@ -279,7 +310,7 @@ task bootstrapThrift {
}
}
-task generateSources(dependsOn: 'bootstrapThrift') {
+task generateSources(dependsOn: ['bootstrapThrift', 'checkPython']) {
ext.inputFiles = fileTree(dir: 'src/main/thrift').matching { include '**/*.thrift' }
ext.outputDir = file(generatedDir)
inputs.file inputFiles
@@ -302,7 +333,7 @@ task generateSources(dependsOn: 'bootstrapThrift') {
iStructs.each {
def structName = it
exec {
- executable = 'python'
+ executable = project.py
args = ['src/main/python/apache/aurora/tools/java/thrift_wrapper_codegen.py',
'src/main/thrift/org/apache/aurora/gen/api.thrift',
structName,