Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
d57db5c
Stage 0: clean slate for v3 rewrite
gefanyang May 12, 2026
a115e41
Stage 1: introduce hyperiax.core (Topology, Schema, Tree)
gefanyang May 12, 2026
4599954
Stage 2: equal-degree up-sweep with @hx.up decorator
gefanyang May 12, 2026
678c3e4
Stage 3: down-sweep with @hx.down decorator and Parent view
gefanyang May 12, 2026
26600a3
Stage 4: unequal-degree up-sweep via ChildrenAxis proxy
gefanyang May 12, 2026
953fca5
Stage 5: regression tests for jit + lax.scan + grad
gefanyang May 12, 2026
0db5bcc
Stage 6: io.newick via ete3 (optional extra)
gefanyang May 12, 2026
a124bab
Stage 7: prebuilt.phylo_mean
gefanyang May 12, 2026
319b366
Stage 8: prebuilt.sde + bffg_gaussian (MVP scope)
gefanyang May 12, 2026
a8aaacd
Stage 9: prebuilt.shape_kernels + lddmm
gefanyang May 12, 2026
ba4e97a
Stage 10: CI import-linter + workflow modernization
gefanyang May 12, 2026
f7b45f4
prebuilt.bffg_sde: closed-form SDE BFFG up + conditional/unconditiona…
gefanyang May 12, 2026
d1d94c5
Complete deferred BFFG: ODE-integrated path + gaussian_down_conditional
gefanyang May 12, 2026
ed79994
bffg_sde: replace jax.experimental.ode.odeint with diffrax
gefanyang May 12, 2026
557da57
update example notebooks
gefanyang May 13, 2026
25c9650
bffg_gaussian: align gaussian_down_conditional logw with Theorem 14
gefanyang May 15, 2026
58c7fa4
05_gaussian_mcmc: rewrite around BFFG-guided MCMC + analytic verifica…
gefanyang May 15, 2026
be1bfa6
06_gaussian_mle: MLE via EM-style score estimator through a different…
gefanyang May 15, 2026
96a7009
Minor fixes
gefanyang May 15, 2026
a6cebd1
Clean up and fix bugs before compiling the docs
gefanyang May 15, 2026
ed7c2c8
v3 cleanup: prebuilt consolidation + docs scaffold
gefanyang May 16, 2026
5b49d7a
release prep: consolidate extras, add ruff/pre-commit, docs CI
gefanyang May 16, 2026
4e8126c
release prep: pip/conda install paths, docs fix, bffg refactor
gefanyang May 20, 2026
5489a64
v3 release prep: dispatch unification, BFFG refit, prebuilt + tests c…
gefanyang May 29, 2026
fd716df
docs: bffg docstrings, refine_anchor in API ref, 07_sde notebook rename
gefanyang May 29, 2026
dda9490
fix: drop duplicate uppercase Makefile index entry
gefanyang May 29, 2026
de195a1
merge upstream main into v3
gefanyang May 31, 2026
5c00075
ci: pin docs build version for v3 PRs
gefanyang May 31, 2026
be9c3cf
docs: refresh README and publish workflow
gefanyang May 31, 2026
79c0e02
ci: keep PyPI publish manual and release-only
gefanyang May 31, 2026
12d14e2
include agent files
gefanyang Jun 1, 2026
d68e0cf
update shape notebook into Kunita flows, add float64 precision support
gefanyang Jun 2, 2026
ad2b47e
update docs and tutorial notebooks for the lastest v3 APIs
gefanyang Jun 2, 2026
4bd6b01
remove a redundent surface test
gefanyang Jun 2, 2026
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
Binary file removed .DS_Store
Binary file not shown.
56 changes: 0 additions & 56 deletions .github/workflows/build_docs.yaml

This file was deleted.

68 changes: 68 additions & 0 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Docs

on:
push:
branches: [main, v3]
pull_request:
branches: [main, v3]
workflow_dispatch:

# Allow one concurrent deployment; cancel in-progress runs on the same ref.
concurrency:
group: pages-${{ github.ref }}
cancel-in-progress: false

permissions:
contents: read

