Skip to content

docs: migrate to the tprocv2-era documentation tree - #430

Merged
meeg merged 25 commits into
mainfrom
docs-migration-tprocv2
Sep 12, 2026
Merged

meeg merged 25 commits into
mainfrom
docs-migration-tprocv2

Conversation

@lharnaldi

Copy link
Copy Markdown
Contributor

Summary

Replaces the pre-tprocv2 flat docs/ tree (tProc v1 + SG-v4 era) with the
restructured docs/source/ tree developed and audited in
openquantumhardware/qick_internal, branch fix-tprocv2-trm-docs.

  • Full tProc v2 reference manual (tprocv2_trm.rst) plus a dedicated legacy
    tProc v1 page (tprocv1.rst) for users on older boards.
  • One reference page per readout/generator IP core (avg_buffer,
    mr_buffer_et, readout_v2, readout_dynamic, readout_pfb, kidsim,
    sg_v6, sg_v4, sg_int4_v2, sg_mux8, sg_mixmux8) plus
    family-overview pages (readout.rst, generators.rst) explaining which
    core to use for which experiment.
  • The 00-14 tutorial notebook series (nbsphinx-rendered).
  • A restructured "Software API" reference page with a real intro instead of
    a bare module list.
  • Corrected topics/ pages (asmv2_cheatsheet, timing, units,
    freq_matching, xcom, XCOM-commands, pyro4, playing_pulses, ...) --
    several had fictional API calls or bit-encoding errors going back to the
    tProc v1 architecture that never got updated for v2.

Every page was cross-checked against qick_lib source (and, for
firmware-level claims, RTL) before this migration.

