Skip to content

q2 v0.16.0

Choose a tag to compare

@github-actions github-actions released this 10 Aug 19:35
· 186 commits to main since this release
46cacc8

Experimental. q2 is under active development and not ready for production use.

Install

curl -fsSL https://raw.githubusercontent.com/quarto-dev/q2/main/install.sh | bash

On Windows (PowerShell):

irm https://raw.githubusercontent.com/quarto-dev/q2/main/install.ps1 | iex

q2 mcp (the Quarto Hub MCP server) needs Node.js 24+ at runtime;
everything else works standalone. Hub connection defaults for quarto-hub.com are built in.

The Linux binaries are statically linked (musl): one build per architecture, no glibc
requirement, works on Alpine and old distros alike. If you specifically need a
dynamically-linked build, install.sh --from-source builds one.

Platform File
Linux x86_64 (static, any distro) q2-0.16.0-linux_amd64.tar.gz
Linux ARM64 (static, any distro) q2-0.16.0-linux_arm64.tar.gz
macOS Intel q2-0.16.0-darwin_amd64.tar.gz
macOS Apple Silicon q2-0.16.0-darwin_arm64.tar.gz
Windows x86_64 q2-0.16.0-windows_amd64.zip

Verify a manual download (Unix archives are signed with minisign, Ed25519):

minisign -Vm q2-0.16.0-<platform>.tar.gz -P RWR2A9ILpZX1kVF3Q6uk5TRus8FDM25H2F+KKKHEuqlxv+JJSLyPalvN

The trusted comment should name exactly the file you downloaded.
Checksums (all platforms): sha256sum -c checksums.sha256 --ignore-missing

Standalone Quarto Hub MCP server

q2 mcp is also published on its own as a self-contained Node bundle for
running the MCP server without installing q2 — e.g. embedding it in
another tool. Requires Node.js 24+. Download
quarto-hub-mcp-0.16.0.tar.gz, extract, and run node index.mjs --help.
Unlike q2 mcp, this bundle does not embed quarto-hub.com credentials — see
the bundled README.md for the OAuth env vars to set.
(Experimental, temporary channel — npx distribution is planned.)

