Commit Graph
294 Commits
Author SHA1 Message Date
mayeut ef18186c45 fix: error out if multiple wheels with the same name are produced
We shouldn't silently overwrite wheels that are produced in the same run that have the same filename, as this implies a misconfiguration.
2022-06-26 11:32:33 +02:00
mayeut 0696c94710 feature: add support for py3-none-{platform} wheels
This extends the mechanism introduced in #1091 for `abi3` wheels.
Most of the mentions to `abi3` have been removed and replaced by a more generic `compatible_wheel`.
This allows to build a wheel `foo-0.1-py3-none-win_amd64.whl` only once and still test with every configured python.
2022-06-26 11:31:59 +02:00
David Lechner 9f4303ba2c use FileNotFoundError instead of OSError 2022-06-16 10:40:48 -05:00
David Lechner e6513a9b28 use Path.unlink() instead of os.unlink() 2022-06-16 10:39:05 -05:00
David Lechner 526c5543e5 fix overwriting wheel on macos
When I run on macOS, I get the following error:

```
Traceback (most recent call last):
  File "/Users/david/.local/pipx/.cache/fd54e06d50697e7/bin/cibuildwheel", line 8, in <module>
    sys.exit(main())
  File "/Users/david/.local/pipx/.cache/fd54e06d50697e7/lib/python3.10/site-packages/cibuildwheel/__main__.py", line 128, in main
    build_in_directory(args)
  File "/Users/david/.local/pipx/.cache/fd54e06d50697e7/lib/python3.10/site-packages/cibuildwheel/__main__.py", line 252, in build_in_directory
    cibuildwheel.macos.build(options, tmp_path)
  File "/Users/david/.local/pipx/.cache/fd54e06d50697e7/lib/python3.10/site-packages/cibuildwheel/macos.py", line 538, in build
    shutil.move(str(repaired_wheel), build_options.output_dir)
  File "/opt/homebrew/Cellar/python@3.10/3.10.4/Frameworks/Python.framework/Versions/3.10/lib/python3.10/shutil.py", line 811, in move
    raise Error("Destination path '%s' already exists" % real_dst)
shutil.Error: Destination path '/Users/david/Documents/GitHub/python-mpy-cross/wheelhouse/mpy_cross_v5-1.0.0-py3-none-macosx_11_0_arm64.whl' already exists
```

