Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/create-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -224,10 +224,10 @@ jobs:

source ./configuration

echo Placing custom Deno ${DENO:1}. See available versions at https://anaconda.org/conda-forge/deno/files hbf66b88_0
curl -L https://anaconda.org/conda-forge/deno/${DENO:1}/download/linux-64/deno-${DENO:1}-hbf66b88_0.conda --output deno.conda
echo Placing custom Deno ${DENO:1}. See available versions at https://anaconda.org/conda-forge/deno/files h6046fbb_0
curl -L https://anaconda.org/conda-forge/deno/${DENO:1}/download/linux-64/deno-${DENO:1}-h6046fbb_0.conda --output deno.conda
unzip deno.conda
tar --use-compress-program=unzstd -xvf pkg-deno-${DENO:1}-hbf66b88_0.tar.zst
tar --use-compress-program=unzstd -xvf pkg-deno-${DENO:1}-h6046fbb_0.tar.zst
cp bin/deno package/pkg-working/bin/tools/x86_64/deno

- name: Make Tarball
Expand Down
2 changes: 1 addition & 1 deletion configuration
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
# IMPORTANT: When these are updated, you must also update the versions
# in src/command/check/check.ts
# Binary dependencies
export DENO=v2.4.5
export DENO=v2.7.14
# TODO figure out where 0.1.41 apple silicon libs are available
export DENO_DOM=v0.1.41-alpha-artifacts
export PANDOC=3.8.3
Expand Down
15 changes: 9 additions & 6 deletions dev-docs/upgrade-dependencies.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
Change version numbers in `./configuration` to correspond to new versions.

Contact Carlos so he uploads the binaries to the S3 bucket.
Update hardcoded version strings in `src/command/check/check.ts` (`versionConstraints` array, ~line 249) so that they match the new versions in `configuration`. The `configuration` file warns about this in a comment.

## Upgrade deno

### Upgrade standard library

- run `./configure.sh` to locally install all dependencies.
- run `./configure.sh` (Linux/macOS) or `./configure.cmd` (Windows) to locally install all dependencies against the new Deno binary.

- In `src/import_map.json`, change the version number of the imports like `https://deno.land/std@0.204.0/archive` to the new version number (e.g. `0.205.0`).
- `src/import_map.json` has migrated to JSR (`jsr:/@std/<package>@<version>` entries). If `configure` errors with `Module not found: jsr:/@std/...`, bump only the specific `@std` package(s) named in the error to a compatible version on <https://jsr.io/@std>. Otherwise, leave `src/import_map.json` alone — historical pattern is reactive (no pre-emptive bumps).

- run `./configure.sh`.
- run `./configure.sh` / `./configure.cmd` again.

Bumping a version in `src/import_map.json` (or any of the other keyed files) automatically invalidates the CI Deno cache on next run. See [ci-deno-caching.md](ci-deno-caching.md) for the key composition and how to force invalidation manually.

Expand All @@ -19,11 +19,14 @@ Bumping a version in `src/import_map.json` (or any of the other keyed files) aut
- Go to <https://anaconda.org/conda-forge/deno/files> and find the version of Deno required.
- BTW those versions are built at <https://github.com/conda-forge/deno-feedstock>
- Take the hash part of the download link for linux-64 (e.g. `hcab8b69_0` for `linux-64/deno-1.46.3-hcab8b69_0.conda`)
- Use it in the build release action: `.github\workflows\create-release.yml` at the step `- name: Move Custom Deno`
- Use it in the build release action: `.github\workflows\create-release.yml` at the step `- name: Move Custom Deno`. The hash appears in **three places** inside that step (echo line, curl line, tar line). All three must be updated.
```
echo Placing custom Deno ${DENO:1}. See available versions at https://anaconda.org/conda-forge/deno/files
echo Placing custom Deno ${DENO:1}. See available versions at https://anaconda.org/conda-forge/deno/files hcab8b69_0
curl -L https://anaconda.org/conda-forge/deno/${DENO:1}/download/linux-64/deno-${DENO:1}-hcab8b69_0.conda --output deno.conda
unzip deno.conda
tar --use-compress-program=unzstd -xvf pkg-deno-${DENO:1}-hcab8b69_0.tar.zst
```
- The `make-tarball-rhel` job that wraps these steps may carry `if: false` for unrelated reasons; the hash is updated for forward consistency even while the job is disabled.
- Commit the `create-release.yml`