Changes

  • Merge pull request #494 from quarto-dev/release/v0.16.0 (46cacc8)
  • chore(release): bump workspace version to 0.16.0 (8f6c05c)
  • Merge pull request #492 from quarto-dev/feature/bd-fu16z22k-project-profiles (7306498)
  • fix rebase fallout: new with_lua_support caller from main gets the 7th arg (bd4301c)
  • project profiles: Phase 5 — docs, smoke fixture, wrap-up (bd-fu16z22k) (0bbb9ab)
  • project profiles: Phase 4 — conditional content (bd-fu16z22k) (73f92e0)
  • project profiles: Phase 3 — environment-file integration (bd-fu16z22k) (706ad6e)
  • project profiles: Phase 2 — CLI, cache key, subprocess env (bd-fu16z22k) (ef3016c)
  • project profiles: Phase 1 — _quarto-.yml overlays (bd-fu16z22k) (5b8ef65)
  • instructions: commit-and-continue at clean phase boundaries (6b03326)
  • project profiles: Phase 0 — activation resolution core (bd-fu16z22k) (8c7daa9)
  • Merge pull request #489 from quarto-dev/feature/bd-96fswwce-combining-marks (bcdbce6)
  • Merge pull request #491 from quarto-dev/bugfix/bd-hxhnnlzs-jupyter-kernel-leak (a217ab5)
  • bd-hxhnnlzs: mark verification complete in plan (5b80399)
  • Shut down Jupyter kernels when their kernel scope ends (bd-hxhnnlzs) (ed6b6e3)
  • Merge pull request #490 from quarto-dev/feature/bd-fz6gwfq0-shortcode-text-contexts (2ea84ef)
  • Restrict html_entity_regex() to semicolon-terminated entity names (bd-v8qc9zyc) (05c2454)
  • Update shortcodes-website-config plan: PR #487 merged, strand closed (e71bdda)
  • Merge remote-tracking branch 'origin/main' into braid/bd-fz6gwfq0-shortcode-text-contexts (bd21fef)
  • Merge pull request #487 from quarto-dev/feature/bd-shortcodes-in-metadata-bp06aub8 (4041eff)
  • bd-fz6gwfq0: record PR #490 in plan (16337d4)
  • Substitute shortcodes in text contexts: code, raw, math, attrs, targets (bd-fz6gwfq0) (64648ee)
  • Accept combining marks and ZWNJ/ZWJ as prose content in the qmd grammar (bd-96fswwce) (fa7dcbc)
  • Merge pull request #488 from quarto-dev/feature/bd-named-entities-w6xbfftj-entity-decode (fe88756)
  • Investigate bd-shortcodes-in-code-blocks-hhpus9da: subset-duplicate of bd-fz6gwfq0, wait for bp06aub8 expander (48b2344)
  • bd-shortcodes-in-metadata-bp06aub8: reconcile with env-files strand (main merge) (c3856cb)
  • Decode named HTML entity references in prose (bd-named-entities-w6xbfftj) (9509f8d)
  • Merge remote-tracking branch 'origin/main' into braid/bd-shortcodes-in-metadata-bp06aub8 (c864434)
  • Record design decisions for bd-named-entities-w6xbfftj (632f34e)
  • Merge pull request #486 from quarto-dev/feature/bd-environment-files-372u9qbs-load-environment-files (3ef77da)
  • bd-shortcodes-in-metadata-bp06aub8 Phase 4: e2e verification, clippy fixes, shortcodes docs page (059155c)
  • bd-shortcodes-in-metadata-bp06aub8 Phase 3: text-level shortcode expansion in include files (d2c6ba9)
  • bd-shortcodes-in-metadata-bp06aub8 Phase 2: markdown semantics for website presentation config strings (0c2d4a0)
  • Investigate bd-named-entities-w6xbfftj: named entity references dropped in prose (622e48a)
  • bd-shortcodes-in-metadata-bp06aub8 Phase 1: resolve shortcodes in all metadata values (d7ffa74)
  • bd-shortcodes-in-metadata-bp06aub8 Phase 0: failing tests for shortcodes in config/meta/includes (4cab2a6)
  • bd-environment-files-372u9qbs: record PR #486 in plan (3bbc4b8)
  • Load project _environment files (bd-environment-files-372u9qbs) (adc2281)
  • bd-shortcodes-in-metadata-bp06aub8: finalize plan — design decisions + Q1 entry survey (6af0ba2)
  • bd-shortcodes-in-metadata-bp06aub8: Q1 ground-truth study answers 2 of 6 design questions (f2e6691)
  • Merge pull request #485 from quarto-dev/chore/bd-cx1det1y-error-docs-backfill (0cb8abc)
  • Investigate bd-shortcodes-in-metadata-bp06aub8: plan skeleton for shortcodes in website config + includes (bfaf952)
  • Merge pull request #484 from quarto-dev/feature/bd-nv4p0eb1-span-hardening-2 (485e864)
  • Backfill error catalog + docs pages for Q-2-36/37/38 (bd-cx1det1y) (2ef8b49)
  • Merge pull request #483 from quarto-dev/feature/bd-brace-escape-hint-0tmemkyt (0c5d0ab)
  • bd-environment-files-372u9qbs: record design decisions + dotenv parser research (315271c)
  • fmt: format scripted edits in project/mod.rs and theme_diagnostic.rs (844aa3c)
  • clippy: PathBuf::clone instead of to_path_buf in theme_error_candidates (cf8ab01)
  • plan: phase A code complete; step-2 quarto-source-map memo (bd-nv4p0eb1) (fdc3217)
  • Merge braid/bd-r64mj1aa-candidate-lists: complete diagnostic candidate lists (a5477e3)
  • plan: bd-r64mj1aa done (D5+D6+D7) (53725af)
  • Complete diagnostic candidate lists: manifests + _metadata.yml layers everywhere (bd-r64mj1aa) (d71291c)
  • Investigate bd-environment-files-372u9qbs: _environment files not loaded (8d8403a)
  • Merge braid/bd-h5rfw3ao-project-type-error: candidate-matched Q-5-17 binding (b122c9c)
  • plan: bd-h5rfw3ao done (cfbd24a)
  • Harden project_type_error with candidate-matched binding (bd-h5rfw3ao) (fcf2a0b)
  • Merge braid/bd-x113wg9v-doc-resource-binding: doc-level resource diagnostic binding (b9ec7ed)
  • plan: bd-x113wg9v done (a6ed323)
  • Bind the declaring file to doc-level resource diagnostics (bd-x113wg9v) (26bc811)
  • Update bare-brace-escape-hint plan: PR #483 opened (922961b)
  • Q-2-41: bare-brace parse errors now hint at escaping literal braces (bd-brace-escape-hint-0tmemkyt) (29130c6)
  • Investigate bd-brace-escape-hint-0tmemkyt: plan skeleton for bare-brace escape hint (104b35c)
  • Merge pull request #482 from quarto-dev/feature/bd-nv4p0eb1-span-hardening (8518ac7)
  • Merge origin/main (v0.15.0 release + listing fixes) into feature/bd-nv4p0eb1-span-hardening (eb1095f)
  • Update wasm-quarto-hub-client Cargo.lock for the 0.14.0 workspace bump (5f56345)
  • fmt: format ANONYMOUS_FILE_ID re-export (bd-y5gpc8yv) (9cfdbcb)
  • plan: session log — 7 of 11 phase-A items done (cf04d6e)
  • Merge braid/bd-y5gpc8yv-quarto-xml-fileid: non-aliasing anonymous XML FileId (3621e46)
  • plan: bd-y5gpc8yv done (86ae472)
  • quarto-xml: anonymous parses mint a non-aliasing sentinel FileId (bd-y5gpc8yv) (01dd01e)
  • Merge braid/bd-thagcbfq-lua-byte-range-fid: Lua byte_range FileId exposure (2b88d15)
  • plan: bd-thagcbfq done (fc084a9)
  • Expose the FileId in Lua byte_range(); lookup_range refuses foreign-file ranges (bd-thagcbfq) (ac6112f)
  • Merge braid/bd-vmlhw7nx-attribution-fileid: typed attribution file gate (cf70a83)
  • plan: bd-vmlhw7nx done (458cddb)
  • Gate attribution on the blamed file's FileId, not the literal slot 0 (bd-vmlhw7nx) (9e7e42b)
  • Merge braid/bd-jrq4hroi-add-file-with-id-lint: add-file-with-id lint guardrail (518bcc3)
  • plan: bd-jrq4hroi done (3ada373)
  • Add add-file-with-id lint: restrict raw FileId/content pairing to blessed modules (bd-jrq4hroi) (8d85fb4)
  • Merge braid/bd-t3enk8gq-caption-hulls: caption-extended table span hull fix (84b5cd0)
  • plan: bd-t3enk8gq done (7b5f722)
  • Build caption-extended table spans with the same-file preimage hull (bd-t3enk8gq) (144d941)
  • Merge braid/bd-f6h40a9r-incremental-foreign-offsets: incremental writer foreign-offset fix (f683968)
  • plan: bd-f6h40a9r done (commit 978dba6) (245c09c)
  • Never slice original_qmd at foreign-file offsets in the incremental writer (bd-f6h40a9r) (978dba6)
  • Merge braid/bd-itj2mjkr-engine-slot-desync: engine intermediate FileId slot fix (6fd67ed)
  • plan: bd-itj2mjkr done (commit 9d1c258) (187d6a2)
  • Fix engine intermediate FileId slot desync in project renders (bd-itj2mjkr) (9d1c258)
  • Add FileId/span integrity audit assessment + phase-A hardening plan (bd-nv4p0eb1) (8345e12)