Improve blis and numpy build dependencies (#6455)

* Fix blis build dependencies

* Add blis with python_version constraints to pyproject.toml
* Add blis to setup_requires

* Remove --only-binary from CI

* Reduce number of builds to speed up CI

* Add hack to install wheel for python 3.5 in linux

* Remove os spec from CI

* Remove detailed numpy build constraints

* Remove detailed numpy build constraints from `pyproject.toml` because
  it is too difficult to maintain for many architectures
  * These constraints are more a reflection of what is available on
    pypi as binary wheels rather than any real build requirements that
    it is necessary for users to follow when building from source
  * Users building their own binary packages will need to enforce the
    constraints that make sense in their environments, e.g., the `conda`
    compatible numpy pins

* Keep the build constraints in `build-constraints.txt` for use with our
  builds
  * Our builds with wheelwright are built against the earliest
    compatible binary versions of numpy on pypi
  * These constraints are documented within the distribution

* Revert "Remove os spec from CI"

This reverts commit 7489476688.
This commit is contained in:
Adriane Boyd 2020-12-08 07:29:34 +01:00 committed by GitHub
parent e931d3f72b
commit dcecc75270
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 24 deletions

View File

@ -38,34 +38,35 @@ jobs:
Python35Linux:
imageName: 'ubuntu-16.04'
python.version: '3.5'
os: linux
Python35Windows:
imageName: 'vs2017-win2016'
python.version: '3.5'
# Test on one OS per python 3.6/3.7/3.8 to speed up CI
Python36Linux:
imageName: 'ubuntu-16.04'
python.version: '3.6'
Python36Windows:
imageName: 'vs2017-win2016'
python.version: '3.6'
Python36Mac:
imageName: 'macos-10.14'
python.version: '3.6'
# Don't test on 3.7 for now to speed up builds
Python37Linux:
imageName: 'ubuntu-16.04'
python.version: '3.7'
# Python36Windows:
# imageName: 'vs2017-win2016'
# python.version: '3.6'
# Python36Mac:
# imageName: 'macos-10.14'
# python.version: '3.6'
# Python37Linux:
# imageName: 'ubuntu-16.04'
# python.version: '3.7'
Python37Windows:
imageName: 'vs2017-win2016'
python.version: '3.7'
Python37Mac:
imageName: 'macos-10.14'
python.version: '3.7'
Python38Linux:
imageName: 'ubuntu-16.04'
python.version: '3.8'
Python38Windows:
imageName: 'vs2017-win2016'
python.version: '3.8'
# Python37Mac:
# imageName: 'macos-10.14'
# python.version: '3.7'
# Python38Linux:
# imageName: 'ubuntu-16.04'
# python.version: '3.8'
# Python38Windows:
# imageName: 'vs2017-win2016'
# python.version: '3.8'
Python38Mac:
imageName: 'macos-10.14'
python.version: '3.8'
@ -108,9 +109,14 @@ jobs:
pip uninstall -y -r installed.txt
displayName: 'Uninstall all packages'
- script: |
pip install wheel
condition: and(eq(variables['os'], 'linux'), eq(variables['python.version'], '3.5'))
displayName: 'Hack: install wheel for python 3.5'
- bash: |
SDIST=$(python -c "import os;print(os.listdir('./dist')[-1])" 2>&1)
pip install dist/$SDIST --only-binary :all:
pip install dist/$SDIST
displayName: 'Install from sdist'
- script: |

View File

@ -6,9 +6,8 @@ requires = [
"preshed>=3.0.2,<3.1.0",
"murmurhash>=0.28.0,<1.1.0",
"thinc>=7.4.1,<7.5.0",
"numpy==1.15.0; python_version<='3.7'",
"numpy==1.17.3; python_version=='3.8'",
"numpy==1.19.3; python_version=='3.9'",
"numpy; python_version>='3.10'",
"blis>=0.4.0,<0.8.0; python_version >= '3.6'",
"blis>=0.4.0,<0.5.0; python_version < '3.6'",
"numpy>=1.15.0",
]
build-backend = "setuptools.build_meta"

View File

@ -40,6 +40,7 @@ setup_requires =
preshed>=3.0.2,<3.1.0
murmurhash>=0.28.0,<1.1.0
thinc>=7.4.1,<7.5.0
blis>=0.4.0,<0.8.0
install_requires =
# Our libraries
murmurhash>=0.28.0,<1.1.0