Build infra changes

  • docs/ -> docs/source/ (Sphinx source root now has its own
    subdirectory; docs/Makefile's SOURCEDIR already expected this).
  • .readthedocs.yaml: sphinx.configuration -> docs/source/conf.py,
    added the pandoc apt package nbsphinx needs to render notebooks.
  • .gitignore: docs/_build|_autosummary -> docs/source/_build|_autosummary.

Kept as-is

papers.rst and its chart images were not overwritten -- this repo's
copy had 3 more recently-added papers, a Qblox QICK box link, and an
"At a glance" stats section that the source repo's copy lacked.
contact.rst/quick_start.rst were checked for the same kind of drift and
found identical, so those did come across unchanged.

Test plan

  • Full local sphinx-build against this repo's own qick_lib: 0 errors,
    only pre-existing warnings (docstring formatting in
    qick.py/rfboard.py/tprocv2_assembler.py, unrelated to this PR).
  • RTD build succeeds on the PR preview (once available).
  • Spot check a few rendered pages (tprocv2_trm, sg_v6, a tutorial
    notebook) for formatting.

🤖 Generated with Claude Code

Jay and others added 8 commits May 25, 2026 13:17
Replaces the pre-tprocv2 flat docs/ tree (tProc v1 + SG-v4 era: a
single firmware.rst channel-assignment model, asmv1_cheatsheet.rst,
no per-IP-core reference pages) with the restructured docs/source/
tree developed and audited in openquantumhardware/qick_internal.

What's new, at a glance:
- Full tProc v2 reference manual (tprocv2_trm.rst) plus a dedicated
  legacy tProc v1 page (tprocv1.rst) for users on older boards.
- One reference page per readout/generator IP core (avg_buffer,
  mr_buffer_et, readout_v2, readout_dynamic, readout_pfb, kidsim,
  sg_v6, sg_v4, sg_int4_v2, sg_mux8, sg_mixmux8) plus family-overview
  pages (readout.rst, generators.rst) explaining which core to use
  for which experiment.
- The 00-14 tutorial notebook series (nbsphinx-rendered).
- A restructured "Software API" reference page with a real intro
  instead of a bare module list.
- Corrected topics/ pages (asmv2_cheatsheet, timing, units,
  freq_matching, xcom, XCOM-commands, pyro4, playing_pulses, ...) --
  several had fictional API calls or bit-encoding errors going back
  to the tProc v1 architecture that never got updated for v2.

Every page was cross-checked against qick_lib source (and, for
firmware-level claims, RTL) in the source repo before this migration;
see qick_internal's fix-tprocv2-trm-docs branch history for the
detailed per-page verification notes.

Build infra changes:
- docs/ -> docs/source/ (Sphinx source root now has its own
  subdirectory; docs/Makefile's SOURCEDIR already expected this).
- .readthedocs.yaml: sphinx.configuration -> docs/source/conf.py,
  python.install requirements path unchanged (docs/requirements.txt,
  which already lists myst-parser and nbsphinx), added the `pandoc`
  apt package nbsphinx needs to render notebooks.
- .gitignore: docs/_build|_autosummary -> docs/source/_build|
  _autosummary.

Kept as-is (not part of the tprocv2 restructuring, independently
maintained): papers.rst and its chart images -- the source repo's
copy had fallen behind this repo's (missing 3 recently-added papers,
the Qblox QICK box link, and the "At a glance" stats section) --
verified contact.rst and quick_start.rst have NOT drifted the same
way before carrying those over unchanged.

Verified with a full local sphinx-build against this repo's own
qick_lib: 0 errors, only pre-existing warnings (a handful of
docstring formatting issues in qick.py/rfboard.py/
tprocv2_assembler.py, unrelated to this migration).
Content originally proposed in PR #412 by Jay Chien against the old
docs/*.rst tree (now superseded by docs/source/, so that PR no longer
applies cleanly). Ports it into the current docs/source/topics/ tree,
crediting the original author, and verifies every API name used
(add_loop, QickSweep1D, get_pulse_param, get_time_param, delay/
delay_auto/wait_auto, AveragerProgramV2.acquire) against qick.asm_v2
and qick.qick_asm. Also fixes the example-code page's Markdown-style
headings/links, which were invalid in an .rst file.

Verified with a full local sphinx-build: same pre-existing 26-warning
baseline, no new warnings from either page.
lharnaldi and others added 16 commits September 5, 2026 15:18
Plain 'make html' fell back to whatever sphinx-build is on PATH (system
Sphinx, missing nbsphinx/myst-parser) since nothing pointed it at a venv
with docs/requirements.txt installed. Default SPHINXBUILD to
../.venv/bin/sphinx-build when it exists, still overridable via
'make SPHINXBUILD=... html'.
Syncs qick_internal's fix-tprocv2-trm-docs work since the last update:

- index.rst reordered for a new-user learning path: tutorials split into
  their existing Basic/Intermediate/Advanced tiers as separate sidebar
  captions, firmware overview promoted ahead of the deep tProc v2 TRM,
  and legacy tProc v1 pushed to its own clearly-marked tier at the end.
- 14 hand-drawn circuitikz block diagrams (general firmware system
  diagram plus one per generator/readout/support core and tProc v2
  itself), each verified against the real RTL, not auto-extracted or
  copied from memory. Sources and the `make tikz-diagrams` build live in
  qick_internal's firmware/fusesoc/ (private RTL infra); this repo gets
  the rendered SVGs.

Verified with a full local sphinx-build: same pre-existing 26-warning
baseline, diagrams and sidebar order confirmed in the built HTML.
kidsim, mr_buffer_et, dyn_readout, and readout_pfb v2/v3 all had
connections that landed outside their target box or overlapped a
label. Synced from qick_internal.
New tutorial 15 covers QICKBox RF/Balun daughtercards: attenuators,
ADMV8818 tunable filters, and saturation checks, adapted from
openquantumhardware/QCE2025's qickbox_rf.ipynb (trimmed to the
QICKBox-specific content; generic readout/sweep/pulse-sequence
material is already covered by tutorials 01/02/05/06/07).

Also fixes the generator-types comparison table in tutorial 07: the
Full-Speed/Interpolated rows described pulse shaping instead of the
actual tradeoff, which is PL logic usage.
Five QickSoc.tt_* docstrings wrote `time_taggers' (backtick open,
apostrophe close) instead of matching backticks, which docutils
couldn't parse as an inline reference. Synced from qick_internal.
The "Release (March 2024)" banner had an overline but no matching
underline, so docutils tried to parse it as a section title and
failed. Added the missing underline (matching the FERMI RESEARCH LAB
banner above it). Synced from qick_internal.
@meeg
meeg removed the request for review from qickbot September 12, 2026 04:41
@meeg

meeg commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Still need to read through and check everything - there is definitely some amount of LLM-generated text and code snippets that is wrong, and some terrible LLM prose that needs to get trimmed. But good enough!

@meeg
meeg merged commit 30c9f93 into main Sep 12, 2026
3 checks passed
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.

3 participants