Skip to content

Commit

Permalink
add pm-remez files
Browse files Browse the repository at this point in the history
  • Loading branch information
daniestevez committed Apr 9, 2024
0 parents commit 39b251a
Show file tree
Hide file tree
Showing 32 changed files with 5,974 additions and 0 deletions.
167 changes: 167 additions & 0 deletions .github/workflows/maturin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
# This file is autogenerated by maturin v1.5.1
# To update, run
#
# maturin generate-ci github
#

# There are some manual modifications in this file
name: Python

on:
push:
branches:
- main
- master
tags:
- '*'
pull_request:
workflow_dispatch:

permissions:
contents: read

jobs:
linux:
runs-on: ${{ matrix.platform.runner }}
strategy:
fail-fast: false
matrix:
platform:
- runner: ubuntu-latest
target: x86_64
openssl_install: yum install -y openssl-devel
# These are disabled. x86 build fails when building openblas, and
# the other targets needs cross-compilation of openblas.
# - runner: ubuntu-latest
# target: x86
# openssl_install: yum install -y openssl-devel
# - runner: ubuntu-latest
# target: aarch64
# openssl_install: apt-get update && apt-get install -y libssl-dev pkg-config
# - runner: ubuntu-latest
# target: armv7
# openssl_install: apt-get update && apt-get install -y libssl-dev pkg-config
# - runner: ubuntu-latest
# target: s390x
# openssl_install: apt-get update && apt-get install -y libssl-dev pkg-config
# - runner: ubuntu-latest
# target: ppc64le
# openssl_install: apt-get update && apt-get install -y libssl-dev pkg-config
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist
sccache: 'true'
manylinux: auto
before-script-linux: ${{ matrix.platform.openssl_install }}
- name: Install built wheel
run: |
pip install pm-remez --no-index --find-links dist --force-reinstall
python -c "import pm_remez"
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.platform.target }}
path: dist

windows:
runs-on: ${{ matrix.platform.runner }}
strategy:
fail-fast: false
matrix:
platform:
- runner: windows-latest
target: x64
# windows x86 gives a bunch of errors when linking liblax
# so it is disabled
# - runner: windows-latest
# target: x86
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
architecture: ${{ matrix.platform.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
# use intel-mkl-static when building on windows
args: --release --out dist --features intel-mkl-static,num-bigfloat,python
sccache: 'true'
- name: Install built wheel
run: |
pip install pm-remez --no-index --find-links dist --force-reinstall
python -c "import pm_remez"
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.platform.target }}
path: dist

macos:
runs-on: ${{ matrix.platform.runner }}
strategy:
fail-fast: false
matrix:
platform:
- runner: macos-latest
target: x86_64
- runner: macos-14
target: aarch64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist
sccache: 'true'
- name: Install built wheel
run: |
pip install pm-remez --no-index --find-links dist --force-reinstall
python -c "import pm_remez"
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.platform.target }}
path: dist

sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --out dist
- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: wheels-sdist
path: dist

release:
name: Release
runs-on: ubuntu-latest
if: "startsWith(github.ref, 'refs/tags/')"
needs: [linux, windows, macos, sdist]
steps:
- uses: actions/download-artifact@v4
- name: Publish to PyPI
uses: PyO3/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
with:
command: upload
args: --non-interactive --skip-existing wheels-*/*
51 changes: 51 additions & 0 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Rust

on:
push:
branches:
- main
- master
tags:
- '*'
pull_request:
workflow_dispatch:

env:
CARGO_TERM_COLOR: always

jobs:
build_test:
strategy:
fail-fast: false
matrix:
features: [openblas-system, openblas-static,
netlib-system, netlib-static,
intel-mkl-system, intel-mkl-static]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install OpenBLAS
if: matrix.features == 'openblas-system'
run: |
sudo apt-get update
sudo apt-get install libopenblas-dev
- name: Install libatlas
if: matrix.features == 'netlib-system'
run: |
sudo apt-get update
sudo apt-get install libatlas-base-dev
- name: Install Intel MKL
if: matrix.features == 'intel-mkl-system'
run: |
sudo apt-get update
sudo apt-get install intel-mkl
- name: Format
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --all-targets --features ${{ matrix.features }} -- -D warnings
- name: Doc
run: RUSTDOCFLAGS="-D warnings" cargo doc
- name: Build
run: cargo build --verbose --features ${{ matrix.features }}
- name: Run tests
run: cargo test --verbose --features ${{ matrix.features }}
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/dist
/target
/sphinx/build
*~
31 changes: 31 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the OS, Python version and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.12"
rust: "latest"

# Build documentation in the "docs/" directory with Sphinx
sphinx:
configuration: sphinx/source/conf.py

# Optionally build your docs in additional formats such as PDF and ePub
# formats:
# - pdf
# - epub

# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: sphinx/requirements.txt
- method: pip
path: .
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.1.0] - 2024-04-09

### Added

- First release of pm-remez.

[unreleased]: https://github.com/maia-sdr/pm-remez/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/maia-sdr/pm-remez/releases/tag/v0.1.0

0 comments on commit 39b251a

Please sign in to comment.