Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8124b14491 | ||
|
|
b3b15f8404 | ||
|
|
9a96910919 | ||
|
|
fce00dd77e | ||
|
|
6da52a544b | ||
|
|
c8037fb237 | ||
|
|
95a81f2216 | ||
|
|
56c9c9864d | ||
|
|
0789842ef0 | ||
|
|
5c47700d31 | ||
|
|
5ef7eeba4d | ||
|
|
bb554acb28 | ||
|
|
ea3c52631f | ||
|
|
b18281867b | ||
|
|
4a0d05df49 | ||
|
|
c1cd99ee4c | ||
|
|
e68400b403 | ||
|
|
2f1f34f693 |
@@ -15,11 +15,13 @@ What does it do?
|
|||||||
| | macOS 10.6+ | manylinux i686 | manylinux x86_64 | Windows 32bit | Windows 64bit |
|
| | macOS 10.6+ | manylinux i686 | manylinux x86_64 | Windows 32bit | Windows 64bit |
|
||||||
|---|---|---|---|---|---|
|
|---|---|---|---|---|---|
|
||||||
| Python 2.7 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
| Python 2.7 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| Python 3.3 | | | | ✅ | ✅ |
|
| Python 3.3 | | | | ⚠️ | ⚠️ |
|
||||||
| Python 3.4 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
| Python 3.4 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| Python 3.5 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
| Python 3.5 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| Python 3.6 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
| Python 3.6 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| Python 3.7 | ✅ | ✅ | ✅ | | |
|
| Python 3.7 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||||
|
|
||||||
|
<small>[⚠️=deprecated]</small>
|
||||||
|
|
||||||
- Builds manylinux, macOS and Windows (32 and 64bit) wheels using Travis CI and Appveyor
|
- Builds manylinux, macOS and Windows (32 and 64bit) wheels using Travis CI and Appveyor
|
||||||
- Bundles shared library dependencies on Linux and macOS through [auditwheel](https://github.com/pypa/auditwheel) and [delocate](https://github.com/matthew-brett/delocate)
|
- Bundles shared library dependencies on Linux and macOS through [auditwheel](https://github.com/pypa/auditwheel) and [delocate](https://github.com/matthew-brett/delocate)
|
||||||
@@ -50,7 +52,7 @@ Usage
|
|||||||
env: PIP=pip2
|
env: PIP=pip2
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- $PIP install cibuildwheel==0.9.2
|
- $PIP install cibuildwheel==0.9.4
|
||||||
- cibuildwheel --output-dir wheelhouse
|
- cibuildwheel --output-dir wheelhouse
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -60,7 +62,7 @@ Usage
|
|||||||
|
|
||||||
```
|
```
|
||||||
build_script:
|
build_script:
|
||||||
- pip install cibuildwheel==0.9.2
|
- pip install cibuildwheel==0.9.4
|
||||||
- cibuildwheel --output-dir wheelhouse
|
- cibuildwheel --output-dir wheelhouse
|
||||||
artifacts:
|
artifacts:
|
||||||
- path: "wheelhouse\\*.whl"
|
- path: "wheelhouse\\*.whl"
|
||||||
@@ -236,8 +238,13 @@ Optional.
|
|||||||
|
|
||||||
Shell command to run tests after the build. The wheel will be installed automatically and available for import from the tests. `{project}` can be used as a placeholder for the absolute path to the project's root and will be replaced by `cibuildwheel`.
|
Shell command to run tests after the build. The wheel will be installed automatically and available for import from the tests. `{project}` can be used as a placeholder for the absolute path to the project's root and will be replaced by `cibuildwheel`.
|
||||||
|
|
||||||
|
On Linux and Mac, the command runs in a shell, so you can write things like `cmd1 && cmd2`.
|
||||||
|
|
||||||
Example: `nosetests {project}/tests`
|
Example: `nosetests {project}/tests`
|
||||||
|
|
||||||
|
Platform-specific variants also available:
|
||||||
|
`CIBW_TEST_COMMAND_MACOS` | `CIBW_TEST_COMMAND_WINDOWS` | `CIBW_TEST_COMMAND_LINUX`
|
||||||
|
|
||||||
| Environment variable: `CIBW_TEST_REQUIRES`
|
| Environment variable: `CIBW_TEST_REQUIRES`
|
||||||
| ---
|
| ---
|
||||||
|
|
||||||
@@ -248,6 +255,9 @@ Space-separated list of dependencies required for running the tests.
|
|||||||
Example: `pytest`
|
Example: `pytest`
|
||||||
Example: `nose==1.3.7 moto==0.4.31`
|
Example: `nose==1.3.7 moto==0.4.31`
|
||||||
|
|
||||||
|
Platform-specific variants also available:
|
||||||
|
`CIBW_TEST_REQUIRES_MACOS` | `CIBW_TEST_REQUIRES_WINDOWS` | `CIBW_TEST_REQUIRES_LINUX`
|
||||||
|
|
||||||
--
|
--
|
||||||
|
|
||||||
#### Example YML syntax
|
#### Example YML syntax
|
||||||
@@ -318,6 +328,7 @@ Here are some repos that use cibuildwheel.
|
|||||||
- [websockets](https://github.com/aaugustin/websockets)
|
- [websockets](https://github.com/aaugustin/websockets)
|
||||||
- [Parselmouth](https://github.com/YannickJadoul/Parselmouth)
|
- [Parselmouth](https://github.com/YannickJadoul/Parselmouth)
|
||||||
- [python-admesh](https://github.com/admesh/python-admesh)
|
- [python-admesh](https://github.com/admesh/python-admesh)
|
||||||
|
- [pybase64](https://github.com/mayeut/pybase64)
|
||||||
|
|
||||||
> Add repo here! Send a PR.
|
> Add repo here! Send a PR.
|
||||||
|
|
||||||
@@ -329,6 +340,16 @@ Since `cibuildwheel` runs the wheel through delocate or auditwheel, it will auto
|
|||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
### 0.9.3
|
||||||
|
|
||||||
|
- 🛠 Update to Python 3.6.6 on macOS (#82)
|
||||||
|
- ✨ Add support for building Python 3.7 wheels on Windows (#76)
|
||||||
|
- ⚠️ Deprecated support for Python 3.3 on Windows.
|
||||||
|
|
||||||
|
### 0.9.2
|
||||||
|
|
||||||
|
- 🛠 Update Python 3.7.0rc1 to 3.7.0 on macOS (#79)
|
||||||
|
|
||||||
### 0.9.1
|
### 0.9.1
|
||||||
|
|
||||||
- 🛠 Removed the need to use `{python}` and `{pip}` in `CIBW_BEFORE_BUILD` statements, by ensuring the correct version is always on the path at `python` and `pip` instead. (#60)
|
- 🛠 Removed the need to use `{python}` and `{pip}` in `CIBW_BEFORE_BUILD` statements, by ensuring the correct version is always on the path at `python` and `pip` instead. (#60)
|
||||||
@@ -429,6 +450,7 @@ Maintainers
|
|||||||
- Joe Rickerby [@joerick](https://github.com/joerick)
|
- Joe Rickerby [@joerick](https://github.com/joerick)
|
||||||
- Tomas Garcia [@tgarc](https://github.com/tgarc)
|
- Tomas Garcia [@tgarc](https://github.com/tgarc)
|
||||||
- Yannick Jadoul [@YannickJadoul](https://github.com/YannickJadoul)
|
- Yannick Jadoul [@YannickJadoul](https://github.com/YannickJadoul)
|
||||||
|
- Matthieu Darbois [@mayeut](https://github.com/mayeut)
|
||||||
|
|
||||||
Credits
|
Credits
|
||||||
-------
|
-------
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
__version__ = '0.9.2'
|
__version__ = '0.9.4'
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import cibuildwheel.linux, cibuildwheel.windows, cibuildwheel.macos
|
|||||||
from cibuildwheel.environment import parse_environment, EnvironmentParseError
|
from cibuildwheel.environment import parse_environment, EnvironmentParseError
|
||||||
from cibuildwheel.util import BuildSkipper
|
from cibuildwheel.util import BuildSkipper
|
||||||
|
|
||||||
def get_option_from_environment(option_name, platform=None):
|
def get_option_from_environment(option_name, platform=None, default=None):
|
||||||
'''
|
'''
|
||||||
Returns an option from the environment, optionally scoped by the platform.
|
Returns an option from the environment, optionally scoped by the platform.
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ def get_option_from_environment(option_name, platform=None):
|
|||||||
if option is not None:
|
if option is not None:
|
||||||
return option
|
return option
|
||||||
|
|
||||||
return os.environ.get(option_name)
|
return os.environ.get(option_name, default)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@@ -70,13 +70,13 @@ def main():
|
|||||||
exit(2)
|
exit(2)
|
||||||
|
|
||||||
output_dir = args.output_dir
|
output_dir = args.output_dir
|
||||||
test_command = os.environ.get('CIBW_TEST_COMMAND', None)
|
test_command = get_option_from_environment('CIBW_TEST_COMMAND', platform=platform)
|
||||||
test_requires = os.environ.get('CIBW_TEST_REQUIRES', '').split()
|
test_requires = get_option_from_environment('CIBW_TEST_REQUIRES', platform=platform, default='').split()
|
||||||
project_dir = args.project_dir
|
project_dir = args.project_dir
|
||||||
before_build = get_option_from_environment('CIBW_BEFORE_BUILD', platform=platform)
|
before_build = get_option_from_environment('CIBW_BEFORE_BUILD', platform=platform)
|
||||||
build_verbosity = get_option_from_environment('CIBW_BUILD_VERBOSITY', platform=platform) or ''
|
build_verbosity = get_option_from_environment('CIBW_BUILD_VERBOSITY', platform=platform, default='')
|
||||||
skip_config = os.environ.get('CIBW_SKIP', '')
|
skip_config = os.environ.get('CIBW_SKIP', '')
|
||||||
environment_config = get_option_from_environment('CIBW_ENVIRONMENT', platform=platform) or ''
|
environment_config = get_option_from_environment('CIBW_ENVIRONMENT', platform=platform, default='')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
build_verbosity = min(3, max(-3, int(build_verbosity)))
|
build_verbosity = min(3, max(-3, int(build_verbosity)))
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ def build(project_dir, package_name, output_dir, test_command, test_requires, be
|
|||||||
PythonConfiguration(version='2.7', identifier='cp27-macosx_10_6_intel', url='https://www.python.org/ftp/python/2.7.15/python-2.7.15-macosx10.6.pkg'),
|
PythonConfiguration(version='2.7', identifier='cp27-macosx_10_6_intel', url='https://www.python.org/ftp/python/2.7.15/python-2.7.15-macosx10.6.pkg'),
|
||||||
PythonConfiguration(version='3.4', identifier='cp34-macosx_10_6_intel', url='https://www.python.org/ftp/python/3.4.4/python-3.4.4-macosx10.6.pkg'),
|
PythonConfiguration(version='3.4', identifier='cp34-macosx_10_6_intel', url='https://www.python.org/ftp/python/3.4.4/python-3.4.4-macosx10.6.pkg'),
|
||||||
PythonConfiguration(version='3.5', identifier='cp35-macosx_10_6_intel', url='https://www.python.org/ftp/python/3.5.4/python-3.5.4-macosx10.6.pkg'),
|
PythonConfiguration(version='3.5', identifier='cp35-macosx_10_6_intel', url='https://www.python.org/ftp/python/3.5.4/python-3.5.4-macosx10.6.pkg'),
|
||||||
PythonConfiguration(version='3.6', identifier='cp36-macosx_10_6_intel', url='https://www.python.org/ftp/python/3.6.5/python-3.6.5-macosx10.6.pkg'),
|
PythonConfiguration(version='3.6', identifier='cp36-macosx_10_6_intel', url='https://www.python.org/ftp/python/3.6.6/python-3.6.6-macosx10.6.pkg'),
|
||||||
PythonConfiguration(version='3.7', identifier='cp37-macosx_10_6_intel', url='https://www.python.org/ftp/python/3.7.0/python-3.7.0-macosx10.6.pkg'),
|
PythonConfiguration(version='3.7', identifier='cp37-macosx_10_6_intel', url='https://www.python.org/ftp/python/3.7.0/python-3.7.0-macosx10.6.pkg'),
|
||||||
]
|
]
|
||||||
get_pip_url = 'https://bootstrap.pypa.io/get-pip.py'
|
get_pip_url = 'https://bootstrap.pypa.io/get-pip.py'
|
||||||
@@ -128,7 +128,7 @@ def build(project_dir, package_name, output_dir, test_command, test_requires, be
|
|||||||
# (this ensures that Python runs the tests against the installed wheel
|
# (this ensures that Python runs the tests against the installed wheel
|
||||||
# and not the repo code)
|
# and not the repo code)
|
||||||
test_command_prepared = prepare_command(test_command, project=abs_project_dir)
|
test_command_prepared = prepare_command(test_command, project=abs_project_dir)
|
||||||
call(shlex.split(test_command_prepared), cwd=os.environ['HOME'], env=env)
|
call(test_command_prepared, cwd=os.environ['HOME'], env=env, shell=True)
|
||||||
|
|
||||||
# we're all done here; move it to output
|
# we're all done here; move it to output
|
||||||
shutil.move(delocated_wheel, output_dir)
|
shutil.move(delocated_wheel, output_dir)
|
||||||
|
|||||||
@@ -40,6 +40,8 @@ def build(project_dir, package_name, output_dir, test_command, test_requires, be
|
|||||||
PythonConfiguration(version='3.5.x', arch="64", identifier='cp35-win_amd64', path='C:\Python35-x64'),
|
PythonConfiguration(version='3.5.x', arch="64", identifier='cp35-win_amd64', path='C:\Python35-x64'),
|
||||||
PythonConfiguration(version='3.6.x', arch="32", identifier='cp36-win32', path='C:\Python36'),
|
PythonConfiguration(version='3.6.x', arch="32", identifier='cp36-win32', path='C:\Python36'),
|
||||||
PythonConfiguration(version='3.6.x', arch="64", identifier='cp36-win_amd64', path='C:\Python36-x64'),
|
PythonConfiguration(version='3.6.x', arch="64", identifier='cp36-win_amd64', path='C:\Python36-x64'),
|
||||||
|
PythonConfiguration(version='3.7.x', arch="32", identifier='cp37-win32', path='C:\Python37'),
|
||||||
|
PythonConfiguration(version='3.7.x', arch="64", identifier='cp37-win_amd64', path='C:\Python37-x64'),
|
||||||
]
|
]
|
||||||
|
|
||||||
abs_project_dir = os.path.abspath(project_dir)
|
abs_project_dir = os.path.abspath(project_dir)
|
||||||
@@ -51,6 +53,10 @@ def build(project_dir, package_name, output_dir, test_command, test_requires, be
|
|||||||
print('cibuildwheel: Skipping build %s' % config.identifier, file=sys.stderr)
|
print('cibuildwheel: Skipping build %s' % config.identifier, file=sys.stderr)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
# check python & pip exist for this configuration
|
||||||
|
assert os.path.exists(os.path.join(config.path, 'python.exe'))
|
||||||
|
assert os.path.exists(os.path.join(config.path, 'Scripts', 'pip.exe'))
|
||||||
|
|
||||||
# setup dirs
|
# setup dirs
|
||||||
if os.path.exists(built_wheel_dir):
|
if os.path.exists(built_wheel_dir):
|
||||||
shutil.rmtree(built_wheel_dir)
|
shutil.rmtree(built_wheel_dir)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[bumpversion]
|
[bumpversion]
|
||||||
current_version = 0.9.2
|
current_version = 0.9.4
|
||||||
commit = True
|
commit = True
|
||||||
tag = True
|
tag = True
|
||||||
message = Bump version
|
message = Bump version
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ except ImportError:
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='cibuildwheel',
|
name='cibuildwheel',
|
||||||
version='0.9.2',
|
version='0.9.4',
|
||||||
install_requires=['bashlex'],
|
install_requires=['bashlex'],
|
||||||
description="Build Python wheels on CI with minimal configuration.",
|
description="Build Python wheels on CI with minimal configuration.",
|
||||||
long_description='For readme please see http://github.com/joerick/cibuildwheel',
|
long_description='For readme please see http://github.com/joerick/cibuildwheel',
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
{
|
{
|
||||||
"CIBW_TEST_REQUIRES": "nose",
|
"CIBW_TEST_REQUIRES": "nose",
|
||||||
"CIBW_TEST_COMMAND": "nosetests {project}/test"
|
"CIBW_TEST_COMMAND": "false || nosetests {project}/test",
|
||||||
|
"comment": "The 'false ||' bit is to ensure this command runs in a shell on Mac and Linux",
|
||||||
|
"CIBW_TEST_COMMAND_WINDOWS": "nosetests {project}/test"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user