Skip to content

Public-readiness: pip-git install + MathJax docs + uv CI (fast/slow split) - #5

Merged
thisiscam merged 3 commits into
mainfrom
pip-git-installable
May 24, 2026
Merged

thisiscam merged 3 commits into
mainfrom
pip-git-installable

Conversation

@thisiscam

Copy link
Copy Markdown
Owner

Two commits.

1. pip install git+… now works

Previously plain pip ignored the [tool.uv] blocks and produced a broken install (stock oryx 0.2.9 + stable tfp collision → pytype_aval_mappings at import). Now:

  • oryx fork (thisiscam/oryx@copulaad_support) depends on tfp-nightly instead of stable tensorflow-probability (already pushed).
  • acopula deps: oryx → PEP 508 direct ref to that fork (pip + uv both honor it); jet-array → 0.1.0a2 (PyPI); dropped [tool.uv.sources] + the tfp override/constraint; hatch allow-direct-references = true.
  • README/docs: pip install git+https://github.com/thisiscam/acopula is now the primary install (uv for dev).

Verified in a clean venv: pip install resolves only tfp-nightly (no stable tfp), oryx from the fork, jet-array 0.1.0a2, and import acopula succeeds. uv path still imports.

Caveat: the git URL in [project.dependencies] makes the package un-uploadable to PyPI until a jax-0.8-compatible oryx ships upstream (swap the direct ref back to oryx>=<ver> then).

2. MathJax in docs

pymdownx.arithmatex (generic) + MathJax 3. Converted the API-visible math to LaTeX $...$ (Copula + generator, the four override hooks, F^{-1}/composition in quickstart/api) so it renders as math, not literal ^{(k)}. Docstrings made raw to protect TeX backslashes.

mkdocs build --strict clean; 22 arithmatex spans render.

thisiscam added 3 commits May 24, 2026 14:24
Plain `pip install git+<acopula>` previously succeeded but crashed at import:
pip ignores [tool.uv.sources]/[tool.uv] overrides, so it pulled stock oryx
0.2.9 (broken on jax 0.8) and stable tensorflow-probability alongside the
nightly (namespace collision -> pytype_aval_mappings).

- oryx: bare `oryx>=0.2.9` -> PEP 508 direct ref
  `oryx @ git+https://github.com/thisiscam/oryx.git@copulaad_support`
  (pip and uv both honor it). The fork now depends on tfp-nightly (not stable
  tensorflow-probability), so no stable tfp gets installed.
- jet-array: 0.1.0a1 (git) -> 0.1.0a2 (PyPI).
- Drop [tool.uv.sources] and the tfp override/constraint (superseded).
- hatch: allow-direct-references = true (required to build with the git dep).
- README / docs: `pip install git+...` is now the primary install; uv for dev.

Caveat: the git URL in [project.dependencies] makes the package
un-uploadable to PyPI until a jax-0.8-compatible oryx is published upstream.

Verified: clean-venv `pip install` resolves only tfp-nightly (no stable tfp),
oryx from the fork, jet-array 0.1.0a2; `import acopula` succeeds. uv path also
imports.
- mkdocs.yml: enable pymdownx.arithmatex (generic) + load MathJax 3 with a
  small config (docs/javascripts/mathjax.js, re-typesets on instant nav).
- Convert the API-visible math to LaTeX $...$ / $$...$$ so it renders as math
  instead of literal `^{(k)}` etc.: the Copula class + generator, the four
  generator-precision override hooks (core.py), and the F^{-1} / composition
  notation in quickstart.md and api.md. Docstrings made raw (r""") so the
  TeX backslashes aren't mangled as escapes.

mkdocs build --strict clean; 22 arithmatex spans render on the API page.
The full test suite exceeds GitHub's 6h job limit on 2-core runners (a few
deep-nesting / e2e-sampling / high-d tests dominate). Split it:

- Mark the ~12 heaviest tests `@pytest.mark.slow` (the 4 that exceed 90s plus
  the ~30s+ tier: test_mo_rosenblatt_e2e, test_simplex_3level::test_3level,
  test_bell_{four_sectors,3_layer_full_branching}, test_mo_rosenblatt_hybrid,
  test_nested_2level/3level). Register the `slow` marker in pyproject.
- test.yml: install with uv, run `-m "not slow" -n auto` (fast PR gate;
  ~40s here, ~7-8min on 2-core CI). Drop the 3.10 matrix entry.
- test-full.yml: nightly (+ workflow_dispatch) full suite via `-n auto`.
- test extra: add pytest-xdist.

Verified locally: fast gate 65 passed / 2 xfailed; `-m slow` selects 12.
@thisiscam thisiscam changed the title pip-git-installable + MathJax in docs Public-readiness: pip-git install + MathJax docs + uv CI (fast/slow split) May 24, 2026
@thisiscam
thisiscam merged commit d9ae001 into main May 24, 2026
2 checks passed
@thisiscam
thisiscam deleted the pip-git-installable branch May 24, 2026 20:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant