Skip to content

Commit e76d408

Browse files
authored
Release v1.3.9 (#386)
1 parent 15c7e67 commit e76d408

File tree

204 files changed

+11911
-20610
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

204 files changed

+11911
-20610
lines changed

.appveyor.yml

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
shallow_clone: true
2-
31
cache:
42
- '%LOCALAPPDATA%\pip\Cache'
53

@@ -8,19 +6,21 @@ branches:
86
only:
97
- develop
108

9+
image:
10+
- Visual Studio 2015
11+
1112
environment:
1213
matrix:
13-
- PYTHON: C:\Python27-x64
14-
PYTHON_VERSION: 2.7
15-
PYTHON_ARCH: 64
14+
## does not work with C++11
15+
# - PYTHON: C:\Python27-x64
16+
# PYTHON_VERSION: 2.7
17+
# PYTHON_ARCH: 64
1618

1719
- PYTHON: C:\Python36-x64
1820
PYTHON_VERSION: 3.6
1921
PYTHON_ARCH: 64
2022

2123
init:
22-
- "ECHO %PYTHON% %PYTHON_VERSION% %PYTHON_ARCH%"
23-
- "ECHO \"%APPVEYOR_SCHEDULED_BUILD%\""
2424
# If there is a newer build queued for the same PR, cancel this one.
2525
# The AppVeyor 'rollout builds' option is supposed to serve the same
2626
# purpose but it is problematic because it tends to cancel builds pushed
@@ -33,6 +33,8 @@ init:
3333
}
3434

3535
install:
36+
- git submodule update --init --recursive
37+
3638
# Prepend newly installed Python to the PATH of this build (this cannot be
3739
# done from inside the powershell script as it would require to restart
3840
# the parent CMD process).
@@ -46,10 +48,10 @@ install:
4648
print(sys.platform, platform.machine(), struct.calcsize('P') * 8, )"
4749
4850
# Upgrade to the latest pip.
49-
- 'python -m pip install --upgrade pip setuptools'
51+
- python -m pip install --upgrade pip setuptools
5052

5153
# Install the test dependencies.
52-
- 'pip install --upgrade --timeout 5 --retries 2 cython numpy matplotlib pytest'
54+
- pip install --upgrade --timeout 5 --retries 2 cython numpy matplotlib pytest
5355

5456
build_script:
5557
- python setup.py build_ext --inplace

.ci/azure-pipeline-build.yml

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
# Azure only builds master, Travis and Appveyor only build develop
22

33
trigger:
4-
- master
5-
4+
branches:
5+
include:
6+
- master
7+
- 'refs/tags/*'
68
pr:
79
- master
810

911
variables:
1012
package_name: iminuit
1113
many_linux_base: quay.io/pypa/manylinux1_
14+
dev_requirements_file: .ci/requirements-build.txt
15+
test_requirements_file: .ci/requirements-test.txt
1216

1317
jobs:
1418

@@ -18,10 +22,15 @@ jobs:
1822
variables:
1923
python.architecture: 'none'
2024
steps:
25+
- task: UsePythonVersion@0
26+
inputs:
27+
versionSpec: '3.8'
2128
- script: |
29+
python -m pip install --upgrade pip
2230
python -m pip install setuptools cython
23-
python setup.py sdist
24-
displayName: Publish sdist
31+
displayName: Install sdist deps
32+
- script: python setup.py sdist
33+
displayName: Prepare sdist
2534
- template: azure-wheel-helpers/azure-publish-dist.yml
2635

