Reproduce
How to rebuild the cartography map and docs from this repository, verify
provenance, and run the go-live / DOI release. Everything below is $0 and
local except the final maintainer release step.
The map you see at …/cartography/map/ is a static, self-contained artifact
checked into the docs site. Rebuilding it regenerates that artifact from the
derived tables under V2/data_v2/.
!!! note "Local environment note"
On macOS the build needs KMP_DUPLICATE_LIB_OK=TRUE in the environment to
avoid an OpenMP duplicate-runtime abort (torch + duckdb). It is included in
the commands below.
1. Rebuild the map
This regenerates the map HTML and publishes the docs copy in one step
(--publish-to writes the identical HTML to docs/cartography/map/index.html,
alongside its .run.json provenance sidecar):
KMP_DUPLICATE_LIB_OK=TRUE .venv/bin/python V2/scripts/build_map.py --data-version v2 --publish-to docs/cartography/map
--data-version v2builds the 78-journal expansion map (the published cartography). The defaultv1builds the frozen 10-journal prove-phase map.--publish-to docs/cartography/mapwrites the page the docs site serves.
2. Run the tests
KMP_DUPLICATE_LIB_OK=TRUE uv run pytest tests/ -q
3. Build the docs (what CI / GitHub Pages runs)
uv sync --group docs && uv run mkdocs build --strict
This is the exact build the live Pages deploy runs. It must exit 0. The
mkdocs-material output prints a red "mkdocs 2.0" announcement banner — that is
not an error; only a non-zero exit or a WARNING/ERROR about a page or
link is a real failure.
4. Verify provenance (sidecars)
Every derived artifact ships a machine-readable provenance sidecar next to it,
named <file>.run.json. Each sidecar records:
git_sha/git_dirty— the repo commit the artifact was built from;input_hashes— content hashes of the upstream inputs (detects input drift);config/config_hash— the parameters the artifact was built with;software_versionsand a UTCtimestamp.
The published map carries its own sidecar at
docs/cartography/map/index.html.run.json, and every table under
V2/data_v2/** has a <table>.parquet.run.json. Treat the sidecar — not the
prose — as the authoritative reproducibility record. The per-table schema is in
the Data dictionary.
The full upstream pipeline that produces those tables (harvest → enrich →
embed → cluster → cartography) is documented on GitHub under
V2/docs/cartography/
(charter, validation protocol, and the per-layer findings write-ups).
5. Data deposit
The derived cartography tables (~1.7 MB) ship in the repository under
V2/data_v2/ and are catalogued in the
Data dictionary. The raw 1.49M-paper corpus is
not redistributed — it is reproducible-from-pipeline (see the upstream
pipeline docs linked above and the repository README.md).
6. Go-live & DOI handoff runbook
The release is a one-button maintainer action on top of an automated pipeline:
- Push
main. Pushing tomaindeploys the docs site, making GitHub Pages live (this cartography section included). - Tag + draft release (automated). An annotated tag
v0.2.0and a draft GitHub Release are created for that commit. - Maintainer publishes the draft Release (the one-click action). Publishing the Release triggers Zenodo, which auto-archives the tagged source and mints the DOI.
- Backfill the DOI. Once minted, add the DOI to:
- the README badge (replace the
ZENODO_DOIplaceholder), and - the Zenodo record / the citation block on the Overview and Data dictionary pages.
!!! warning "Do not cite a DOI before it is minted" The DOI does not exist until the maintainer publishes the draft Release in step 3. The README badge and the in-docs citation blocks intentionally carry a clearly-marked TODO placeholder until then — do not fabricate or cite a DOI before step 3 completes.