Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: quarto-dev/quarto-cli
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: bc422aa
Choose a base ref
...
head repository: quarto-dev/quarto-cli
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: cc169e5
Choose a head ref
  • 20 commits
  • 89 files changed
  • 5 contributors

Commits on Apr 1, 2026

  1. Update all our tests dependencies (#14292)

    * R - update renv version and all R packages deps
    
    * python - update Python 3.14.3, uv  version and lockfile
    
    * Julia - update to 1.12.5 and update all packages
    cderv authored Apr 1, 2026
    Configuration menu
    Copy the full SHA
    e8e4df7 View commit details
    Browse the repository at this point in the history
  2. Add missing lua-types declarations for public Lua API (#14295)

    Add type declarations for functions exported in init.lua that were
    missing from the lua-types annotations. This feeds into the autogen
    docs effort (quarto-dev/quarto-web#1649).
    
    quarto.doc: add_resource, add_supporting, is_filter_active
    quarto.utils: type, table.isarray, table.contains, table.sortedPairs,
      resolve_path_relative_to_document, as_inlines, as_blocks,
      is_empty_node, render, match, add_to_blocks
    cderv authored Apr 1, 2026
    Configuration menu
    Copy the full SHA
    6ce64dc View commit details
    Browse the repository at this point in the history
  3. Update remaining GitHub Actions for Node.js 24 compatibility (#14294)

    - EndBug/add-and-commit: v9.1.4 (node20) → v10.0.0 (node24)
    - softprops/action-gh-release: v1-era (node20) → v2.6.1, remove deprecated env GITHUB_TOKEN
    - julia-actions/setup-julia: @v2 (node20) → master SHA with node24 (no release yet)
    
    Follow-up to #14199 which updated official actions/* and other third-party actions.
    cderv authored Apr 1, 2026
    Configuration menu
    Copy the full SHA
    0ae540e View commit details
    Browse the repository at this point in the history
  4. Add typst-gather 0.2.2 as a downloaded binary dependency

    Add typst-gather to the dependency system, following the same pattern
    as Pandoc, Typst, esbuild, and other binary dependencies. Pre-built
    binaries are downloaded from GitHub releases (quarto-dev/typst-gather).
    
    - Add TYPST_GATHER=0.2.2 to configuration
    - Add typst-gather dependency definition with platform-specific URLs
    - Register typst-gather in the dependency list
    gordonwoodhull committed Apr 1, 2026
    Configuration menu
    Copy the full SHA
    23d44fd View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    629b5db View commit details
    Browse the repository at this point in the history
  6. Remove in-tree Rust project, activate typst-gather binary dependency

    Remove the Rust source tree at package/typst-gather/ and switch to the
    downloaded binary registered in the previous commit.
    
    - Remove archiveOnly flag to enable download during configure
    - Remove cargo build from configure.sh and configure.cmd
    - Remove typst-gather staging from prepare-dist.ts
    - Remove Cargo cache step from CI workflow
    - Add QUARTO_TYPST_GATHER env var override support
    gordonwoodhull committed Apr 1, 2026
    Configuration menu
    Copy the full SHA
    8faf262 View commit details
    Browse the repository at this point in the history
  7. Use typst-gather analyze subcommand for init-config and gather subcom…

    …mand for gathering
    
    Replace the TypeScript regex-based import scanning with a call to
    `typst-gather analyze`, which uses Typst's own parser for robust import
    discovery including nested imports and transitive @Local dependencies.
    
    - Remove parseSimpleToml(), discoverImportsFromFiles(), and related types
    - Add runAnalyze() that pipes TOML config to `typst-gather analyze -` on stdin
    - Rewrite generateConfigFromAnalysis() to consume structured JSON output
    - Pipe config on stdin for auto-detected gather (no temp files)
    - Use `gather` subcommand for all gather invocations
    - Add QUARTO_TYPST_GATHER env var override to call version
    - Extract typstGatherBinaryPath() shared helper
    - Add 12 unit tests for generateConfigFromAnalysis()
    gordonwoodhull committed Apr 1, 2026
    Configuration menu
    Copy the full SHA
    3e7c2b8 View commit details
    Browse the repository at this point in the history
  8. Selective typst package staging using typst-gather analyze

    Instead of copying ALL packages from built-in resources and extensions
    into the scratch directory, use typst-gather analyze to determine the
    exact set of packages needed (including transitive deps), then stage
    only those.
    
    - Create src/core/typst-gather.ts shared module (moved from cmd.ts)
    - Decompose stageTypstPackages into collectPackageSources,
      analyzeNeededPackages, stageSelectedPackages, stageAllPackages
    - Change from first-write-wins to last-write-wins so extensions can
      override built-in packages
    - Falls back to staging everything if typst-gather binary is missing
      or analyze fails
    - 14 unit tests for staging functions and TOML building
    - 1 smoke test verifying no packages staged for import-free documents
    
    Fixes #14157
    gordonwoodhull committed Apr 1, 2026
    Configuration menu
    Copy the full SHA
    f909ffd View commit details
    Browse the repository at this point in the history
  9. Fix typst-gather fallback tests for CI and Windows

    - Use quarto.cmd on Windows in runQuarto helper
    - Switch fallback tests from orange-book (requires R/knitr) to
      marginalia-only-project (pure typst)
    - Use cross-platform approach for non-zero exit test
    - Clean up .quarto dir after fallback tests to avoid polluting
      the subsequent selective-staging test
    gordonwoodhull committed Apr 1, 2026
    Configuration menu
    Copy the full SHA
    3fa22f9 View commit details
    Browse the repository at this point in the history

Commits on Apr 3, 2026

  1. Fix preview browse URL for single-file documents (#14300)

    Fix preview browse URL for single-file documents
    
    After #13804 made the project variable always non-null via
    singleFileProjectContext(), two code paths in preview() broke for
    single-file documents: the browse URL included the output filename
    (e.g. /hello.html instead of /), and GET / returned 404 because
    the project handler expected index.html as the default file.
    
    Guard both the URL path computation and the handler selection with
    !project.isSingleFile so single-file previews use the correct
    handler and root URL. Extract URL path logic into a testable
    previewInitialPath() function.
    
    - Fix initialPath using relative path instead of empty string
    - Fix handler selection using projectHtmlFileRequestHandler with
      wrong default file instead of htmlFileRequestHandler
    - Add unit tests for previewInitialPath() (single-file, project,
      project-subdir, undefined-project cases)
    - Add manual preview test entries T17-T19
    
    Fixes #14298
    cderv authored Apr 3, 2026
    Configuration menu
    Copy the full SHA
    a42c44c View commit details
    Browse the repository at this point in the history
  2. fix skill for preview testing

    cderv committed Apr 3, 2026
    Configuration menu
    Copy the full SHA
    fbaf628 View commit details
    Browse the repository at this point in the history

Commits on Apr 6, 2026

  1. timing for new tests [auto PR]

    cderv committed Apr 6, 2026
    Configuration menu
    Copy the full SHA
    03138ed View commit details
    Browse the repository at this point in the history

Commits on Apr 7, 2026

  1. Fix inverted logic in quarto.utils.is_empty_node for text nodes (#14297)

    * Fix inverted logic in quarto.utils.is_empty_node for text nodes
    
    The text branch (`node.text`) used `~=` (not-equal) where it should
    use `==` (equal), causing is_empty_node to return true for non-empty
    text nodes and false for empty ones.
    
    Text nodes like Str and Code should follow the same emptiness
    semantics as container nodes like Para and Div: a Str('') is empty
    just as Para({}) is empty -- a node of the right type but with
    nothing in it.
    
    Internal callers all pass container nodes (caption, preamble) so
    nothing was visibly broken, but extension authors calling the public
    API on text nodes get wrong results.
    
    * Add changelog entry for is_empty_node fix (#14297)
    cderv authored Apr 7, 2026
    Configuration menu
    Copy the full SHA
    96dc728 View commit details
    Browse the repository at this point in the history
  2. Add test for suppress-bibliography with Typst native citations

    Verifies that suppress-bibliography: true works with Typst's native
    citation system (not just citeproc). The test checks that the generated
    .typ file contains the #show bibliography: none rule, and that the
    PDF output includes citations but no bibliography section.
    
    Refs #14327
    gordonwoodhull committed Apr 7, 2026
    Configuration menu
    Copy the full SHA
    f5fc540 View commit details
    Browse the repository at this point in the history
  3. Add changelog entry for Typst margin layout (#13879)

    Also sort #13878 into numerical order.
    gordonwoodhull committed Apr 7, 2026
    Configuration menu
    Copy the full SHA
    61a7614 View commit details
    Browse the repository at this point in the history
  4. Fix quarto inspect emitting project for standalone files in RStudio

    Since v1.9.35, `quarto inspect` on a standalone .qmd file emits a
    `project` field because `singleFileProjectContext` now always sets
    `config`. RStudio's publishing wizard reads `project.dir`, assumes
    `_quarto.yml` exists there, and crashes on the missing file.
    
    Gate `project` emission on `!(isSingleFile && isRStudio())` so
    RStudio gets the pre-1.9.35 output while other consumers still see
    the project metadata. Add `_setIsRStudioForTest()` to avoid
    `Deno.env.set()` race conditions in parallel tests.
    
    The RStudio-side fix (rstudio/rstudio#17336) is merged but won't be
    backported — this protects users on older RStudio who upgrade Quarto.
    
    Ref: rstudio/rstudio#17333
    cderv authored Apr 7, 2026
    Configuration menu
    Copy the full SHA
    b6e1c2e View commit details
    Browse the repository at this point in the history

Commits on Apr 8, 2026

  1. Allow local extensions to override built-in typst book extension

    When a user explicitly specifies `format: orange-book-typst` in a book
    project, prefer a locally installed copy of the extension over the
    built-in one, so customizations take effect. The default behavior for
    `format: typst` (which auto-assigns orange-book) is unchanged.
    
    Adds a `preferLocal` flag threaded through the extension lookup chain
    that, when set, checks local `_extensions/` before built-in extensions.
    Only the explicit typst book extension case sets this flag.
    
    Fixes #14326
    gordonwoodhull committed Apr 8, 2026
    Configuration menu
    Copy the full SHA
    7513a92 View commit details
    Browse the repository at this point in the history
  2. Add CI workflow for tool install on arm64 Linux and macOS (#14336)

    * Add CI workflow for tool install on arm64 Linux and macOS
    
    Integration test for quarto install tinytex and chrome-headless-shell on
    platforms not covered by smoke tests (arm64 Linux, macOS). Path-filtered
    to src/tools/** with weekly schedule for upstream breakage detection.
    
    Also add test-install.yml to paths-ignore in test-smokes-parallel.yml
    and test-ff-matrix.yml so changes to the new workflow don't trigger
    unrelated test suites.
    
    * Skip chrome-headless-shell install on arm64 until #14334 lands
    cderv authored Apr 8, 2026
    Configuration menu
    Copy the full SHA
    4b3bf72 View commit details
    Browse the repository at this point in the history

Commits on Apr 9, 2026

  1. Deprecate chromium installer, add arm64 Linux support for chrome-head…

    …less-shell (#14334)
    
    Deprecate `quarto install chromium` in favor of `chrome-headless-shell`.
    The chromium command now prints a deprecation warning and transparently
    redirects to chrome-headless-shell, preserving `--no-prompt` for CI
    pipelines. The `afterInstall` hook automatically removes any legacy
    chromium installation when chrome-headless-shell is installed.
    
    Add arm64 Linux support for `quarto install chrome-headless-shell`
    using Microsoft's Playwright CDN as the download source, since Chrome
    for Testing has no arm64 Linux builds. The arm64 binary name difference
    (`headless_shell` vs `chrome-headless-shell`) is abstracted by a
    platform-aware helper.
    
    - Chromium marked "(deprecated)" in tool registry, removed from help
      text examples; full removal planned for v1.11
    - `quarto check install` warns when legacy chromium is detected
    - Binder post-build scripts use chrome-headless-shell instead of
      chromium
    - Path/version utilities extracted to chrome-headless-shell-paths.ts
      to break a circular dependency
    - New `test-install.yml` CI workflow for arm64 install and chromium
      deprecation across all platforms
    
    Closes #11877
    Fixes #9710
    cderv authored Apr 9, 2026
    Configuration menu
    Copy the full SHA
    6f84bb5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cc169e5 View commit details
    Browse the repository at this point in the history
Loading