From 3a8528f71374d42733f32c0ac432e68070df6842 Mon Sep 17 00:00:00 2001 From: Malcolm Smith Date: Tue, 20 Dec 2022 16:21:02 +0000 Subject: [PATCH] Enable PEP 517 (closes #715) --- .../com/chaquo/python/PythonPlugin.groovy | 40 ++++++---------- .../python/pip/_internal/cli/base_command.py | 1 - .../python/pip/_internal/cli/cmdoptions.py | 8 ---- .../main/python/pip/_internal/pyproject.py | 5 +- .../python/pip/_vendor/packaging/markers.py | 47 +++++++++++++------ .../ChaquopyPlugin/upgrade_3_0_0/build.gradle | 18 ------- .../upgrade_3_0_0/gradle.properties | 12 ----- .../gradle/wrapper/gradle-wrapper.properties | 6 --- .../upgrade_3_0_0/settings.gradle | 5 -- .../upgrade_4_0_0/app/build.gradle | 19 -------- .../ChaquopyPlugin/upgrade_4_0_0/build.gradle | 18 ------- .../upgrade_4_0_0/gradle.properties | 12 ----- .../gradle/wrapper/gradle-wrapper.properties | 6 --- .../upgrade_4_0_0/settings.gradle | 5 -- .../upgrade_current/app/build.gradle | 16 ------- .../{sdist_pep517 => pep517}/app/build.gradle | 0 .../app/sdist_pep517/pyproject.toml | 2 +- .../app/sdist_pep517/sdist_pep517.py | 0 .../app/sdist_pep517/setup.py | 3 +- .../pep517_default_backend}/app/build.gradle | 6 ++- .../app/sdist_pep517/pyproject.toml | 2 + .../app/sdist_pep517/sdist_pep517.py | 0 .../app/sdist_pep517/setup.py | 9 ++++ .../test/integration/test_gradle_plugin.py | 30 ++++-------- 24 files changed, 75 insertions(+), 195 deletions(-) delete mode 100644 product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/build.gradle delete mode 100644 product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/gradle.properties delete mode 100644 product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/gradle/wrapper/gradle-wrapper.properties delete mode 100644 product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/settings.gradle delete mode 100644 product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/app/build.gradle delete mode 100644 product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/build.gradle delete mode 100644 product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/gradle.properties delete mode 100644 product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/gradle/wrapper/gradle-wrapper.properties delete mode 100644 product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/settings.gradle delete mode 100644 product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_current/app/build.gradle rename product/gradle-plugin/src/test/integration/data/PythonReqs/{sdist_pep517 => pep517}/app/build.gradle (100%) rename product/gradle-plugin/src/test/integration/data/PythonReqs/{sdist_pep517 => pep517}/app/sdist_pep517/pyproject.toml (56%) rename product/gradle-plugin/src/test/integration/data/PythonReqs/{sdist_pep517 => pep517}/app/sdist_pep517/sdist_pep517.py (100%) rename product/gradle-plugin/src/test/integration/data/PythonReqs/{sdist_pep517 => pep517}/app/sdist_pep517/setup.py (64%) rename product/gradle-plugin/src/test/integration/data/{ChaquopyPlugin/upgrade_3_0_0 => PythonReqs/pep517_default_backend}/app/build.gradle (76%) create mode 100644 product/gradle-plugin/src/test/integration/data/PythonReqs/pep517_default_backend/app/sdist_pep517/pyproject.toml create mode 100644 product/gradle-plugin/src/test/integration/data/PythonReqs/pep517_default_backend/app/sdist_pep517/sdist_pep517.py create mode 100644 product/gradle-plugin/src/test/integration/data/PythonReqs/pep517_default_backend/app/sdist_pep517/setup.py diff --git a/product/gradle-plugin/src/main/groovy/com/chaquo/python/PythonPlugin.groovy b/product/gradle-plugin/src/main/groovy/com/chaquo/python/PythonPlugin.groovy index e2ab2d246cb..8cf63ba2a00 100644 --- a/product/gradle-plugin/src/main/groovy/com/chaquo/python/PythonPlugin.groovy +++ b/product/gradle-plugin/src/main/groovy/com/chaquo/python/PythonPlugin.groovy @@ -264,32 +264,23 @@ class PythonPlugin implements Plugin { } Task createBuildPackagesTask() { - // pip by default finds the cacert file using a path relative to __file__, which won't work - // when __file__ is something like path/to/a.zip/path/to/module.py. It's easier to run - // directly from the ZIP and extract the cacert file, than it is to extract the entire ZIP - // and then deal with auto-generated pyc files complicating the up-to-date checks. return project.task("extractPythonBuildPackages") { - // With Python 2.7 on Windows, zipimport has a maximum path length of about 256 - // characters, including the path of the ZIP file itself. The longest path within - // the ZIP is currently 66 characters, which means the maximum ZIP file path length - // is about 190. The integration tests with the longest names get quite close to that, - // so make the filename as short as possible. - def zipName = "bp.zip" - ext.buildPackagesZip = "$genDir/$zipName" - def cacertRelPath = "pip/_vendor/certifi/cacert.pem" - ext.cacertPem = "$genDir/$cacertRelPath" - outputs.files(buildPackagesZip, cacertPem) + // To avoid the the Windows 260-character limit, make the path as short as + // possible. + ext.pythonPath = "$genDir/bp" + outputs.files(project.fileTree(pythonPath) { + exclude "**/__pycache__" + }) doLast { - extractResource("gradle/build-packages.zip", genDir, zipName) - - // Remove existing directory, otherwise failure to extract will go unnoticed if a - // previous file still exists. - project.delete("$genDir/${cacertRelPath.split("/")[0]}") + project.delete(pythonPath) + project.mkdir(pythonPath) + def zipPath = extractResource("gradle/build-packages.zip", genDir) project.copy { - from project.zipTree(buildPackagesZip) - include cacertRelPath - into genDir + from project.zipTree(zipPath) + into pythonPath } + project.delete(zipPath) + project.delete("$genDir/bp.zip") // From Chaquopy 13.0 and older. } } } @@ -337,10 +328,7 @@ class PythonPlugin implements Plugin { args("--android-abis", *abis) args reqsArgs args "--" - args "--chaquopy", PLUGIN_VERSION - args "--no-build-isolation", "--no-use-pep517" // TODO #5711 args "--disable-pip-version-check" - args "--cert", buildPackagesTask.cacertPem if (!("--index-url" in python.pip.options || "-i" in python.pip.options)) { // If the user passes --index-url, disable our repository as well @@ -510,7 +498,7 @@ class PythonPlugin implements Plugin { ExecResult execResult = null try { execResult = project.exec { - environment "PYTHONPATH", buildPackagesTask.buildPackagesZip + environment "PYTHONPATH", buildPackagesTask.pythonPath commandLine python.buildPython args "-S" // Avoid interference from site-packages. This is not inherited by // subprocesses, so it's used again in pip_install.py. diff --git a/product/gradle-plugin/src/main/python/pip/_internal/cli/base_command.py b/product/gradle-plugin/src/main/python/pip/_internal/cli/base_command.py index 550d4f92602..90830be4a56 100644 --- a/product/gradle-plugin/src/main/python/pip/_internal/cli/base_command.py +++ b/product/gradle-plugin/src/main/python/pip/_internal/cli/base_command.py @@ -142,7 +142,6 @@ def parse_args(self, args): def main(self, args): # type: (List[str]) -> int options, args = self.parse_args(args) - assert options.chaquopy, "Chaquopy pip called without --chaquopy" # Set verbosity so that it can be used elsewhere. self.verbosity = options.verbose - options.quiet diff --git a/product/gradle-plugin/src/main/python/pip/_internal/cli/cmdoptions.py b/product/gradle-plugin/src/main/python/pip/_internal/cli/cmdoptions.py index ccceb487d11..244c9f993b2 100644 --- a/product/gradle-plugin/src/main/python/pip/_internal/cli/cmdoptions.py +++ b/product/gradle-plugin/src/main/python/pip/_internal/cli/cmdoptions.py @@ -134,13 +134,6 @@ def check_dist_restriction(options, check_target=False): # options # ########### -# Adding this option ensures that if we run the system copy of pip by mistake, we fail -# immediately and with a distinctive error message. -chaquopy = partial( - Option, - '--chaquopy', - help="Chaquopy version number") - help_ = partial( Option, '-h', '--help', @@ -912,7 +905,6 @@ def check_list_path_option(options): general_group = { 'name': 'General Options', 'options': [ - chaquopy, help_, isolated_mode, require_virtualenv, diff --git a/product/gradle-plugin/src/main/python/pip/_internal/pyproject.py b/product/gradle-plugin/src/main/python/pip/_internal/pyproject.py index c0a2267128e..43efbed42be 100644 --- a/product/gradle-plugin/src/main/python/pip/_internal/pyproject.py +++ b/product/gradle-plugin/src/main/python/pip/_internal/pyproject.py @@ -81,10 +81,7 @@ def load_pyproject_toml( "project does not have a setup.py" ) use_pep517 = True - - # Chaquopy: added False so we always fall back on setup.py if available, as previous pip - # versions did. - elif False and build_system and "build-backend" in build_system: + elif build_system and "build-backend" in build_system: if use_pep517 is not None and not use_pep517: raise InstallationError( "Disabling PEP 517 processing is invalid: " diff --git a/product/gradle-plugin/src/main/python/pip/_vendor/packaging/markers.py b/product/gradle-plugin/src/main/python/pip/_vendor/packaging/markers.py index cc57b9c4761..23fc26c4bf8 100644 --- a/product/gradle-plugin/src/main/python/pip/_vendor/packaging/markers.py +++ b/product/gradle-plugin/src/main/python/pip/_vendor/packaging/markers.py @@ -240,7 +240,8 @@ def format_full_version(info): version += kind[0] + str(info.serial) return version -# Chaquopy: this variable is set in cli/cmdoptions.py. +# Chaquopy: when installing for the target platform, this variable is set in +# cli/cmdoptions.py. python_version_info = None def default_environment(): @@ -251,20 +252,36 @@ def default_environment(): iver = "0" implementation_name = "" - # Chaquopy: changed to use markers of the target platform rather than the build platform. - return { - "implementation_name": "cpython", - "implementation_version": ".".join(str(x) for x in python_version_info), - "os_name": "posix", - "platform_machine": "", # Not needed yet. - "platform_release": "", - "platform_system": "Linux", - "platform_version": "", - "python_full_version": ".".join(str(x) for x in python_version_info), - "platform_python_implementation": "CPython", - "python_version": ".".join(str(x) for x in python_version_info[:2]), - "sys_platform": "linux", - } + if python_version_info: + # Chaquopy: use markers of the target platform. + return { + "implementation_name": "cpython", + "implementation_version": ".".join(str(x) for x in python_version_info), + "os_name": "posix", + "platform_machine": "", # Not needed yet. + "platform_release": "", + "platform_system": "Linux", + "platform_version": "", + "python_full_version": ".".join(str(x) for x in python_version_info), + "platform_python_implementation": "CPython", + "python_version": ".".join(str(x) for x in python_version_info[:2]), + "sys_platform": "linux", + } + else: + # Chaquopy: use markers of the build platform. + return { + "implementation_name": implementation_name, + "implementation_version": iver, + "os_name": os.name, + "platform_machine": platform.machine(), + "platform_release": platform.release(), + "platform_system": platform.system(), + "platform_version": platform.version(), + "python_full_version": platform.python_version(), + "platform_python_implementation": platform.python_implementation(), + "python_version": platform.python_version()[:3], + "sys_platform": sys.platform, + } class Marker(object): diff --git a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/build.gradle b/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/build.gradle deleted file mode 100644 index 265db897f32..00000000000 --- a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -buildscript { - repositories { - google() - jcenter() - maven { url "https://chaquo.com/maven" } - } - dependencies { - classpath 'com.android.tools.build:gradle:3.1.4' - classpath 'com.chaquo.python:gradle:3.0.0' - } -} - -allprojects { - repositories { - google() - jcenter() - } -} diff --git a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/gradle.properties b/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/gradle.properties deleted file mode 100644 index 3fed52a9e07..00000000000 --- a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/gradle.properties +++ /dev/null @@ -1,12 +0,0 @@ -# The test script uses this to set JAVA_HOME. -chaquopy.java.version=8 - -# These are the default settings generated by the new project wizard of the corresponding -# Android Studio version. Even if they're the same in all supported versions, they might change -# in the future, so don't merge duplicate copies of this file. -org.gradle.jvmargs=-Xmx1536m - -# Gradle Daemon will terminate itself after specified number of idle milliseconds. Default is -# 10800000 (3 hours), but that can overload the machine when running integration tests on many -# versions. Reduce to 30 minutes. -org.gradle.daemon.idletimeout=1800000 diff --git a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/gradle/wrapper/gradle-wrapper.properties b/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index b3df3402440..00000000000 --- a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Mon Mar 13 15:44:34 GMT 2017 -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip diff --git a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/settings.gradle b/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/settings.gradle deleted file mode 100644 index c532f9f14b7..00000000000 --- a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/settings.gradle +++ /dev/null @@ -1,5 +0,0 @@ -for (f in rootDir.listFiles()) { - if (new File(f, "build.gradle").exists()) { - include f.name - } -} diff --git a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/app/build.gradle b/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/app/build.gradle deleted file mode 100644 index 0ab97c7e6c5..00000000000 --- a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/app/build.gradle +++ /dev/null @@ -1,19 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'com.chaquo.python' - -android { - compileSdkVersion 23 - defaultConfig { - applicationId "com.chaquo.python.test" - minSdkVersion 21 - targetSdkVersion 23 - versionCode 1 - versionName "0.0.1" - python { - version "3.6.5" - } - ndk { - abiFilters "arm64-v8a" - } - } -} diff --git a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/build.gradle b/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/build.gradle deleted file mode 100644 index 01a1417b1d9..00000000000 --- a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -buildscript { - repositories { - google() - jcenter() - maven { url "https://chaquo.com/maven" } - } - dependencies { - classpath 'com.android.tools.build:gradle:3.1.4' - classpath 'com.chaquo.python:gradle:4.0.0' - } -} - -allprojects { - repositories { - google() - jcenter() - } -} diff --git a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/gradle.properties b/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/gradle.properties deleted file mode 100644 index 3fed52a9e07..00000000000 --- a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/gradle.properties +++ /dev/null @@ -1,12 +0,0 @@ -# The test script uses this to set JAVA_HOME. -chaquopy.java.version=8 - -# These are the default settings generated by the new project wizard of the corresponding -# Android Studio version. Even if they're the same in all supported versions, they might change -# in the future, so don't merge duplicate copies of this file. -org.gradle.jvmargs=-Xmx1536m - -# Gradle Daemon will terminate itself after specified number of idle milliseconds. Default is -# 10800000 (3 hours), but that can overload the machine when running integration tests on many -# versions. Reduce to 30 minutes. -org.gradle.daemon.idletimeout=1800000 diff --git a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/gradle/wrapper/gradle-wrapper.properties b/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index b3df3402440..00000000000 --- a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Mon Mar 13 15:44:34 GMT 2017 -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip diff --git a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/settings.gradle b/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/settings.gradle deleted file mode 100644 index c532f9f14b7..00000000000 --- a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_4_0_0/settings.gradle +++ /dev/null @@ -1,5 +0,0 @@ -for (f in rootDir.listFiles()) { - if (new File(f, "build.gradle").exists()) { - include f.name - } -} diff --git a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_current/app/build.gradle b/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_current/app/build.gradle deleted file mode 100644 index 8c9c5ef1c5e..00000000000 --- a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_current/app/build.gradle +++ /dev/null @@ -1,16 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'com.chaquo.python' - -android { - compileSdkVersion 23 - defaultConfig { - applicationId "com.chaquo.python.test" - minSdkVersion 21 - targetSdkVersion 23 - versionCode 1 - versionName "0.0.1" - ndk { - abiFilters "arm64-v8a" - } - } -} diff --git a/product/gradle-plugin/src/test/integration/data/PythonReqs/sdist_pep517/app/build.gradle b/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517/app/build.gradle similarity index 100% rename from product/gradle-plugin/src/test/integration/data/PythonReqs/sdist_pep517/app/build.gradle rename to product/gradle-plugin/src/test/integration/data/PythonReqs/pep517/app/build.gradle diff --git a/product/gradle-plugin/src/test/integration/data/PythonReqs/sdist_pep517/app/sdist_pep517/pyproject.toml b/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517/app/sdist_pep517/pyproject.toml similarity index 56% rename from product/gradle-plugin/src/test/integration/data/PythonReqs/sdist_pep517/app/sdist_pep517/pyproject.toml rename to product/gradle-plugin/src/test/integration/data/PythonReqs/pep517/app/sdist_pep517/pyproject.toml index 2f210119535..746c0a69ff0 100644 --- a/product/gradle-plugin/src/test/integration/data/PythonReqs/sdist_pep517/app/sdist_pep517/pyproject.toml +++ b/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517/app/sdist_pep517/pyproject.toml @@ -1,3 +1,3 @@ [build-system] -requires = ["setuptools>=40.8.0", "wheel"] +requires = ["setuptools==40.8.0", "wheel"] build-backend = "setuptools.build_meta" diff --git a/product/gradle-plugin/src/test/integration/data/PythonReqs/sdist_pep517/app/sdist_pep517/sdist_pep517.py b/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517/app/sdist_pep517/sdist_pep517.py similarity index 100% rename from product/gradle-plugin/src/test/integration/data/PythonReqs/sdist_pep517/app/sdist_pep517/sdist_pep517.py rename to product/gradle-plugin/src/test/integration/data/PythonReqs/pep517/app/sdist_pep517/sdist_pep517.py diff --git a/product/gradle-plugin/src/test/integration/data/PythonReqs/sdist_pep517/app/sdist_pep517/setup.py b/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517/app/sdist_pep517/setup.py similarity index 64% rename from product/gradle-plugin/src/test/integration/data/PythonReqs/sdist_pep517/app/sdist_pep517/setup.py rename to product/gradle-plugin/src/test/integration/data/PythonReqs/pep517/app/sdist_pep517/setup.py index 8f77f5dcb75..805e26e290b 100644 --- a/product/gradle-plugin/src/test/integration/data/PythonReqs/sdist_pep517/app/sdist_pep517/setup.py +++ b/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517/app/sdist_pep517/setup.py @@ -1,8 +1,9 @@ +import setuptools from setuptools import setup setup( name="sdist_pep517", - version="1.0", + version=setuptools.__version__, py_modules=["sdist_pep517"], ) diff --git a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/app/build.gradle b/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517_default_backend/app/build.gradle similarity index 76% rename from product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/app/build.gradle rename to product/gradle-plugin/src/test/integration/data/PythonReqs/pep517_default_backend/app/build.gradle index 0ab97c7e6c5..ad0436b8a80 100644 --- a/product/gradle-plugin/src/test/integration/data/ChaquopyPlugin/upgrade_3_0_0/app/build.gradle +++ b/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517_default_backend/app/build.gradle @@ -10,10 +10,12 @@ android { versionCode 1 versionName "0.0.1" python { - version "3.6.5" + pip { + install "./sdist_pep517" + } } ndk { - abiFilters "arm64-v8a" + abiFilters "x86" } } } diff --git a/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517_default_backend/app/sdist_pep517/pyproject.toml b/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517_default_backend/app/sdist_pep517/pyproject.toml new file mode 100644 index 00000000000..77e3cca19ea --- /dev/null +++ b/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517_default_backend/app/sdist_pep517/pyproject.toml @@ -0,0 +1,2 @@ +[build-system] +requires = ["setuptools==40.8.0", "wheel"] diff --git a/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517_default_backend/app/sdist_pep517/sdist_pep517.py b/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517_default_backend/app/sdist_pep517/sdist_pep517.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517_default_backend/app/sdist_pep517/setup.py b/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517_default_backend/app/sdist_pep517/setup.py new file mode 100644 index 00000000000..805e26e290b --- /dev/null +++ b/product/gradle-plugin/src/test/integration/data/PythonReqs/pep517_default_backend/app/sdist_pep517/setup.py @@ -0,0 +1,9 @@ +import setuptools +from setuptools import setup + + +setup( + name="sdist_pep517", + version=setuptools.__version__, + py_modules=["sdist_pep517"], +) diff --git a/product/gradle-plugin/src/test/integration/test_gradle_plugin.py b/product/gradle-plugin/src/test/integration/test_gradle_plugin.py index 6ad5a6058b0..e75effb1c1a 100644 --- a/product/gradle-plugin/src/test/integration/test_gradle_plugin.py +++ b/product/gradle-plugin/src/test/integration/test_gradle_plugin.py @@ -223,22 +223,6 @@ def test_apply(self): def test_apply_buildscript(self): self.RunGradle("base", "ChaquopyPlugin/apply_buildscript") - # Since this version, the extracted copy of build-packages.zip has been renamed to bp.zip. - # We distinguish the old version by it not supporting arm64-v8a. - def test_upgrade_3_0_0(self): - run = self.RunGradle("base", "ChaquopyPlugin/upgrade_3_0_0", succeed=False) - self.assertInLong("Chaquopy does not support the ABI 'arm64-v8a'", run.stderr) - run.apply_layers("base", "ChaquopyPlugin/upgrade_current") - run.rerun(abis=["arm64-v8a"]) - - # Since this version, there has been no change in the build-packages.zip filename. We - # distinguish the old version by it not supporting arm64-v8a. - def test_upgrade_4_0_0(self): - run = self.RunGradle("base", "ChaquopyPlugin/upgrade_4_0_0", succeed=False) - self.assertInLong("Chaquopy does not support the ABI 'arm64-v8a'", run.stderr) - run.apply_layers("base", "ChaquopyPlugin/upgrade_current") - run.rerun(abis=["arm64-v8a"]) - class AndroidPlugin(GradleTestCase): ADVICE = ("please edit the version of com.android.application, com.android.library or " @@ -904,10 +888,16 @@ def test_wheel_data(self): def test_sdist_file(self): self.RunGradle("base", "PythonReqs/sdist_file", requirements=["alpha_dep/__init__.py"]) - # We currently disable PEP 517, and patch pip to fall back on setup.py, as it did in - # previous versions. - def test_sdist_pep517(self): - self.RunGradle("base", "PythonReqs/sdist_pep517", requirements=["sdist_pep517.py"]) + # This project uses pyproject.toml to require a specific version of setuptools, then + # gives itself the same version number. + def test_pep517(self): + self.RunGradle("base", "PythonReqs/pep517", requirements=["sdist_pep517.py"], + dist_versions=[("sdist_pep517", "40.8.0")]) + + # Same as test_pep517, but pyproject.toml does not contain a `build-backend` setting. + def test_pep517_default_backend(self): + self.RunGradle("base", "PythonReqs/pep517", requirements=["sdist_pep517.py"], + dist_versions=[("sdist_pep517", "40.8.0")]) # Make sure we're not affected by a setup.cfg file containing a `prefix` line. def test_cfg_wheel(self):