The comment in the code says that it should overwrite the file, so this removes the file if it exists first before trying to move the file.
2022-06-09 12:21:42 -05:00
Joe Rickerby 46702f581d Space out the log statements a little 2022-04-29 13:32:03 +01:00
mayeut e3ff027131 feature: add support for ABI3 wheels 2022-04-26 22:38:17 +02:00
Paul McCarthy f08f08c04d style: spurious comma 2022-04-21 10:34:11 +01:00
Paul McCarthy baf3ead650 style: exit early to reduce indentation 2022-04-19 16:00:12 +01:00
pre-commit-ci[bot] d061fc7967 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2022-04-19 15:52:06 +01:00
Paul McCarthy be9a635f9b fix: don't assume that any configurations are active 2022-04-19 15:52:06 +01:00
Henry SchreinerandJoe Rickerby d6dc3b7cd9 chore: add PyLint and fix most issues (#999)
* chore: add PyLint and fix most issues

* fix: minor fixes after first push

* chore: remove reference to old toml lib

* chore: minor options cleanup

* ci: only fail with many pylint issues, annotate in GHA

* refactor: address review

* ci: force nox to report in CI

* refactor: use map instead of if chain

* refactor: simpler shell_with_arch

* refactor: even simpler shell_with_arch

* Restore if...elif...else blocks where guard-style is not intended

Co-authored-by: Joe Rickerby <joerick@mac.com>
2022-02-27 14:16:37 -05:00
Matthieu DarboisandJoe Rickerby ab13f7a9de feature: allow local runs on windows/macOS (#974)
* feature: allow local runs on windows/macOS

Cache python installations to a user cache folder using platformdirs.
The build environment is now a virtual environment to allow proper isolation.
Allows to run tests in parallel.

Co-authored-by: Joe Rickerby <joerick@mac.com>
2022-01-08 11:30:48 +01:00
Matthieu Darbois 9e18cb8656 refactor: Use utils.call & utils.shell in macos.py & windows.py (#978) 2022-01-05 02:59:24 +01:00
Matthieu Darbois 73b7de0a75 fix: remove warnings on macOS when installing certificates (#979) 2022-01-04 22:46:45 +01:00
Matthieu Darbois 21df1e576d fix: minor fixes to get pycharm not to complain too much (#972) 2021-12-27 09:26:33 +01:00
Henry Schreiner 53b8f8149c fix: environment variable affect initial setup macOS/win (#956) 2021-12-13 09:39:41 -05:00
Joe Rickerby 02b34705ae Merge remote-tracking branch 'origin/main' into henryiii/feat/override 2021-10-17 21:58:59 +01:00
Henry Schreiner 7dabbee59c fix: remove PyPy macOS 11 filtering 2021-10-16 21:52:43 -04:00
Joe Rickerby 08a694485d refactor: Override options redesign
* Add test for defaults, fix platform detection

* Improve correctness of reader.identifier with block

* Fix options test to be multiplatform

* 'Refactored by Sourcery'

docs: write a section on overrides

tests: test docker launches

feat: add identifiers to launches

test: add test for correct build step generation

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2021-10-16 21:39:55 -04:00
Henry Schreiner cd07697fe5 feat: adding overrides 2021-10-16 21:34:02 -04:00
Henry SchreinerandJoe Rickerby 4307b52ff2 fix: support space in constraints file path (#738)
* tests: add space in constraints file

* fix: use uri strings in PIP_CONSTRAINTS

* WIP: try using quotes instead of uri

* Update cibuildwheel/windows.py

* Revert "Update cibuildwheel/windows.py"

This reverts commit 0951425524166677fdfd8df7e6bbbc9782ea2fb0.

* Revert "WIP: try using quotes instead of uri"

This reverts commit 5790eda4c6f231d5958f4cbd720683f787eea042.

* fix: work around pip bug with URI handling

* WIP: try biger hack

* fix: try using temporary file

* refactor: use common prefix for install dir on Windows

* Use more flexible type PathOrStr to simplify

* Rename variables to make slightly clearer

Co-authored-by: Joe Rickerby <joerick@mac.com>
2021-07-09 09:16:20 -04:00
Henry SchreinerandJoe Rickerby 515e9be2c4 feat: support pypa build (#521)
* feat: support pypa build

fix: update `cibuildwheel.linux.troubleshoot` to know about build

Workaround issue with PyPy venv module by installing build[virtualenv]

fix: test_dependency_constraints_file when using build

fix: test/test_pep518.py

fix: use `strtobool` to parse `CIBW_PYPA_BUILD`

fix: update `cibuildwheel.linux.troubleshoot` to know about `python -m pip wheel`

test: use `build_mode` in `test/test_dependency_versions.py` tests

* refactor: use build-backend instead

* Apply suggestions from code review

Co-authored-by: Joe Rickerby <joerick@mac.com>

* refactor: use literal types for build_frontend

* refactor(tests): build_mode -> build_frontend_env

* Update test/test_before_build.py

Co-authored-by: Joe Rickerby <joerick@mac.com>
2021-06-23 10:47:18 -04:00
Henry Schreiner 0dc34816d0 feat: support building universal2/arm64 from x64_86 Python 3.8 (#704) 2021-05-31 09:14:49 +02:00
5b22fc636b feat: add CPython 3.10 pre-release support (#675)
* Add CPython 3.10 support

* Fix logger displaying CPython 3.1 instead of 3.10

* Fix tests failing with CPython 3.10

* Use pytest instead of nose

* feat: --pre flag

Apply suggestions from code review

Co-authored-by: Matthieu Darbois <mayeut@users.noreply.github.com>

* fix: update Python update script to process beta versions

* refactor: prerelease-pythons

* Use `strtobool` to parse `CIBW_PRERELEASE_PYTHONS` env var

* Update python version filtering for universal2 & arm64

* Filter out CPython 3.10 and above for `test_manylinuxXXXX_only[manylinux1]` test

* Use CIBW_BUILD filtering rather than CIBW_SKIP for test_docker_images

* Use skip_patterns to filter out pre-releases

* Use `prerelease_pythons` instead of `pre`

* Reword `CIBW_PRERELEASE_PYTHONS` doc per review.

* Use `CIBW_PRERELEASE_PYTHONS: True` for usage example.

* Update `cibuildwheel --help` doc

* docs: add note on spec.filter

* Clean up the BuildSelector __repr__ by refactoring

* fix: remove platform variants for CIBW_PRERELEASE_PYTHONS

* docs: mention the flag

Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: Joe Rickerby <joerick@mac.com>
2021-05-28 18:26:55 -04:00
Henry SchreinerandJoe Rickerby 3be2d0c356 chore: rename joerick/cibuildwheel -> pypa/cibuildwheel (#682)
* chore: rename joerick/cibuildwheel -> pypa/cibuildwheel

* Update Appveyor status badge markup

Note that it still has joerick/cibuildwheel - confusingly it's still within my appveyor account, but this is the new project that points to the pypa github repo

* Update Appveyor badge markup again

I went through a few passes to enable that project, here's the latest.

* Update Azure badge, also

* Update Travis badge to reference the .com

Co-authored-by: Joe Rickerby <joerick@mac.com>
2021-05-24 10:21:03 -04:00
Joe Rickerby a1675673ce Merge pull request #665 from joerick/ensurepip-2
Try using ensurepip instead of get-pip
2021-05-18 13:01:50 +01:00
Joe Rickerby fd94e77db4 Only call ensurepip if bin/pip wasn't found 2021-05-16 10:58:12 +01:00
Joe Rickerby 9a07f00545 Apply @mayeut's clean up suggestion 2021-05-16 10:13:05 +01:00
Joe Rickerby 39302c7c43 Try adding the existence check before reinstalling 2021-05-15 17:04:39 +01:00
pre-commit-ci[bot] 7cde8fb66e [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2021-05-13 18:40:33 +00:00
mayeut 36ef6de2d6 Force reinstall pip 2021-05-13 20:40:01 +02:00
mayeut ee5dfc6f90 Force install pip 2021-05-13 20:32:38 +02:00
Henry SchreinerandYannick Jadoul 63bb5e61f0 chore: update PyPy to 7.3.4 except on Windows (#666)
Co-authored-by: Yannick Jadoul <yannick.jadoul@belgacom.net>

Co-authored-by: Yannick Jadoul <yannick.jadoul@belgacom.net>
2021-05-11 21:23:53 -04:00
Joe Rickerby a116c2e486 Fix paths 2021-05-09 10:43:21 +01:00
Joe Rickerby b5f8002876 Use the same mechanism on mac for ensuring default-pip 2021-05-09 10:42:21 +01:00
Joe Rickerby f5046a600e Tidy up 2021-05-09 10:20:51 +01:00
Joe Rickerby 62672c8101 Remove get-pip and use ensurepip instead 2021-05-08 17:55:10 +01:00
mayeut 3e22cd9a41 Drop Python 2.7 2021-05-07 11:54:27 -04:00
mayeut bf31d18fbb Drop Python 3.5 2021-05-07 11:54:27 -04:00
Henry Schreiner bda76b21cb style: activate string normalization 2021-05-03 13:12:36 -04:00
mayeut d1900f6a05 Fix misaligned triple-quote blocks 2021-05-03 13:12:36 -04:00
Henry Schreiner 178aaea6c7 style: apply black via pre-commit run -a 2021-05-03 13:12:36 -04:00
Henry SchreinerandJoe Rickerby dff3aca4b6 style: second set of updates (#651)
* style: second set of updates

* style: more updates from joerick

Co-authored-by: Joe Rickerby <joerick@mac.com>

Co-authored-by: Joe Rickerby <joerick@mac.com>
2021-04-29 20:21:42 -04:00
5cbe3e2254 style: apply some cleanups from Sourcery.ai (#626)
* style: apply some fixes from Sorcery

* Apply suggestions from code review

Co-authored-by: Yannick Jadoul <yannick.jadoul@belgacom.net>
Co-authored-by: Joe Rickerby <joerick@mac.com>

Co-authored-by: Yannick Jadoul <yannick.jadoul@belgacom.net>
Co-authored-by: Joe Rickerby <joerick@mac.com>
2021-03-24 23:23:27 +01:00
Henry SchreinerandJoe Rickerby d2772c2293 refactor: subprocess.run (#592)
* change check_call to run

* refactor: change check_output to run

* Apply suggestions from code review

Co-authored-by: Joe Rickerby <joerick@mac.com>

Co-authored-by: Joe Rickerby <joerick@mac.com>
2021-02-14 12:56:33 -05:00
Henry Schreiner bb14c67835 fix: set MACOSX_DEPLOYMENT_TARGET for BEFORE_ALL (#590) 2021-02-12 10:41:06 -05:00
Joe Rickerby 2def20d75e Remove unused function 2021-01-30 18:12:09 +00:00
Joe Rickerby a79f0ef95e Remove wheel rename hack 2021-01-30 17:22:26 +00:00
Joe Rickerby 74170bab4a Get SDK version dynamically 2021-01-30 17:15:44 +00:00