2736
- job: ManyLinux
@@ -59,6 +68,8 @@ jobs:
5968
python.version: '3.6'
6069
Python37:
6170
python.version: '3.7'
71+
Python38:
72+
python.version: '3.8'
6273
pool:
6374
vmImage: 'macOS-latest'
6475
steps:
@@ -79,6 +90,9 @@ jobs:
7990
Python37:
8091
python.version: '3.7'
8192
python.architecture: 'x64'
93+
Python38:
94+
python.version: '3.8'
95+
python.architecture: 'x64'
8296
Python27_32:
8397
python.version: '2.7'
8498
python.architecture: 'x86'
@@ -88,6 +102,9 @@ jobs:
88102
Python37_32:
89103
python.version: '3.7'
90104
python.architecture: 'x86'
105+
Python38_32:
106+
python.version: '3.8'
107+
python.architecture: 'x86'
91108
pool:
92109
vmImage: 'vs2017-win2016'
93110
steps:

.ci/azure-wheel-helpers/LICENSE

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
BSD 3-Clause License
2+
3+
Copyright (c) 2019, Henry Schreiner.
4+
All rights reserved.
5+
6+
Redistribution and use in source and binary forms, with or without
7+
modification, are permitted provided that the following conditions are met:
8+
9+
* Redistributions of source code must retain the above copyright notice, this
10+
list of conditions and the following disclaimer.
11+
12+
* Redistributions in binary form must reproduce the above copyright notice,
13+
this list of conditions and the following disclaimer in the documentation
14+
and/or other materials provided with the distribution.
15+
16+
* Neither the name of the particle package developers nor the names of its
17+
contributors may be used to endorse or promote products derived from
18+
this software without specific prior written permission.
19+
20+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

.ci/azure-wheel-helpers/README.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
## Azure Wheel Helpers
2+
3+
This repository holds a collection of wheel helpers designed by the [Scikit-HEP][] project to build Python Wheels on [Azure DevOps][]. This is designed for packages that require building; if you have a pure-Python project, producing a universal wheel is trivial without this helper collection. This collection assumes some standard paths and procedures, though *some* of them can be customized.
4+
5+
### Supported platforms and caveats
6+
7+
TLDR: Python 2.7, 3.6, 3.7, and 3.8 on all platforms, along with 3.5 on Linux.
8+
9+
| System | Arch | Python versions |
10+
|---------|-----|------------------|
11+
| SDist (all) | all | any (non-binary distribution) |
12+
| ManyLinux1 (custom GCC 8.3) | 64 & 32-bit | 2.7, 3.5, 3.6, 3.7, 3.8 |
13+
| ManyLinux2010 | 64-bit | 2.7, 3.5, 3.6, 3.7, 3.8 |
14+
| macOS 10.9+ | 64-bit | 2.7, 3.6, 3.7, 3.8 |
15+
| Windows | 64 & 32-bit | 2.7, 3.6, 3.7, 3.8 |
16+
17+
* Linux: Python 3.4 is not supported because Numpy does not support it either.
18+
* manylinux1: Optional support for GCC 9.1 using docker image; should work but can't be called directly other compiled extensions unless they do the same thing (think that's the main caveat). Supporting 32 bits because it's there for Numpy and PPA for now.
19+
* manylinux2010: Requires pip 10+ and a version of Linux newer than 2010. This is very new technology. 64-bit only. Eventually this will become the preferred (and then only) way to produce Linux wheels.
20+
* MacOS: Uses the dedicated 64 bit 10.9+ Python.org builds. We are not supporting 3.5 because those no longer provide binaries (could use 32+64 fat 10.6+ but really force to 10.9+, but will not be added unless there is a need for it).
21+
* Windows: PyBind11 requires compilation with a newer copy of Visual Studio than Python 2.7's Visual Studio 2008; you need to have the [Visual Studio 2015 distributable][msvc2015] installed (the dll is included in 2017 and 2019, as well).
22+
23+
[msvc2017]: https://www.microsoft.com/en-us/download/details.aspx?id=48145
24+
25+
### Usage
26+
27+
> Azure does not recognize git submodules during the configure phase. Therefore, we are using git subtree instead.
28+
29+
This repository should reside in `/.ci` in your project. To add it:
30+
31+
```bash
32+
git subtree add --prefix .ci/azure-wheel-helpers [email protected]:scikit-hep/azure-wheel-helpers.git master --squash
33+
```
34+
35+
You should make a copy of the template pipeline and make local edits:
36+
37+
```bash
38+
cp .ci/azure-wheel-helpers/azure-pipeline-build.yml .ci/azure-pipeline-build.yml
39+
```
40+
41+
Make sure you enable this path in Azure as the pipeline. See [the post here][iscinumpy/wheels] for more details.
42+
43+
You must set the variables at the top of this file, and remove any configurations (like Windows) that you do not support:
44+
45+
```yaml
46+
variables:
47+
package_name: my_package # This is the output name, - is replaced by _
48+
many_linux_base: "quay.io/pypa/manylinux1_" # Could also be "skhep/manylinuxgcc-"
49+
dev_requirements_file: .ci/azure-wheel-helpers/empty-requirements.txt
50+
test_requirements_file: .ci/azure-wheel-helpers/empty-requirements.txt
51+
```
52+
53+
You can adjust the rest of the template as needed. If you need a non-standard procedure, you can change the target of the `template` inputs to a local file.
54+
55+
56+
### License
57+
58+
Copyright (c) 2019, Henry Schreiner.
59+
60+
Distributed under the 3-clause BSD license, see accompanying file LICENSE
61+
or <https://github.com/scikit-hep/azure-wheel-helpers> for details.
62+
63+
64+
[Scikit-HEP]: http://scikit-hep.org
65+
[Azure DevOps]: https://dev.azure.com
66+
[iscinumpy/wheels]: https://iscinumpy.gitlab.io/post/azure-devops-python-wheels/
67+
[msvc2017]: https://www.microsoft.com/en-us/download/details.aspx?id=48145
68+

