Skip to content

Idea: Arch 32/64 shortcut #551

@henryiii

Description

@henryiii

When looking at the build matrix here:

https://github.com/deepcharles/ruptures/blob/404957563c0391f073200899b9b041caa9277cc6/.github/workflows/upload-to-pypi.yml#L40-L80

It seems we could have shortcut values for ARCHS, "32" and "64", that would select 32 bit and 64 bit native architectures. So on 64 bit Windows or Linux, you could select 32 or 64. On macOS, you could only select 64, 32 would be empty (so an error after #545 unless --allow-empty was passed) or we could just make it an error. Same thing for 64 on 32bit OS's. On alternate archs, these remain the "native" on that arch 32/64 values.

I believe @mayeut wanted something like this too? Don't have the issue reference handy for it.

This would take a lot of pressure off the build selector. ARCHS, like BUILD/SKIP, already helps define the build process.

Old version
matrix:
  os: [ubuntu-latest, windows-latest, macos-latest]
  bitness: [32, 64]
  python: [36, 37, 38, 39]
  include:
    # Run 32 and 64 bits version in parallel for Linux and Windows
    - os: windows-latest
      bitness: 64
      platform_id: win_amd64
    - os: windows-latest
      bitness: 32
      platform_id: win32
    - os: ubuntu-latest
      bitness: 64
      platform_id: manylinux_x86_64
    - os: ubuntu-latest
      bitness: 32
      platform_id: manylinux_i686
    - os: macos-latest
      bitness: 64
      platform_id: macosx_x86_64
  exclude:
    - os: macos-latest
      bitness: 32
    - os: windows-latest
      python: 39
steps:
- uses: actions/checkout@v2
  with:
    fetch-depth: 0
- uses: actions/setup-python@v2
  name: Install Python
  with:
    python-version: '3.8'
- name: Install cibuildwheel
  run: |
    python -m pip install --upgrade pip
    python -m pip install cibuildwheel
- name: Build wheels
  env:
    CIBW_BUILD: cp${{ matrix.python }}-${{ matrix.platform_id }}
    run: python -m cibuildwheel --output-dir wheelhouse
New version
matrix:
  os: [ubuntu-latest, windows-latest, macos-latest]
  bitness: [32, 64]
  python: [36, 37, 38, 39]
  exclude:
    - os: macos-latest
      bitness: 32
    - os: windows-latest
      python: 39
steps:
- uses: actions/checkout@v2
  with:
    fetch-depth: 0
- name: Build wheels
  env:
    CIBW_BUILD: cp${{ matrix.python }}-*
  run: pipx run cibuildwheel==1.80 --output-dir wheelhouse --archs ${{ matrix.bitness }}

Thoughts? Hopefully @deepcharles doesn't mind me using his yaml as an example. :) Also used pipx for the "new" version, because why not, it's preinstalled. :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions