Skip to content

Commit a17756e

Browse files
committed
Prepare v2.1.0 documentation and enforce executable release checks
1 parent 6a13e55 commit a17756e

7 files changed

Lines changed: 57 additions & 30 deletions

File tree

‎.github/workflows/docs-release.yml‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,16 @@ jobs:
5757
run: |
5858
PYTHONPATH=submodules/httk-core/src python -m httk.core.docs ecosystem-manifest --submodules-dir submodules --verify docs/ecosystem.json --require-release-tags
5959
- name: Verify aggregate source topology
60-
run: python scripts/verify_topology.py
60+
run: |
61+
python scripts/verify_topology.py
62+
python scripts/check_lock_members.py
6163
- name: Check release version
6264
run: |
6365
PYTHONPATH=submodules/httk-core/src python -m httk.core.docs check-release --tag "$GITHUB_REF_NAME"
66+
- name: Execute first-use examples
67+
run: make first-use-check
6468
- name: Build release docs
65-
run: HTTK_DOCS_VERSION="$GITHUB_REF_NAME" HTTK_DOCS_BASE_URL=https://docs.httk.org make docs
69+
run: HTTK_DOCS_VERSION="$GITHUB_REF_NAME" HTTK_DOCS_BASE_URL=https://docs.httk.org make docs-full
6670
- name: Compose and publish release docs-site
6771
env:
6872
SOURCE_COMMIT: ${{ github.sha }}

‎.github/workflows/docs-repair.yml‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,20 @@ jobs:
5050
pip check
5151
PYTHONPATH=submodules/httk-core/src python -m httk.core.docs ecosystem-manifest --submodules-dir submodules --verify docs/ecosystem.json --require-release-tags
5252
- name: Verify aggregate source topology
53-
run: python scripts/verify_topology.py
53+
run: |
54+
python scripts/verify_topology.py
55+
python scripts/check_lock_members.py
5456
- name: Check release version
5557
env:
5658
RELEASE_TAG: ${{ inputs.version }}
5759
run: |
5860
PYTHONPATH=submodules/httk-core/src python -m httk.core.docs check-release --tag "$RELEASE_TAG"
61+
- name: Execute first-use examples
62+
run: make first-use-check
5963
- name: Build repaired release docs
6064
env:
6165
RELEASE_TAG: ${{ inputs.version }}
62-
run: HTTK_DOCS_VERSION="$RELEASE_TAG" HTTK_DOCS_BASE_URL=https://docs.httk.org make docs
66+
run: HTTK_DOCS_VERSION="$RELEASE_TAG" HTTK_DOCS_BASE_URL=https://docs.httk.org make docs-full
6367
- name: Compose and publish repaired docs-site
6468
env:
6569
RELEASE_TAG: ${{ inputs.version }}

‎Makefile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ docs-live:
1818
docs-clean:
1919
rm -rf docs/_build docs/reference/autoapi docs/_generated
2020

21-
# The aggregate has no internal dependency pins: all seven module checkouts are
21+
# The aggregate has no internal dependency pins: all six module checkouts are
2222
# installed separately, while this lock contains only external docs requirements.
2323
docs-lock:
2424
$(PYTHON) -m httk.core.docs lock .

‎RELEASING.md‎

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
The top-site release is an ecosystem snapshot. First release each runtime module
44
and make sure its exact release tag is available. In this repository, update all
5-
seven submodule pointers to those tags, then run and commit both generated
5+
six submodule pointers to those tags, then run and commit both generated
66
inputs:
77

88
```console
@@ -21,6 +21,21 @@ lock headers, verifies `docs/ecosystem.json` against the pinned release-tagged
2121
submodules, builds the aggregate docs, and publishes the immutable release
2222
directory.
2323

24+
For the shared **v2.1.0** release, publish packages and their versioned docs in
25+
dependency order: *httk-core* first; then *httk-atomistic*, *httk-store*, and
26+
*httk-workflow*; then *httk-analyse* and *httk-serve*. Before tagging each
27+
dependent module, refresh its committed inventories from the already published
28+
dependency release docs with `make docs-inventories`, and run
29+
`python -m httk.core.docs check-release --tag v2.1.0` and `make docs-lock-check`.
30+
Locally built wheels can verify a candidate installation, but do not satisfy
31+
these public-index and published-inventory prerequisites.
32+
33+
Once the six modules are released, pin this site's submodules to their exact
34+
`v2.1.0` tags and regenerate the manifest. Release the aggregate documentation,
35+
the *httk-web.github.io* website, and the refreshed *agent-httk-skill* packages
36+
against that snapshot. The website's package dependency also requires
37+
*httk-serve* 2.1.0 to be available first.
38+
2439
If a published release needs a known repair, use the approval-gated repair
2540
workflow. It replaces only the explicitly selected release tree and leaves
2641
other release snapshots untouched.

‎docs/conf.py‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@
9191
# example incompatible with the httk-core / httk-atomistic APIs fails the build;
9292
# cache successful execution results under docs/_build so docs-clean removes them.
9393
nb_execution_mode = "cache"
94+
nb_execution_raise_on_error = True
9495
nb_execution_cache_path = os.path.join(_project_root, "docs", "_build", ".jupyter_cache")
9596
# Cells default to myst-nb's 30 s timeout, which sits too close to the legitimate
9697
# runtime of the heavier example notebooks under machine load; the timeout's job
@@ -223,7 +224,7 @@
223224
# after merging the modules' inventories. The installed Sphinx tags missing
224225
# Python references by their distinct role subtypes (ref.class, ref.meth,
225226
# ref.func, ref.exc, and ref.attr), so those nitpicky warnings remain fatal.
226-
suppress_warnings = ["myst.xref_missing", "autoapi.python_import_resolution", "ref.python", "mystnb"]
227+
suppress_warnings = ["myst.xref_missing", "autoapi.python_import_resolution", "ref.python"]
227228

228229

229230
# Workflow-specific rules omit internal modules and resolve public bare-name

‎docs/requirements.lock‎

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,49 @@
11
# httk-docs-lock-schema: 1
2-
# input-hash: sha256:c1c59fe5797f9e510568783440cea0eba55fe864ec975986c3db9f2271c1b1c8
2+
# input-hash: sha256:00e11a7fac9f7a84d71bb8cdf94e1dae1c91f625784673991be46a3e25856f45
33
# python: 3.12
44
# platform: linux
55
accessible-pygments==0.0.5
66
alabaster==1.0.0
7-
anyio==4.14.2
7+
anyio==4.15.1
88
ase==3.29.0
9-
astroid==4.3.0
9+
astroid==4.3.1
1010
asttokens==3.0.2
1111
attrs==26.1.0
1212
babel==2.18.0
1313
beautifulsoup4==4.15.0
1414
certifi==2026.7.22
1515
cffi==2.1.1
1616
charset-normalizer==3.5.1
17-
click==8.4.2
17+
click==8.5.0
1818
comm==0.2.3
1919
contourpy==1.3.3
20-
cryptography==50.0.0
20+
cryptography==50.0.1
2121
cycler==0.12.1
2222
debugpy==1.8.21
2323
docutils==0.22.4
2424
executing==2.2.1
2525
fastjsonschema==2.22.2
26-
fonttools==4.63.0
26+
fonttools==4.64.0
2727
furo==2025.12.19
2828
greenlet==3.5.5
2929
h11==0.16.0
30+
highspy==1.15.1
3031
httpcore==1.0.9
3132
httpx==0.28.1
32-
idna==3.18
33-
imagesize==2.0.0
34-
importlib-metadata==9.0.0
33+
idna==3.19
34+
imagesize==2.0.1
35+
importlib-metadata==9.0.1
3536
ipykernel==7.3.0
36-
ipython==9.16.1
37+
ipython==9.17.1
3738
ipython-pygments-lexers==1.1.1
3839
jedi==0.20.0
3940
jinja2==3.1.6
4041
jsonschema==4.26.0
4142
jsonschema-specifications==2025.9.1
4243
jupyter-cache==1.0.1
43-
jupyter-client==8.9.1
44+
jupyter-client==8.10.0
4445
jupyter-core==5.9.1
45-
kiwisolver==1.5.0
46+
kiwisolver==1.5.1
4647
markdown==3.10.3
4748
markdown-it-py==4.2.0
4849
markupsafe==3.0.3
@@ -53,38 +54,38 @@ mdurl==0.1.2
5354
myst-nb==1.4.0
5455
myst-parser==5.1.0
5556
nbclient==0.11.0
56-
nbformat==5.11.0
57+
nbformat==5.11.1
5758
nest-asyncio2==1.7.2
58-
numpy==2.5.2
59+
numpy==2.5.3
5960
packaging==26.3
6061
parso==0.8.7
6162
pexpect==4.9.0
6263
pillow==12.3.0
63-
platformdirs==4.11.3
64+
platformdirs==4.11.7
6465
prompt-toolkit==3.0.53
6566
psutil==7.2.2
6667
ptyprocess==0.7.0
6768
pure-eval==0.2.3
6869
pycparser==3.0
69-
pygments==2.20.0
70+
pygments==2.21.0
7071
pyparsing==3.3.2
7172
python-dateutil==2.9.0.post0
7273
python-multipart==0.0.32
7374
pyyaml==6.0.3
74-
pyzmq==27.1.0
75+
pyzmq==27.2.0
7576
referencing==0.37.0
7677
requests==2.34.2
7778
roman-numerals==4.1.0
7879
rpds-py==2026.6.3
79-
scipy==1.18.0
80+
scipy==1.18.1
8081
setuptools==84.0.0
8182
six==1.17.0
8283
snowballstemmer==3.1.1
8384
soupsieve==2.9.2
8485
spglib==2.7.0
8586
sphinx==9.1.0
86-
sphinx-autoapi==3.8.0
87-
sphinx-autodoc-typehints==3.13.2
87+
sphinx-autoapi==3.8.1
88+
sphinx-autodoc-typehints==3.13.5
8889
sphinx-basic-ng==1.0.0b2
8990
sphinx-copybutton==0.5.2
9091
sphinxcontrib-applehelp==2.0.0
@@ -101,7 +102,7 @@ tornado==6.5.8
101102
traitlets==5.16.1
102103
typing-extensions==4.16.0
103104
urllib3==2.7.0
104-
uvicorn==0.52.3
105-
wcwidth==0.8.2
105+
uvicorn==0.52.4
106+
wcwidth==0.8.3
106107
wheel==0.48.0
107108
zipp==4.1.0

‎pyproject.toml‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "httk.github.io"
7-
version = "2.0.0"
7+
version = "2.1.0"
88
description = "httk2 docs website"
99
readme = "README.md"
1010
requires-python = ">=3.12"
@@ -45,6 +45,8 @@ docs = [
4545
"numpy>=1.26",
4646
# httk-analyse runtime
4747
"matplotlib",
48+
# httk-analyse[default] -> [highs]
49+
"highspy>=1.15.1,<2",
4850
# httk-core[default]
4951
"cryptography>=42",
5052
# httk-atomistic[default]

0 commit comments

Comments
 (0)