Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
0319f11
site: move each page's script into site/js/
mjthatch Nov 12, 2026
2bb1a11
site: one cost and security model in js/model.js
mjthatch Nov 12, 2026
075de2a
site: shared page helpers in js/ui.js, the distance in js/model.js
mjthatch Nov 12, 2026
ccf1b0a
stateless.html: bind the reset button once
mjthatch Nov 12, 2026
ec7a879
stateless.html: remove the in-browser fallback sweep
mjthatch Nov 12, 2026
ea14bcd
site: all styles in style.css with one set of colour tokens
mjthatch Nov 12, 2026
de573f7
site: comments by the writing guide, derivations in docs/model.md
mjthatch Nov 12, 2026
5534f87
model: remove the uncached hash convention
mjthatch Nov 13, 2026
0842d42
model: remove what nothing uses
mjthatch Nov 13, 2026
d5590ec
slhdsa-2to40.sage: load costs.sage without running its CLI
mjthatch Nov 13, 2026
a67a2de
model: one parameters file
mjthatch Nov 13, 2026
756f010
model: one sweep function for the CSV sweep and the export
mjthatch Nov 13, 2026
2d4a3cb
stateful.sage: read top to bottom, one code path for XMSS and XMSS-MT
mjthatch Nov 13, 2026
88e5ae8
model: comments by the writing guide, derivations in docs/model.md
mjthatch Nov 13, 2026
19c79e3
utils: comments by the writing guide
mjthatch Nov 13, 2026
c8e9012
fix the ci cache key
mjthatch Nov 13, 2026
b842854
repository: model/, scripts/, analysis/, third_party/ and reference/
mjthatch Nov 13, 2026
a266060
tests: one file per area, run by tests/run.py
mjthatch Nov 13, 2026
f25ae1e
ci: actions on Node 24 releases, no trigger for the stateful branch
mjthatch Nov 13, 2026
9495477
.gitignore: only the files this repository produces
mjthatch Nov 13, 2026
20521cb
README: the question, the links, how to run it and how the pieces con…
mjthatch Nov 13, 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
38 changes: 19 additions & 19 deletions .github/workflows/build_and_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ name: Build report and deploy site

on:
push:
branches: [main, stateful]
branches: [main]
tags: ['v*']
workflow_dispatch:

Expand All @@ -23,10 +23,10 @@ concurrency:

env:
GENERATED_PATHS: |
utils/all_size_capped_candidates.csv
utils/all_unbound_candidates.csv
utils/global_X_thresholds.csv
utils/master_extremes_summary.csv
analysis/all_size_capped_candidates.csv
analysis/all_unbound_candidates.csv
analysis/global_X_thresholds.csv
analysis/master_extremes_summary.csv
site/data.json
document/content/images/sieve_step*.png
document/content/images/concentric_diagram.png
Expand All @@ -44,14 +44,14 @@ jobs:
image: sagemath/sagemath:10.4 # pinned; bump deliberately and re-verify
options: --user root # image's default user cannot write the runner workspace
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Restore generated artifacts (keyed on generator sources)
id: cache
uses: actions/cache@v4
uses: actions/cache@v6
with:
path: ${{ env.GENERATED_PATHS }}
key: generated-v1-${{ hashFiles('costs.sage', 'security.sage', 'slhdsa-2to40.sage', 'stateful.sage', 'export_site_data.sage', 'octopus_pmf.py', 'utils/*.py', 'Makefile') }}
key: generated-v1-${{ hashFiles('model/*.sage', 'scripts/*.sage', 'third_party/*.py', 'analysis/*.py', 'Makefile', 'parameters.json') }}

- name: Generate (sweeps, derived tables, data.json, figures)
if: steps.cache.outputs.cache-hit != 'true'
Expand All @@ -65,7 +65,7 @@ jobs:
make sweeps derived data figures PYTHON="sage -python"

- name: Upload generated artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: generated
path: ${{ env.GENERATED_PATHS }}
Expand All @@ -77,22 +77,22 @@ jobs:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Place generated artifacts into the tree
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: generated

- uses: actions/setup-python@v5
- uses: actions/setup-python@v7
with:
python-version: '3.12'
- uses: actions/setup-node@v4
- uses: actions/setup-node@v7
with:
node-version: '22'

- name: Regression suite (generated artifacts required)
run: GENERATED_REQUIRED=1 python3 tests/test_regression.py
run: GENERATED_REQUIRED=1 python3 tests/run.py

- name: Compile report
uses: xu-cheng/latex-action@v3
Expand All @@ -104,20 +104,20 @@ jobs:
run: cp document/main.pdf site/report.pdf

- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
uses: actions/upload-pages-artifact@v5
with:
path: . # whole tree, preserving the /site/... URL structure

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@v5

- name: Attach data + report to release (tags only)
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@v3
with:
files: |
site/report.pdf
site/data.json
utils/all_size_capped_candidates.csv
utils/all_unbound_candidates.csv
analysis/all_size_capped_candidates.csv
analysis/all_unbound_candidates.csv
10 changes: 5 additions & 5 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,21 @@ name: tests

on:
push:
branches: [main, stateful]
branches: [main]
pull_request:

jobs:
regression:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: '3.12'
- uses: actions/setup-node@v4
- uses: actions/setup-node@v7
with:
node-version: '22'
- name: Synthesize generated artifacts from the reference model
run: python3 tests/synth_generated.py
- name: Run regression suite
run: GENERATED_REQUIRED=1 python3 tests/test_regression.py
run: GENERATED_REQUIRED=1 python3 tests/run.py
Loading
Loading