From 0b82ab66746458fd70956f54481c47d975ec08cc Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Sat, 6 Jun 2020 20:05:09 +0200 Subject: [PATCH 1/4] ensure that package_dir is provided as package --- cibuildwheel/__main__.py | 2 ++ test/test_subdir_package.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cibuildwheel/__main__.py b/cibuildwheel/__main__.py index 95bc96b9..583abaa8 100644 --- a/cibuildwheel/__main__.py +++ b/cibuildwheel/__main__.py @@ -119,6 +119,8 @@ def main() -> None: test_requires = get_option_from_environment('CIBW_TEST_REQUIRES', platform=platform, default='').split() test_extras = get_option_from_environment('CIBW_TEST_EXTRAS', platform=platform, default='') package_dir = args.package_dir + if not package_dir.startswith("."): + package_dir = os.path.join(".", package_dir) before_build = get_option_from_environment('CIBW_BEFORE_BUILD', platform=platform) build_verbosity_str = get_option_from_environment('CIBW_BUILD_VERBOSITY', platform=platform, default='') build_config, skip_config = os.environ.get('CIBW_BUILD', '*'), os.environ.get('CIBW_SKIP', '') diff --git a/test/test_subdir_package.py b/test/test_subdir_package.py index 53bd9520..98b1b8cd 100644 --- a/test/test_subdir_package.py +++ b/test/test_subdir_package.py @@ -35,7 +35,7 @@ def test(capfd, tmp_path): project_dir = tmp_path / 'project' subdir_package_project.generate(project_dir) - package_dir = os.path.join(project_dir, 'src', 'spam') + package_dir = os.path.join('src', 'spam') # build the wheels actual_wheels = utils.cibuildwheel_run(project_dir, package_dir=package_dir, add_env={ 'CIBW_BEFORE_BUILD': 'python {project}/bin/before_build.py', From 90023a3a70325f5d5a7b6e8fe724ec9c94047844 Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Sat, 6 Jun 2020 20:26:50 +0200 Subject: [PATCH 2/4] fix logic for test --- cibuildwheel/__main__.py | 2 +- unit_test/main_tests/conftest.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cibuildwheel/__main__.py b/cibuildwheel/__main__.py index 583abaa8..804ec31a 100644 --- a/cibuildwheel/__main__.py +++ b/cibuildwheel/__main__.py @@ -119,7 +119,7 @@ def main() -> None: test_requires = get_option_from_environment('CIBW_TEST_REQUIRES', platform=platform, default='').split() test_extras = get_option_from_environment('CIBW_TEST_EXTRAS', platform=platform, default='') package_dir = args.package_dir - if not package_dir.startswith("."): + if not (os.path.isabs(package_dir) or package_dir.startswith(".")): package_dir = os.path.join(".", package_dir) before_build = get_option_from_environment('CIBW_BEFORE_BUILD', platform=platform) build_verbosity_str = get_option_from_environment('CIBW_BUILD_VERBOSITY', platform=platform, default='') diff --git a/unit_test/main_tests/conftest.py b/unit_test/main_tests/conftest.py index cd896915..ddef7e3d 100644 --- a/unit_test/main_tests/conftest.py +++ b/unit_test/main_tests/conftest.py @@ -18,7 +18,7 @@ class ArgsInterceptor: self.kwargs = kwargs -MOCK_PACKAGE_DIR = 'some_package_dir' +MOCK_PACKAGE_DIR = './some_package_dir' @pytest.fixture(autouse=True) From c74acd6363695d90e0ba8ded3219f6ed233fb116 Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Mon, 8 Jun 2020 08:05:25 +0200 Subject: [PATCH 3/4] change to abspath --- cibuildwheel/__main__.py | 4 +--- unit_test/main_tests/conftest.py | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/cibuildwheel/__main__.py b/cibuildwheel/__main__.py index 804ec31a..ce8555cf 100644 --- a/cibuildwheel/__main__.py +++ b/cibuildwheel/__main__.py @@ -118,9 +118,7 @@ def main() -> None: test_command = get_option_from_environment('CIBW_TEST_COMMAND', platform=platform) test_requires = get_option_from_environment('CIBW_TEST_REQUIRES', platform=platform, default='').split() test_extras = get_option_from_environment('CIBW_TEST_EXTRAS', platform=platform, default='') - package_dir = args.package_dir - if not (os.path.isabs(package_dir) or package_dir.startswith(".")): - package_dir = os.path.join(".", package_dir) + package_dir = os.path.abspath(args.package_dir) before_build = get_option_from_environment('CIBW_BEFORE_BUILD', platform=platform) build_verbosity_str = get_option_from_environment('CIBW_BUILD_VERBOSITY', platform=platform, default='') build_config, skip_config = os.environ.get('CIBW_BUILD', '*'), os.environ.get('CIBW_SKIP', '') diff --git a/unit_test/main_tests/conftest.py b/unit_test/main_tests/conftest.py index ddef7e3d..4542b9df 100644 --- a/unit_test/main_tests/conftest.py +++ b/unit_test/main_tests/conftest.py @@ -18,7 +18,7 @@ class ArgsInterceptor: self.kwargs = kwargs -MOCK_PACKAGE_DIR = './some_package_dir' +MOCK_PACKAGE_DIR = os.path.abspath('some_package_dir') @pytest.fixture(autouse=True) From 374e88382bdbd306b3347a34f3dc6291de4f535e Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Mon, 8 Jun 2020 10:19:02 +0200 Subject: [PATCH 4/4] move abspath to system specific files --- cibuildwheel/__main__.py | 2 +- cibuildwheel/macos.py | 4 +++- cibuildwheel/windows.py | 4 +++- unit_test/main_tests/conftest.py | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/cibuildwheel/__main__.py b/cibuildwheel/__main__.py index ce8555cf..95bc96b9 100644 --- a/cibuildwheel/__main__.py +++ b/cibuildwheel/__main__.py @@ -118,7 +118,7 @@ def main() -> None: test_command = get_option_from_environment('CIBW_TEST_COMMAND', platform=platform) test_requires = get_option_from_environment('CIBW_TEST_REQUIRES', platform=platform, default='').split() test_extras = get_option_from_environment('CIBW_TEST_EXTRAS', platform=platform, default='') - package_dir = os.path.abspath(args.package_dir) + package_dir = args.package_dir before_build = get_option_from_environment('CIBW_BEFORE_BUILD', platform=platform) build_verbosity_str = get_option_from_environment('CIBW_BUILD_VERBOSITY', platform=platform, default='') build_config, skip_config = os.environ.get('CIBW_BUILD', '*'), os.environ.get('CIBW_SKIP', '') diff --git a/cibuildwheel/macos.py b/cibuildwheel/macos.py index 745c1557..96e874f9 100644 --- a/cibuildwheel/macos.py +++ b/cibuildwheel/macos.py @@ -194,7 +194,9 @@ def build(options: BuildOptions) -> None: if os.path.exists(built_wheel_dir): shutil.rmtree(built_wheel_dir) os.makedirs(built_wheel_dir) - call(['pip', 'wheel', options.package_dir, '-w', built_wheel_dir, '--no-deps'] + get_build_verbosity_extra_flags(options.build_verbosity), env=env) + # os.path.abspath is need. Without it pip wheel may try to fetch package from pypi.org + # see https://github.com/joerick/cibuildwheel/pull/369 + call(['pip', 'wheel', os.path.abspath(options.package_dir), '-w', built_wheel_dir, '--no-deps'] + get_build_verbosity_extra_flags(options.build_verbosity), env=env) built_wheel = glob(os.path.join(built_wheel_dir, '*.whl'))[0] # repair the wheel diff --git a/cibuildwheel/windows.py b/cibuildwheel/windows.py index 9f33ad91..7feb2998 100644 --- a/cibuildwheel/windows.py +++ b/cibuildwheel/windows.py @@ -180,7 +180,9 @@ def build(options: BuildOptions) -> None: if os.path.exists(built_wheel_dir): shutil.rmtree(built_wheel_dir) os.makedirs(built_wheel_dir) - shell(['pip', 'wheel', options.package_dir, '-w', built_wheel_dir, '--no-deps'] + get_build_verbosity_extra_flags(options.build_verbosity), env=env) + # os.path.abspath is need. Without it pip wheel may try to fetch package from pypi.org + # see https://github.com/joerick/cibuildwheel/pull/369 + shell(['pip', 'wheel', os.path.abspath(options.package_dir), '-w', built_wheel_dir, '--no-deps'] + get_build_verbosity_extra_flags(options.build_verbosity), env=env) built_wheel = glob(os.path.join(built_wheel_dir, '*.whl'))[0] # repair the wheel diff --git a/unit_test/main_tests/conftest.py b/unit_test/main_tests/conftest.py index 4542b9df..cd896915 100644 --- a/unit_test/main_tests/conftest.py +++ b/unit_test/main_tests/conftest.py @@ -18,7 +18,7 @@ class ArgsInterceptor: self.kwargs = kwargs -MOCK_PACKAGE_DIR = os.path.abspath('some_package_dir') +MOCK_PACKAGE_DIR = 'some_package_dir' @pytest.fixture(autouse=True)