Skip to content

Commit

Permalink
Merge pull request #128 from davidbrochart/v0.5.9
Browse files Browse the repository at this point in the history
0.5.9
  • Loading branch information
davidbrochart authored Feb 21, 2023
2 parents f6ccd79 + 1fd29c2 commit 09345f0
Show file tree
Hide file tree
Showing 6 changed files with 128 additions and 50 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ jobs:
shell: bash -l {0}
steps:
- name: Checkout Repository
uses: actions/checkout@v2
uses: actions/checkout@v3

- name: Install Python
uses: conda-incubator/setup-miniconda@v2
- name: Install micromamba
uses: mamba-org/provision-with-micromamba@main
with:
mamba-version: "*"
channels: conda-forge
python-version: ${{ matrix.python-version }}
environment-file: environment-dev.yml
environment-name: ypy
extra-specs: python=${{ matrix.python-version }}

- name: Install Rust
uses: actions-rs/toolchain@v1
Expand Down
128 changes: 90 additions & 38 deletions .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ name: Build and Release
on:
release:
types: [published]
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand All @@ -14,30 +15,31 @@ env:
jobs:
macos:
runs-on: macos-latest
strategy:
matrix:
python-version: ["3.7", "3.11"]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
python-version: '3.11'
architecture: x64
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
default: true
- uses: dtolnay/rust-toolchain@stable
- name: Build wheels - x86_64
uses: messense/maturin-action@v1
uses: PyO3/maturin-action@v1
with:
target: x86_64
args: --release --out dist --sdist --find-interpreter
args: --release --out dist --sdist -i 3.7 3.8 3.9 3.10 3.11 pypy3.8 pypy3.9
- name: Test built wheel - x86_64
run: |
pip install y-py --no-index --find-links dist --force-reinstall
pip install pytest
pytest
- name: Build wheels - universal2
uses: messense/maturin-action@v1
uses: PyO3/maturin-action@v1
with:
args: --release --universal2 --out dist --find-interpreter
args: --release --universal2 --out dist -i 3.8 3.9 3.10 3.11 pypy3.8 pypy3.9
- name: Test built wheel - universal2
run: |
pip install y-py --no-index --find-links dist --force-reinstall
pytest
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
Expand All @@ -46,27 +48,31 @@ jobs:

windows:
runs-on: windows-latest
name: windows (${{ matrix.platform.target }})
strategy:
matrix:
target: [x64, x86]
python-version: ["3.7", "3.11"]
platform:
- target: x64
interpreter: 3.7 3.8 3.9 3.10 3.11
- target: x86
interpreter: 3.7 3.8 3.9 3.10 3.11
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.target }}
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
toolchain: stable
profile: minimal
default: true
python-version: '3.11'
architecture: ${{ matrix.platform.target }}
- uses: dtolnay/rust-toolchain@stable
- name: Build wheels
uses: messense/maturin-action@v1
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
target: ${{ matrix.platform.target }}
args: --release --out dist -i ${{ matrix.platform.interpreter }}
- name: Test built wheel
run: |
pip install y-py --no-index --find-links dist --force-reinstall
pip install pytest
pytest
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
Expand All @@ -78,27 +84,72 @@ jobs:
strategy:
matrix:
target: [x86_64, i686]
python-version: ["3.7", "3.11"]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
python-version: '3.11'
architecture: x64
- name: Build wheels
uses: messense/maturin-action@v1
uses: PyO3/maturin-action@v1
with:
rust-toolchain: stable
target: ${{ matrix.target }}
manylinux: auto
args: --release --out dist --find-interpreter
args: --release --out dist -i 3.7 3.8 3.9 3.10 3.11 pypy3.8 pypy3.9
- name: Test built wheel
if: matrix.target == 'x86_64'
run: |
pip install y-py --no-index --find-links dist --force-reinstall
pip install pytest
pytest
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist

wasm:
linux-cross:
runs-on: ubuntu-latest
strategy:
matrix:
target: [aarch64, armv7, s390x, ppc64le]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
rust-toolchain: stable
target: ${{ matrix.target }}
manylinux: auto
args: --release --out dist -i 3.7 3.8 3.9 3.10 3.11 pypy3.8 pypy3.9

- uses: uraimo/[email protected]
if: matrix.target != 'ppc64'
name: Test built wheel
with:
arch: ${{ matrix.target }}
distro: ubuntu20.04
githubToken: ${{ github.token }}
install: |
apt-get update
apt-get install -y --no-install-recommends python3 python3-pip
pip3 install -U pip pytest
run: |
pip3 install y-py --no-index --find-links dist/ --force-reinstall
pytest
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist

wasm:
runs-on: ubuntu-20.04
# Pyodide began supporting `micropip.install` from emscripten-compiled binary wheels
# in Pyodide 0.21.0 (Aug 2022), so no need to build wheels for versions before then.
# As of Nov 2022, the matrix for emscripten/python versions since then is simple.
Expand Down Expand Up @@ -147,6 +198,7 @@ jobs:
- macos
- windows
- linux
- linux-cross
if: startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/download-artifact@v2
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "y-py"
version = "0.5.5"
version = "0.5.9"
rust-version = "1.58"
edition = "2018"

Expand Down
5 changes: 5 additions & 0 deletions environment-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
name: ypy
channels:
- conda-forge
dependencies:
- pip
29 changes: 24 additions & 5 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,22 +1,41 @@
[build-system]
requires = ["maturin>=0.13,<0.14"]
requires = ["maturin>=0.14,<0.15"]
build-backend = "maturin"

[project]
name = "y-py"
version = "0.5.5"
description = "Python bindings for the Y-CRDT built from yrs (Rust)"
license = { file = "LICENSE" }
authors = [
{ name = "John Waidhofer", email = "[email protected]" },
{ name = "Kevin Jahns", email = "[email protected]" },
{ name = "Pierre-Olivier Simonard", email = "[email protected]" }
]
readme = "README.md"
homepage = "https://github.com/y-crdt/ypy"
repository = "https://github.com/y-crdt/ypy"
keywords = [
"crdt",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Rust",
]

[project.urls]
Homepage = "https://github.com/y-crdt/ypy"
Source = "https://github.com/y-crdt/ypy"
Issues = "https://github.com/y-crdt/ypy/issues"
Pypi = "https://pypi.org/project/y-py"

[tool.hatch.envs.test]
dependencies = ["pytest", "maturin"]

[[tool.hatch.envs.test.matrix]]
python = ["37", "38", "39", "310", "311"]
python = ["37", "38", "39", "310", "311"]
2 changes: 2 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ use crate::y_doc::*;
/// Python bindings for Y.rs
#[pymodule]
pub fn y_py(_py: Python, m: &PyModule) -> PyResult<()> {
m.add("__version__", env!("CARGO_PKG_VERSION"))?;

// Data Types
m.add_class::<y_doc::YDoc>()?;
m.add_class::<y_transaction::YTransaction>()?;
Expand Down

0 comments on commit 09345f0

Please sign in to comment.