Compare commits

..
17 Commits
Author SHA1 Message Date
Joe Rickerby ede818944e Bump version 2017-10-09 19:09:26 +01:00
Joe Rickerby 9c73dd2ac7 Merge pull request #42 from hroncok/patch-2
Add python-admesh to the list of working examples
2017-10-09 19:05:22 +01:00
Miro Hrončok 5f7c019392 Add python-admesh to the list of working examples 2017-09-20 18:09:30 +02:00
Joe Rickerby cd9eeb72e5 Merge pull request #34 from joerick/faster-mac-ci
Faster builds on Mac
2017-09-19 20:12:39 +01:00
Joe Rickerby d075c731b6 Merge pull request #36 from YannickJadoul/linux-docker-host-mount
Adding extra mount / to /host on docker invocation for linux wheels
2017-09-19 20:11:09 +01:00
Joe Rickerby 8fa41df67d Fix a couple typos 2017-09-19 20:09:59 +01:00
Joe Rickerby 0e849c2bcf Merge pull request #37 from joerick/readme-repos-parselmouth
Added the Parselmouth project to the projects using cibuildwheel in the README
2017-09-19 12:20:53 +01:00
Joe Rickerby 212fa34d9d Merge pull request #38 from hroncok/patch-1
It's manylinux1_i686, not manylinux1_i386
2017-09-19 12:20:37 +01:00
Miro Hrončok cb73b18bce It's manylinux1_i686, not manylinux1_i386 2017-09-18 23:59:46 +02:00
Yannick Jadoul 1730d6fd0b Adding notes on Linux builds in Docker 2017-09-16 23:03:14 +02:00
Joe Rickerby 1e9067272d Merge pull request #35 from YannickJadoul/linux-python-bin-path
Adding $PYBIN to path when calling pip wheel
2017-09-16 10:04:13 +01:00
Yannick Jadoul b0afaf33c2 Added the Parselmouth project to the projects using cibuildwheel in the README 2017-09-14 10:54:01 +02:00
Yannick Jadoul d0e5a4bb3c Adding extra mount / to /host on docker invocation for linux wheels 2017-09-13 22:56:06 +02:00
Yannick Jadoul 4dc8bf447f Adding $PYBIN to path when calling pip wheel 2017-09-12 12:37:51 +02:00
Joe Rickerby 9a6a7d3375 Python 3 faster builds too 2017-09-11 10:51:30 +01:00
Joe Rickerby 719ad30d05 Update changelog 2017-09-10 22:52:21 +01:00
Joe Rickerby 666c10465a Speed up mac CI by only installing python if it's not already installed 2017-09-10 22:40:49 +01:00
6 changed files with 35 additions and 13 deletions
+16 -3
View File
@@ -44,7 +44,7 @@ Usage
- os: osx
script:
- pip install cibuildwheel==0.5.1
- pip install cibuildwheel==0.6.0
- cibuildwheel --output-dir wheelhouse
```
@@ -54,7 +54,7 @@ Usage
```
build_script:
- pip install cibuildwheel==0.5.1
- pip install cibuildwheel==0.6.0
- cibuildwheel --output-dir wheelhouse
artifacts:
- path: "wheelhouse\\*.whl"
@@ -84,6 +84,12 @@ All being well, you should get wheels delivered to you in a few minutes.
A more detailed description of the options, the allowed values, and some examples can be found in the [Options](#options) section.
### Linux builds on Docker
Linux wheels are built in the [`manylinux1` docker images](https://github.com/pypa/manylinux) to provide binary compatible wheels on Linux, according to [PEP 513](https://www.python.org/dev/peps/pep-0513/). Because of this, when building with `cibuildwheel` on Linux, a few things should be taken into account:
- Progams and libraries cannot be installed on the Travis CI Ubuntu host with `apt-get`, but can be installed inside of the Docker image using `yum` or manually. The same goes for environment variables that are potentially needed to customize the wheel building. `cibuildwheel` supports this by providing the `CIBW_ENVIRONMENT` and `CIBW_BEFORE_BUILD` options to setup the build environment inside the running Docker image. See [below](#options) for details on these options.
- The project directory is mounted in the running Docker instance as `/project`, the output directory for the wheels as `/output`. In general, this is handled transparently by `cibuildwheel`. For a more finegrained level of control however, the root of the host file system is mounted as `/host`, allowing for example to access shared files, caches, etc. on the host file system.
Options
-------
@@ -139,7 +145,7 @@ The format is `python_tag-platform_tag`. The tags are as defined in [PEP 0425](h
Python tags look like `cp27` `cp34` `cp35` `cp36`
Platform tags look like `macosx_10_6_intel` `manylinux1_x86_64` `manylinux1_i386` `win32` `win_amd64`
Platform tags look like `macosx_10_6_intel` `manylinux1_x86_64` `manylinux1_i686` `win32` `win_amd64`
You can also use shell-style globbing syntax (as per `fnmatch`)
@@ -273,6 +279,8 @@ Here are some repos that use cibuildwheel.
- [pyinstrument_cext](https://github.com/joerick/pyinstrument_cext)
- [websockets](https://github.com/aaugustin/websockets)
- [Parselmouth](https://github.com/YannickJadoul/Parselmouth)
- [python-admesh](https://github.com/admesh/python-admesh)
> Add repo here! Send a PR.
@@ -284,6 +292,11 @@ Since `cibuildwheel` runs the wheel through delocate or auditwheel, it will auto
Changelog
=========
### 0.5.1
- Fixed a couple of bugs on Python 3.
- Added experimental support for Mac builds on [Bitrise.io](https://www.bitrise.io)
### 0.5.0
- `CIBW_ENVIRONMENT` added. You can now set environment variables for each build, even within the Docker container on Linux. This is a big one! (#21)
+1 -1
View File
@@ -1 +1 @@
__version__ = '0.5.1'
__version__ = '0.6.0'
+4 -3
View File
@@ -62,11 +62,11 @@ def build(project_dir, package_name, output_dir, test_command, test_requires, be
mkdir /tmp/delocated_wheel
if [ ! -z {before_build} ]; then
PATH=$PYBIN:$PATH sh -c {before_build}
PATH="$PYBIN:$PATH" sh -c {before_build}
fi
# Build that wheel
"$PYBIN/pip" wheel . -w /tmp/built_wheel --no-deps
PATH="$PYBIN:$PATH" "$PYBIN/pip" wheel . -w /tmp/built_wheel --no-deps
built_wheel=(/tmp/built_wheel/*.whl)
# Delocate the wheel
@@ -91,7 +91,7 @@ def build(project_dir, package_name, output_dir, test_command, test_requires, be
# Run the tests from a different directory
if [ ! -z {test_command} ]; then
pushd $HOME
PATH=$PYBIN:$PATH sh -c {test_command}
PATH="$PYBIN:$PATH" sh -c {test_command}
popd
fi
@@ -120,6 +120,7 @@ def build(project_dir, package_name, output_dir, test_command, test_requires, be
'-i',
'-v', '%s:/project' % os.path.abspath(project_dir),
'-v', '%s:/output' % os.path.abspath(output_dir),
'-v', '/:/host',
docker_image,
'/bin/bash'],
stdin=subprocess.PIPE, universal_newlines=True)
+12 -4
View File
@@ -19,6 +19,11 @@ def build(project_dir, package_name, output_dir, test_command, test_requires, be
PythonConfiguration(version='3.6', identifier='cp36-macosx_10_6_intel', url='https://www.python.org/ftp/python/3.6.0/python-3.6.0-macosx10.6.pkg'),
]
pkgs_output = subprocess.check_output(['pkgutil', '--pkgs'])
if sys.version_info[0] >= 3:
pkgs_output = pkgs_output.decode('utf8')
installed_system_packages = pkgs_output.splitlines()
def call(args, env=None, cwd=None, shell=False):
# print the command executing for the logs
if shell:
@@ -33,10 +38,13 @@ def build(project_dir, package_name, output_dir, test_command, test_requires, be
print('cibuildwheel: Skipping build %s' % config.identifier, file=sys.stderr)
continue
# download the pkg
call(['curl', '-L', '-o', '/tmp/Python.pkg', config.url])
# install
call(['sudo', 'installer', '-pkg', '/tmp/Python.pkg', '-target', '/'])
# if this version of python isn't installed, get it from python.org and install
python_package_identifier = 'org.python.Python.PythonFramework-%s' % config.version
if python_package_identifier not in installed_system_packages:
# download the pkg
call(['curl', '-L', '-o', '/tmp/Python.pkg', config.url])
# install
call(['sudo', 'installer', '-pkg', '/tmp/Python.pkg', '-target', '/'])
env = os.environ.copy()
env['PATH'] = os.pathsep.join([
+1 -1
View File
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 0.5.1
current_version = 0.6.0
commit = True
tag = True
message = Bump version
+1 -1
View File
@@ -8,7 +8,7 @@ except ImportError:
setup(
name='cibuildwheel',
version='0.5.1',
version='0.6.0',
install_requires=['bashlex'],
description="Build Python wheels on CI with minimal configuration.",
long_description='For readme please see http://github.com/joerick/cibuildwheel',