Skip to content

Commit

Permalink
Update build system to use Meson (#206)
Browse files Browse the repository at this point in the history
* Update build system to use Meson

* Finish migration to meson

* Fix compilation on Windows

* add conda environment

* fix ci

* remove obsolete manifest

* Run meson setup before tests

* add ninja as requirement

* try to fix cython

* Simplify pip install command

* Latest python on cygwin is 3.9

* install ninja in cygwin

* Readd preliminary_late_includes_cy28

* Run commands in cygwin shell

* Remove MINSIGSTKSZ_IS_CONSTANT

* print logs

* fix cygwin path

* always print logs

* add build as requirements

* fix tests

* Use pytest

* improve log printing

* config pytest

* fix example

* use pip install to compile cysignals

* fix tests

* include tests

* try to fix alarm input

* fix remaining imports

* fix tests

* ignore import errors

* set higher timeout

* increase timeout even more

* add per-test timeout of 30s

* Migrate to pytest

* Fix dist

* remove duplicate and non-functional dist

* don't run tests before dist

* Remove non-functional sage tests

* Don't install package before testing

* improve sdist gen

* do install package

* fix dist path

* back to pip install

* just run pytest without any files

* combine macos and linux

* simplify conftest

* fix format

* remove unused cython instruction

* Fix failing test

* remove duplicate conftest

* export sig_raise_exception

* try to fix cygwin

* don't build wheels for old python

* try to fix wheel building

* merge cygwin code

* manually install ninja in ci

* fix meson

* fix cygwin

* move cygwin code
  • Loading branch information
tobiasdiez authored Nov 17, 2024
1 parent c0e13b6 commit fa6d45d
Show file tree
Hide file tree
Showing 26 changed files with 436 additions and 885 deletions.
212 changes: 0 additions & 212 deletions .github/workflows/ci-sage.yml

This file was deleted.

111 changes: 111 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: Run Sage CI for Linux/Cygwin/macOS

## This GitHub Actions workflow provides:
##
## - portability testing, by building and testing this project on many platforms
## (Linux variants and Cygwin), each with two configurations (installed packages),
##
## - continuous integration, by building and testing other software
## that depends on this project.
##
## It runs on every pull request and push of a tag to the GitHub repository.
##
## The testing can be monitored in the "Actions" tab of the GitHub repository.
##
## After all jobs have finished (or are canceled) and a short delay,
## tar files of all logs are made available as "build artifacts".
##
## This GitHub Actions workflow uses the portability testing framework
## of SageMath (https://www.sagemath.org/). For more information, see
## https://doc.sagemath.org/html/en/developer/portability_testing.html

## The workflow consists of two jobs:
##
## - First, it builds a source distribution of the project
## and generates a script "update-pkgs.sh". It uploads them
## as a build artifact named upstream.
##
## - Second, it checks out a copy of the SageMath source tree.
## It downloads the upstream artifact and replaces the project's
## package in the SageMath distribution by the newly packaged one
## from the upstream artifact, by running the script "update-pkgs.sh".
## Then it builds a small portion of the Sage distribution.
##
## Many copies of the second step are run in parallel for each of the tested
## systems/configurations.

#on: [push, pull_request]

on:
pull_request:
types: [opened, synchronize]
push:
tags:
- '*'
workflow_dispatch:
# Allow to run manually

concurrency:
# Cancel previous runs of this workflow for the same branch
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
cygwin-without-sage:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
python-version-start: [python-3]
python-version: [9]
steps:
- run: |
git config --global core.autocrlf false
git config --global core.symlinks true
- name: Set up the repository
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- name: Set up Cygwin
uses: egor-tensin/setup-cygwin@v4
with:
packages: gcc-core gcc-g++ python3${{ matrix.python-version }}-devel ninja pkgconf
- name: Install dependencies
shell: C:\tools\cygwin\bin\bash.exe --norc -eo pipefail -o igncr '{0}'
run: |
python3.${{ matrix.python-version }} -m pip install --upgrade pip
python3.${{ matrix.python-version }} -m pip install --upgrade -r ./requirements.txt
- name: Build and check
shell: C:\tools\cygwin\bin\bash.exe --norc -eo pipefail -o igncr '{0}'
run: |
pip install --no-build-isolation --config-settings=builddir=builddir .
meson test --print-errorlogs -C builddir
ci:
name: CI (${{ matrix.os }} with Python ${{ matrix.python-version }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ['macos-13', 'macos-latest', 'ubuntu-latest']
python-version: ['3.10', '3.11', '3.12', '3.13-dev']
steps:
- name: Set up the repository
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
pip install --upgrade pip
pip install --upgrade -r requirements.txt
pip install --upgrade ninja
- name: Build
run: pip install --no-build-isolation --config-settings=builddir=builddir .
- name: Test
run: meson test --print-errorlogs -C builddir
11 changes: 7 additions & 4 deletions .github/workflows/dist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,15 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
- name: make dist
- name: Install dependencies
run: |
make dist
pip install --upgrade pip
pip install --upgrade -r requirements.txt
- name: Build sdist
run: python -m build --sdist .
- uses: actions/upload-artifact@v4
with:
path: "dist/*.tar.gz"
path: "dist/*.tar.*"
name: dist
- uses: pypa/gh-action-pypi-publish@release/v1
with:
Expand Down Expand Up @@ -82,7 +85,7 @@ jobs:
# Installing pipx follows the approach of https://github.com/pypa/cibuildwheel/pull/1743
id: python
with:
python-version: "3.8 - 3.12"
python-version: "3.9 - 3.12"
update-environment: false

- name: Build platform wheels
Expand Down
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,6 @@ target/

# Auto-generated files
example/cysignals_example.cpp
src/config.h
src/cysignals/signals.pxd
src/cysignals/cysignals_config.h

# C files generated by Cython
src/cysignals/alarm.c
Expand Down
15 changes: 0 additions & 15 deletions MANIFEST.in

This file was deleted.

Loading

0 comments on commit fa6d45d

Please sign in to comment.