diff --git a/.github/workflows/cibuildwheel.yml b/.github/workflows/cibuildwheel.yml index ac542bf2ab77..17f74ebdf4f9 100644 --- a/.github/workflows/cibuildwheel.yml +++ b/.github/workflows/cibuildwheel.yml @@ -7,6 +7,10 @@ on: - v[0-9]+.[0-9]+.x tags: - v* + schedule: + # every Sunday at midnight, builds master and uploads to + # https://anaconda.org/scipy-wheels-nightly/ + - cron: '0 0 * * 0' jobs: build_wheels: @@ -15,6 +19,7 @@ jobs: strategy: matrix: os: [ubuntu-18.04, windows-latest, macos-latest] + steps: - uses: actions/checkout@v2 @@ -39,8 +44,8 @@ jobs: python -m cibuildwheel --output-dir dist env: CIBW_BUILD: "cp39-*" - CIBW_MANYLINUX_X86_64_IMAGE: manylinux1 - CIBW_MANYLINUX_I686_IMAGE: manylinux1 + CIBW_MANYLINUX_X86_64_IMAGE: manylinux2010 + CIBW_MANYLINUX_I686_IMAGE: manylinux2010 CIBW_BEFORE_BUILD: pip install certifi numpy==1.19.3 MPL_DISABLE_FH4: "yes" @@ -68,16 +73,14 @@ jobs: startsWith(github.ref, 'refs/heads/v3.3') || startsWith(github.ref, 'refs/tags/v3.3') - - name: Build wheels for PyPy + - name: Build wheels for PyPy3.7 run: | python -m cibuildwheel --output-dir dist env: - CIBW_BUILD: "pp3?-*" + CIBW_BUILD: "pp37-*" CIBW_BEFORE_BUILD: pip install certifi numpy==1.16 - if: > - runner.os != 'Windows' && ( - startsWith(github.ref, 'refs/heads/v3.3') || - startsWith(github.ref, 'refs/tags/v3.3') ) + CIBW_MANYLINUX_X86_64_IMAGE: manylinux2010 + CIBW_MANYLINUX_I686_IMAGE: manylinux2010 - name: Validate that LICENSE files are included in wheels run: | @@ -87,3 +90,20 @@ jobs: with: name: wheels path: ./dist/*.whl + + - name: Set token + if: github.event_name == "schedule" + run: | + echo "TOKEN=${{ secrets.SCIPY_WHEELS_NIGHTLY_ACCESS }}" >> $GITHUB_ENV; + echo "ANACONDA_ORG=https://anaconda.org/scipy-wheels-nightly" >> $GITHUB_ENV; + + - name: Upload weekly wheels + if: env.TOKEN + run: | + set -ex + pip install git+https://github.com/Anaconda-Server/anaconda-client; + # The first -t option refers to the token, the second is the "type" + # option to the "upload" command + anaconda -t ${TOKEN} upload \ + --no-progress --force -u $ANACONDA_ORG \ + ./dist/*.whl; diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1b218041e33b..9de45ec24ab0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -18,6 +18,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: include: - name-suffix: "(Minimum Versions)" @@ -30,6 +31,10 @@ jobs: python-version: 3.7 extra-requirements: '-r requirements/testing/travis_extra.txt' XVFB_RUN: xvfb-run -a + # - os: ubuntu-18.04 + # python-version: pypy-3.7 + # extra-requirements: '-r requirements/testing/travis_extra.txt' + # XVFB_RUN: xvfb-run -a - os: ubuntu-16.04 python-version: 3.8 extra-requirements: '-r requirements/testing/travis_extra.txt' @@ -76,6 +81,8 @@ jobs: libxcb-randr0 \ libxcb-render-util0 \ libxcb-xinerama0 \ + libxml2-dev \ + libxslt1-dev \ lmodern \ fonts-freefont-otf \ texlive-pictures \ diff --git a/requirements/testing/travis_extra.txt b/requirements/testing/travis_extra.txt index 0b18fc58394a..318dd5f810d1 100644 --- a/requirements/testing/travis_extra.txt +++ b/requirements/testing/travis_extra.txt @@ -4,5 +4,5 @@ ipykernel nbconvert[execute]!=6.0.0,!=6.0.1 nbformat!=5.0.0,!=5.0.1 pandas!=0.25.0 -pikepdf +pikepdf; platform_python_implementation != 'PyPy' pytz diff --git a/src/_path.h b/src/_path.h index 784a6457807c..c7f1efd3e386 100644 --- a/src/_path.h +++ b/src/_path.h @@ -1085,6 +1085,11 @@ void quad2cubic(double x0, double y0, outy[2] = y2; } +/* PyPy before v7.3.3 does not have Py_DTSF_ADD_DOT_0 */ +#ifndef Py_DTSF_ADD_DOT_0 +#define Py_DTSF_ADD_DOT_0 0x02 +#endif + void __add_number(double val, char format_code, int precision, std::string& buffer)