Skip to content

Commit

Permalink
Reduce source distribution size (#338)
Browse files Browse the repository at this point in the history
## Update .gitattributes: exclude tests and workflows from archive

meson-python uses git-archive to create the sdist. Some of euphonic's
test files are on the large side and we don't need to include them
with every copy of the source.

This does have the downside that git-archive can no longer be used
to produce a copy of the source with tests, but we weren't using that
anyway.


## Build wheels from git checkout

While the purity of building from sdist was appealing, it is difficult
for cibuildwheel to cleanly run an external test suite as it
containerizes the Linux build (to deal with ManyLinux requirements).

We are still testing the sdist (on Windows) so just have to trust in
cibuildwheel's own efforts to separate the testing and source from the
installation. (Which it does seem to work quite hard at.)
  • Loading branch information
ajjackson authored Dec 10, 2024
1 parent 6785915 commit be38a32
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 43 deletions.
5 changes: 3 additions & 2 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# Added by versioneer
euphonic/_version.py export-subst
.github/** export-ignore
tests_and_analysis/** export-ignore
tox.ini export-ignore
64 changes: 23 additions & 41 deletions .github/workflows/build_upload_pypi_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,7 @@ on:
workflow_dispatch:

jobs:
build-sdist:
name: Build sdist
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Ensure tags are fetched for versioning

- name: Create source distribution
shell: bash -l {0}
run: |
pipx run build --sdist .
- name: Upload source dist as build artifact
uses: actions/upload-artifact@v4
with:
name: python-source-distribution
path: dist/
if-no-files-found: error

build-wheels:
needs: build-sdist
strategy:
matrix:
os: [windows-latest, macos-13, macos-latest, ubuntu-latest]
Expand Down Expand Up @@ -58,21 +36,6 @@ jobs:
- name: Checkout project (for test files)
uses: actions/checkout@v4

- name: Delete source (to ensure we are using sdist only)
shell: bash -l {0}
run: rm -rf euphonic

- name: Download sdist
uses: actions/download-artifact@v4
with:
name: python-source-distribution
path: dist/

- name: Get sdist filename
shell: bash -l {0}
run: |
echo EUPHONIC_SDIST="$(find dist/ -name 'euphonic*.tar.gz')" >> $GITHUB_ENV
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
Expand Down Expand Up @@ -113,7 +76,7 @@ jobs:
run: |
python -m pip install --upgrade pip build wheel twine
- name: Build wheels from sdist
- name: Build wheels from git checkout
uses: pypa/[email protected]
env:
CIBW_BUILD_FRONTEND: build
Expand All @@ -124,11 +87,10 @@ jobs:
CIBW_REPAIR_WHEEL_COMMAND_MACOS: ""

CIBW_TEST_EXTRAS: "test,brille,phonopy_reader,matplotlib"
CIBW_TEST_COMMAND: python {package}/tests_and_analysis/test/run_tests.py
CIBW_TEST_COMMAND: "python {package}/tests_and_analysis/test/run_tests.py"

with:
output-dir: wheelhouse
package-dir: ${{ env.EUPHONIC_SDIST }}

- name: Upload wheels as build artifacts
uses: actions/upload-artifact@v4
Expand All @@ -137,6 +99,27 @@ jobs:
path: wheelhouse/*-${{ matrix.wheelname }}*_${{ matrix.cibw_archs }}.whl
if-no-files-found: error

build-sdist:
name: Build sdist
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Ensure tags are fetched for versioning

- name: Create source distribution
shell: bash -l {0}
run: |
pipx run build --sdist .
- name: Upload source dist as build artifact
uses: actions/upload-artifact@v4
with:
name: python-source-distribution
path: dist/
if-no-files-found: error

test-sdist:
needs: build-sdist
name: Test build from sdist on Windows
Expand Down Expand Up @@ -194,7 +177,6 @@ jobs:
shell: bash -l {0}
run: python tests_and_analysis/test/run_tests.py --report


publish:
if: github.event_name == 'release'
needs: [build-wheels,test-sdist]
Expand Down

0 comments on commit be38a32

Please sign in to comment.