.ci/azure-wheel-helpers/azure-manylinux-wheels.yml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,20 @@
1+
2+
# Copyright (c) 2019, Henry Schreiner.
3+
#
4+
# Distributed under the 3-clause BSD license, see accompanying file LICENSE
5+
# or https://github.com/scikit-hep/azure-wheel-helpers for details.
6+
17
steps:
28
- script: |
3-
docker run -e NPY_NUM_BUILD_JOBS=4 -e PLAT=$(plat) -e package_name=$(package_name) --rm -v `pwd`:/io $(image) /io/.ci/azure-wheel-helpers/build-wheels.sh
9+
docker run --rm \
10+
-e NPY_NUM_BUILD_JOBS=4 \
11+
-e PLAT=$(plat) \
12+
-e package_name=$(package_name) \
13+
-e dev_requirements_file='$(dev_requirements_file)' \
14+
-e test_requirements_file='$(test_requirements_file)' \
15+
-v $PWD:/io \
16+
$(image) \
17+
/io/.ci/azure-wheel-helpers/build-wheels.sh
418
displayName: Build wheels
519

620
- script: |

.ci/azure-wheel-helpers/azure-pipeline-build.yml

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,35 @@
1+
# Copyright (c) 2019, Henry Schreiner.
2+
#
3+
# Distributed under the 3-clause BSD license, see accompanying file LICENSE
4+
# or https://github.com/scikit-hep/azure-wheel-helpers for details.
5+
16
# Template - you must copy (or symlink) this to your .ci folder
27
# Packages usually will have a little custom code in here, and
38
# can override any of the templates from here, as well
49

5-
10+
# Builds can always be triggered in the GUI.
611
trigger:
7-
tags:
12+
branches:
813
include:
9-
- v*
14+
- 'refs/tags/*'
15+
16+
pr: none
17+
18+
# For a master-develop workflow:
19+
# pr:
20+
# - master
21+
# trigger:
22+
# - master
1023

11-
pr:
12-
- master
1324

1425