jobs:
build:
name: Sphinx build (strict)
runs-on: ubuntu-latest
env:
# PR merge refs see upstream's legacy non-v tags but not the fork's v3 tag.
SETUPTOOLS_SCM_PRETEND_VERSION_FOR_HYPERIAX: "3.0.0"

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
# setuptools-scm needs the full history + tags to derive __version__
fetch-depth: 0

- name: Install uv
uses: astral-sh/setup-uv@v4
with:
enable-cache: true

- name: Sync project (core runtime + dev group)
run: uv sync --group dev

- name: Build HTML (warnings as errors)
run: uv run make -C docs html SPHINXOPTS=-W

- name: Upload Pages artifact
# Only the deployable ref needs to upload; PRs just verify the build.
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/v3'
uses: actions/upload-pages-artifact@v3
with:
path: docs/build/html

deploy:
name: Deploy to GitHub Pages
needs: build
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/v3'
runs-on: ubuntu-latest

environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from this workflow

steps:
- name: Deploy
id: deployment
uses: actions/deploy-pages@v4
73 changes: 35 additions & 38 deletions .github/workflows/pypi_push.yaml
Original file line number Diff line number Diff line change
@@ -1,38 +1,35 @@
name: Publish Package

on:
release:
types: [published]

permissions:
contents: read


jobs:
pypi-publish:
name: Upload release to PyPI
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/hyperiax
permissions:
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
steps:
# retrieve your distributions here
- name: Setup python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Setup setuptools_scm
run: pip install setuptools_scm
- name: Checkout the repository
uses: actions/checkout@v2
- name: Build package
run: python setup.py sdist
# working-directory: ./app


- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}
name: Publish Package

on:
release:
types: [published]
workflow_dispatch:

permissions:
contents: read

jobs:
pypi-publish:
name: Build and publish to PyPI
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/hyperiax
permissions:
id-token: write # required for PyPI trusted publishing
contents: read

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # setuptools-scm needs the full history for the version tag

- name: Install uv
uses: astral-sh/setup-uv@v4

- name: Build sdist + wheel
run: uv build

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
35 changes: 16 additions & 19 deletions .github/workflows/pytest.yaml
Original file line number Diff line number Diff line change
@@ -1,30 +1,27 @@
name: Pytest on Pull Request
name: Test

on:
push:
branches:
- main
branches: [main, v3]
pull_request:
branches:
- main
branches: [main, v3]

jobs:
test:
name: Run Pytest
name: pytest (uv, Python 3.11)
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v4
with:
python-version: 3.11

- name: Install dependencies
run: |
pip install .[dev]

- name: Run Pytest
run: make test
enable-cache: true

- name: Sync project (core runtime + dev group)
run: uv sync --group dev

- name: Run tests
run: uv run pytest
18 changes: 14 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ instance/

# Sphinx documentation
docs/_build/
docs/build/
docs/source/api/generated/

# PyBuilder
.pybuilder/
Expand Down Expand Up @@ -168,14 +170,22 @@ cython_debug/
#.idea/

legacy/
# docs/
data/
todo
changelog
# generated on build server
# generated by setuptools-scm on build
*_version.py
examples/example_data
*test.ipynb
*.cpp
.vscode/
.Rproj.user

# OS
.DS_Store

# Note: uv.lock IS committed (do not ignore) — needed for reproducible installs.

.claude/
.ruff_cache/

# Throwaway profiling scratchpad outputs.
/profiling/traces/
27 changes: 27 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Hyperiax pre-commit hooks.
#
# Install once per clone:
# uv run pre-commit install
# Run on all files:
# uv run pre-commit run --all-files

repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.13
hooks:
- id: ruff-check
args: [--fix]
- id: ruff-format

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: trailing-whitespace
exclude: ^(docs/build/|docs/source/notebooks/)
- id: end-of-file-fixer
exclude: ^(docs/build/|docs/source/notebooks/|hyperiax/_version\.py$)
- id: check-yaml
- id: check-toml
- id: check-merge-conflict
- id: check-added-large-files
args: [--maxkb=500]
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.11
Loading
Loading