## Upgrade mermaidjs
Expand Down
4 changes: 4 additions & 0 deletions news/changelog-1.10.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ All changes included in 1.10:
- ([#14489](https://github.com/quarto-dev/quarto-cli/issues/14489)): Restore `--output-dir` support for `quarto preview` of single files when no `_quarto.yml` is present (e.g. R-package workspaces). Regression introduced in v1.9.18.
- ([rstudio/rstudio#17333](https://github.com/rstudio/rstudio/issues/17333)): Fix `quarto inspect` on standalone files emitting project metadata that breaks RStudio's publishing wizard.

## Dependencies

- ([#14291](https://github.com/quarto-dev/quarto-cli/issues/14291)): Update `deno` to v2.7.14 (fixes silent crash on Windows builds older than 16299).

## Accessibility

- ([#14468](https://github.com/quarto-dev/quarto-cli/issues/14468)): The `axe` accessibility report UI (HTML overlay, revealjs report slide, dashboard offcanvas) now uses its own theme-independent colors instead of inheriting from `brand` or theme. Keeps the report readable regardless of page styling, and stops `axe` from clobbering brand colors set via `_brand.yml`.
Expand Down
2 changes: 1 addition & 1 deletion src/command/check/check.ts
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ async function checkVersions(conf: CheckConfiguration) {
const versionConstraints: [string | undefined, string, string][] = [
[pandocVersion, "3.8.3", "Pandoc"],
[sassVersion, "1.87.0", "Dart Sass"],
[denoVersion, "2.4.5", "Deno"],
[denoVersion, "2.7.14", "Deno"],
[typstVersion, "0.14.2", "Typst"],
];
const checkData: [string | undefined, string, string][] = versionConstraints
Expand Down
8 changes: 6 additions & 2 deletions src/core/deno-dom.ts
Original file line number Diff line number Diff line change
Expand Up @@ -151,11 +151,15 @@ export async function initDenoDom() {
};

const parse = (html: string): string => {
return genericParse(dylibParseSync, html);
return genericParse(dylibParseSync as DocumentParser, html);
};

const parseFrag = (html: string, contextLocalName?: string): string => {
return genericParse(dylibParseFragSync, html, contextLocalName);
return genericParse(
dylibParseFragSync as FragmentParser,
html,
contextLocalName,
);
};

debug("Loaded deno-dom-native");
Expand Down
2 changes: 1 addition & 1 deletion src/core/hash.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export async function md5HashAsync(content: string) {
export async function md5HashBytes(content: Uint8Array) {
const buffer = await crypto.subtle.digest(
"MD5",
content,
content as BufferSource,
);
return Array.from(new Uint8Array(buffer))
.map((b) => b.toString(16).padStart(2, "0"))
Expand Down
4 changes: 2 additions & 2 deletions src/core/http.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ export function httpFileRequestHandler(
printUrl(url, false);
}
return Promise.resolve(
new Response(handle404.response.body, {
new Response(handle404.response.body as BodyInit, {
status: 404,
headers: {
"Content-Type": kTextHtml,
Expand Down Expand Up @@ -180,7 +180,7 @@ export function httpContentResponse(
headers.set("Content-Type", contentType);
}
headers.set("Cache-Control", "no-store, max-age=0");
return new Response(content, {
return new Response(content as BodyInit, {
status: 200,
headers,
});
Expand Down
2 changes: 1 addition & 1 deletion src/core/path.ts
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ export function normalizePath(path: string | URL): string {
file = normalize(file);
// some runtimes (e.g. nodejs) create paths w/ lowercase drive
// letters, make those uppercase
return file.replace(/^\w:\\/, (m) => m[0].toUpperCase() + ":\\");
return file.replace(/^\w:\\/, (m: string) => m[0].toUpperCase() + ":\\");
}

// Moved here from env.ts to avoid circular dependency
Expand Down
19 changes: 13 additions & 6 deletions src/deno_ral/path.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,26 @@
import * as path from "path";
import { normalize as posixNormalize } from "path/posix";

export const SEP = path.SEPARATOR;
export const SEP_PATTERN = path.SEPARATOR_PATTERN;
// Re-export named members from @std/path. The bare "path" specifier resolves
// at runtime via the import map but Deno's TS checker resolves its types via
// node:path compat, which lacks SEPARATOR, fromFileUrl, etc. Importing from
// "@std/path" (a non-colliding alias) preserves correct typings.
export {
fromFileUrl,
globToRegExp,
isGlob,
SEPARATOR as SEP,
SEPARATOR_PATTERN as SEP_PATTERN,
toFileUrl,
} from "@std/path";

export const basename = path.basename;
export const extname = path.extname;
export const dirname = path.dirname;
export const fromFileUrl = path.fromFileUrl;
export const globToRegExp = path.globToRegExp;
export const isAbsolute = path.isAbsolute;
export const join = path.join;
export const relative = path.relative;
export const resolve = path.resolve;
export const normalize = path.normalize;
export const toFileUrl = path.toFileUrl;
export const isGlob = path.isGlob;

export const posix = { normalize: posixNormalize };
1 change: 1 addition & 0 deletions src/import_map.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"http/": "jsr:/@std/http@1.0.14/",
"path": "jsr:@std/path@1.0.8",
"path/posix": "jsr:@std/path@1.0.8/posix",
"@std/path": "jsr:@std/path@1.0.8",
"streams/": "jsr:/@std/streams@1.0.9/",
"tar": "jsr:/@std/tar@0.1.6",
"tar/": "jsr:/@std/tar@0.1.6/",
Expand Down
Loading