15-
# variables:
16-
# Required variables:
17-
# package_name: This is the output name, - is replaced by _
18-
# Optional variables:
19-
# many_linux_base: Should be quay.io/pypa/manylinux1_ or skhep/manylinuxgcc-
26+
# You must set the package name here. Optionally change the other variables.
27+
variables:
28+
package_name:
29+
many_linux_base: quay.io/pypa/manylinux1_
30+
dev_requirements_file: .ci/azure-wheel-helpers/empty-requirements.txt
31+
test_requirements_file: .ci/azure-wheel-helpers/empty-requirements.txt
32+
2033

2134
jobs:
2235

@@ -26,10 +39,15 @@ jobs:
2639
variables:
2740
python.architecture: 'none'
2841
steps:
42+
- task: UsePythonVersion@0
43+
inputs:
44+
versionSpec: '3.8'
2945
- script: |
46+
python -m pip install --upgrade pip
3047
python -m pip install setuptools
31-
python setup.py sdist
32-
displayName: Publish sdist
48+
displayName: Install sdist deps
49+
- script: python setup.py sdist
50+
displayName: Prepare sdist
3351
- template: azure-wheel-helpers/azure-publish-dist.yml
3452

3553
- job: ManyLinux
@@ -67,6 +85,8 @@ jobs:
6785
python.version: '3.6'
6886
Python37:
6987
python.version: '3.7'
88+
Python38:
89+
python.version: '3.8'
7090
pool:
7191
vmImage: 'macOS-latest'
7292
steps:
@@ -87,6 +107,9 @@ jobs:
87107
Python37:
88108
python.version: '3.7'
89109
python.architecture: 'x64'
110+
Python38:
111+
python.version: '3.8'
112+
python.architecture: 'x64'
90113
Python27_32:
91114
python.version: '2.7'
92115
python.architecture: 'x86'
@@ -96,8 +119,11 @@ jobs:
96119
Python37_32:
97120
python.version: '3.7'
98121
python.architecture: 'x86'
122+
Python38_32:
123+
python.version: '3.8'
124+
python.architecture: 'x86'
99125
pool:
100-
vmImage: 'vs2017-win2016'
126+
vmImage: 'windows-latest'
101127
steps:
102128
- template: azure-wheel-helpers/azure-setup.yml
103129
- template: azure-wheel-helpers/azure-steps.yml
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1+
# Copyright (c) 2019, Henry Schreiner.
2+
#
3+
# Distributed under the 3-clause BSD license, see accompanying file LICENSE
4+
# or https://github.com/scikit-hep/azure-wheel-helpers for details.
15

26
steps:
37
- task: PublishPipelineArtifact@0
48
inputs:
59
artifactName: '$(Agent.OS)_$(Agent.JobName)_$(python.architecture)'
610
targetPath: 'dist'
711

8-
# You can set FULLBUILD_FORCE to anything non-blank to get the manylinux job to run.
912
# Artifacts are attached to the build, and are published with an Azure release pipeline.

.ci/azure-wheel-helpers/azure-setup.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# Copyright (c) 2019, Henry Schreiner.
2+
#
3+
# Distributed under the 3-clause BSD license, see accompanying file LICENSE
4+
# or https://github.com/scikit-hep/azure-wheel-helpers for details.
5+
16
# This is special for macOS because "UsePythonVersion"
27
# does not use the official Python.org installers.
38

@@ -18,6 +23,6 @@ steps:
1823
mkdir -p dist
1924
python -m pip install --upgrade pip
2025
python -m pip install --upgrade pytest wheel twine setuptools
21-
python -m pip install -r .ci/requirements-build.txt
26+
python -m pip install -r $(dev_requirements_file)
2227
displayName: 'Install dependencies'
2328

.ci/azure-wheel-helpers/azure-steps.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# Copyright (c) 2019, Henry Schreiner.
2+
#
3+
# Distributed under the 3-clause BSD license, see accompanying file LICENSE
4+
# or https://github.com/scikit-hep/azure-wheel-helpers for details.
5+
16
steps:
27

38
- script: |

0 commit comments

Comments
 (0)