Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions .github/workflows/python-wheels.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@ jobs:
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, macos-15-intel, windows-latest]
include:
- os: ubuntu-latest
manylinux: quay.io/pypa/manylinux_2_28_x86_64:latest
- os: ubuntu-24.04-arm
manylinux: quay.io/pypa/manylinux_2_28_aarch64:latest

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -44,7 +49,7 @@ jobs:
command: build
args: --release --manifest-path gen-python/Cargo.toml --features abi3,extension-module --interpreter python3.11 --out gen-python/target/wheels
manylinux: auto
container: quay.io/pypa/manylinux_2_28_x86_64:latest
container: ${{ matrix.manylinux }}
before-script-linux: |
yum install -y epel-release
yum install -y clang llvm-devel sqlite-devel capnproto capnproto-devel pkgconfig mold
Expand Down Expand Up @@ -121,7 +126,7 @@ jobs:
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, macos-15-intel, windows-latest]
python-version: ["3.12", "3.13", "3.14"]

steps:
Expand Down
26 changes: 25 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,33 @@ jobs:
gh release upload "$RELEASE_NAME" gen.linux-x86_64.zip --clobber
gh release upload "$RELEASE_NAME" gen.linux-arm64.zip --clobber

release-windows:
runs-on: windows-latest
permissions:
actions: write
contents: write

steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Install Dependencies
run: choco install capnproto
- name: Build
run: cargo build --release --locked --bin gen
- name: Ensure release exists
shell: bash
run: |
gh release view "$RELEASE_NAME" >/dev/null 2>&1 || gh release create "$RELEASE_NAME" --notes "" || gh release view "$RELEASE_NAME"
- name: upload-binary
shell: pwsh
run: |
$ErrorActionPreference = 'Stop'
Compress-Archive -Path target/release/gen.exe -DestinationPath gen.windows-x86_64.zip
gh release upload "$env:RELEASE_NAME" gen.windows-x86_64.zip --clobber

update-release-source:
runs-on: ubuntu-latest
needs: [release-macos, release-ubuntu]
needs: [release-macos, release-ubuntu, release-windows]
permissions:
actions: write
contents: write
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ It is also available from crates.io:
cargo install gen
```

Prebuilt binaries and installers are available on the [releases page](https://github.com/genhub-bio/gen/releases) for [macOS](https://github.com/genhub-bio/gen/releases/download/nightly/gen.macos.pkg) and Linux ([x64](https://github.com/genhub-bio/gen/releases/download/nightly/gen.linux-x86_64.zip) / [arm64](https://github.com/genhub-bio/gen/releases/download/nightly/gen.linux-arm64.zip)). Gen is built primarily for Unix-like systems; on Windows, you can install [WSL](https://learn.microsoft.com/en-us/windows/wsl/) to get a Linux environment, then use the Linux binary above from inside it.
Prebuilt binaries and installers are available on the [releases page](https://github.com/genhub-bio/gen/releases) for [macOS](https://github.com/genhub-bio/gen/releases/download/nightly/gen.macos.pkg), Linux ([x64](https://github.com/genhub-bio/gen/releases/download/nightly/gen.linux-x86_64.zip) / [arm64](https://github.com/genhub-bio/gen/releases/download/nightly/gen.linux-arm64.zip)), and [Windows](https://github.com/genhub-bio/gen/releases/download/nightly/gen.windows-x86_64.zip).

**Python package**: Installing Gen with pip also installs the Python package. Install the `jupyter` extra to include an interactive graph widget for Jupyter and other anywidget-compatible notebooks:

Expand Down
Loading