Changelog

A record of notable changes to ProjectUSC.org.

Notable changes to ProjectUSC.org. Versions follow CalVer (`YYYY.MM.DD`).

The published page lives at <https://projectusc.org/changelog/>.

2026.04.27 (2026-04-27)

Changed

  • Refreshed USC data from OLRC release point **119-84** (was 119-73). 60,414 sections across 53 titles.

Infrastructure

  • Migrated this repo and `data-usc` from Fossil to Git, hosted at <https://source.inkdt.net/projectusc/>.
  • `/changelog/` is now rendered from a hand-curated `CHANGELOG.md` (Keep-a-Changelog style) instead of being generated from Fossil tags + tickets.
  • Issue tracking moved to Forgejo at <https://source.inkdt.net/projectusc/website/issues>.

2026.04.17 (2026-04-17)

Added

  • Privacy-respecting analytics (Umami) on every page; configurable via `UMAMI_URL` / `UMAMI_WEBSITE_ID` env vars.
  • SVG favicon (navy section mark on stone).
  • SEO foundations: canonical URLs, meta description, OpenGraph, Twitter Card, and `meta name=author` on every page.
  • schema.org JSON-LD: `BreadcrumbList` site-wide, `Legislation` on USC section pages, `WebSite` with `SearchAction` on the homepage.
  • `SITE_URL` env var to override the canonical origin for staging builds.
  • Auto-generated `/changelog/` page.

Changed

  • Refactored `scripts/common.py` into a `scripts/common/` package: `text`, `data`, `nodes`, `layouts`, `types`. Existing import surface preserved.
  • Unified the content-node renderer between USC and Constitution builders behind `common.render_content_nodes(nodes, opts)`.
  • USC module now owns every page under `/usc/` (index, stats, sections-index JSON); `build_site.py` no longer reaches into `../data-usc/`.
  • `build_citations.py` is now part of the main pipeline; reverse citation index ships with each build.
  • `build_site.py` invokes Pagefind automatically; pass `--no-pagefind` to skip the ~2-minute search-index step.

Infrastructure

  • 79-test stdlib `unittest` suite covering `common.text`, `common.nodes`, `common.layouts`, and the changelog renderer.
  • TypedDict contracts in `common/types.py` for `meta.json` shapes; mypy-clean on `common/`.
  • `SIMPLE_SEC_RE` deduplicated into `common`.

2026.04.09 (2026-04-09)

Added

  • Initial release: free, searchable text of all 54 United States Code titles (60K+ sections) and the U.S. Constitution.
  • Citation-aware search with aliases, popular names, and section-heading matches.
  • Section outline, cross-reference previews, cited-by index, keyboard navigation.
  • Localized in-page search, reading progress bar, copy-link anchors.
  • CalVer versioning (`YYYY.MM.DD`).