From 9e6179e651b378313e659cb81776ed015f54882b Mon Sep 17 00:00:00 2001 From: Julius Krumbiegel Date: Tue, 24 Mar 2026 12:20:18 +0100 Subject: [PATCH] docs: add CHANGELOG.md and enforce-changelog CI workflow Add a changelog covering all changes since the initial 0.1.0 release. Add a GitHub Actions workflow using dangoslen/changelog-enforcer to require CHANGELOG.md updates on every PR (skippable with the `skip-changelog` label). --- .github/workflows/EnforceChangelog.yml | 14 +++++++++++ AGENTS.md | 4 ++++ CHANGELOG.md | 23 +++++++++++++++++++ tests/docs/julia-engine/.gitignore | 1 + .../engine-reordering/_metadata.yml | 1 + .../engine-reordering/_quarto.yml | 3 --- tests/docs/julia-engine/sleep/_quarto.yml | 2 -- 7 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/EnforceChangelog.yml create mode 100644 CHANGELOG.md create mode 100644 tests/docs/julia-engine/engine-reordering/_metadata.yml delete mode 100644 tests/docs/julia-engine/engine-reordering/_quarto.yml delete mode 100644 tests/docs/julia-engine/sleep/_quarto.yml diff --git a/.github/workflows/EnforceChangelog.yml b/.github/workflows/EnforceChangelog.yml new file mode 100644 index 0000000..1dc9e61 --- /dev/null +++ b/.github/workflows/EnforceChangelog.yml @@ -0,0 +1,14 @@ +name: "Enforce changelog" +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled] + +jobs: + changelog: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: dangoslen/changelog-enforcer@204e7d3ef26579f4cd0fd759c57032656fdf23c7 # v3.6.1 + with: + changeLogPath: 'CHANGELOG.md' + skipLabels: 'skip-changelog' diff --git a/AGENTS.md b/AGENTS.md index 4c7e6d7..4329f3e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -59,3 +59,7 @@ CI runs on all three platforms (Linux, macOS, Windows) against a pinned quarto-c 3. Runs the full test suite When bumping `QUARTO_CLI_REV`, use the full commit hash annotated with the version tag for clarity (e.g. `abc123 # v1.9.35`). + +## Changelog + +Every PR with user-facing or otherwise meaningful changes must include an update to `CHANGELOG.md` (enforced by CI). Add entries under the `## Unreleased` section. Use the `skip-changelog` label to bypass the check for PRs that don't need an entry (e.g. internal cleanups, CI, or docs changes). diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..1a82a98 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,23 @@ +# Quarto Julia Engine changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## Unreleased + +- Added `keep-ipynb` support. When `keep-ipynb: true` is set in document YAML, the executed notebook is written to `.ipynb` alongside the source file [#8](https://github.com/PumasAI/quarto-julia-engine/pull/8). +- Updated to QuartoNotebookRunner 0.18.0 [#7](https://github.com/PumasAI/quarto-julia-engine/pull/7): + - **Shared worker processes**: Multiple notebooks can share a single worker process when their configs match. Enable with `share_worker_process: true`. + - **`execute-dir` support**: Quarto's `execute-dir` option (e.g. `execute-dir: project`) is now passed through correctly. + - **Cached worker environments**: Worker envs persist across sessions, skipping environment setup on subsequent runs when Julia and QNR versions haven't changed. + - **Relaxed manifest version checking**: Only major.minor is checked by default, matching Julia's Pkg behavior. Opt into strict major.minor.patch via `julia: strict_manifest_versions: true`. + - **Diagnostic file logging**: Set `QUARTONOTEBOOKRUNNER_LOG` to a directory path to enable timestamped log files. + - **Echo handling for Python/R cells**: Fixed duplicate YAML keys and added proper support for `echo: false` and `echo: fenced`. + +## [0.1.0](https://github.com/PumasAI/quarto-julia-engine/releases/tag/v0.1.0) - 2026-03-19 + +- Initial release as a standalone Quarto extension, extracted from [quarto-cli](https://github.com/quarto-dev/quarto-cli). +- Bundled Julia resource files (`Project.toml`, `ensure_environment.jl`, `quartonotebookrunner.jl`, `start_quartonotebookrunner_detached.jl`) into the extension, making it fully self-contained [#6](https://github.com/PumasAI/quarto-julia-engine/pull/6). +- Added CI workflow with tests on Linux, macOS, and Windows [#6](https://github.com/PumasAI/quarto-julia-engine/pull/6). diff --git a/tests/docs/julia-engine/.gitignore b/tests/docs/julia-engine/.gitignore index 351aa45..a81c62f 100644 --- a/tests/docs/julia-engine/.gitignore +++ b/tests/docs/julia-engine/.gitignore @@ -4,3 +4,4 @@ # Allow only source files !*/*.qmd !*/_quarto.yml +!*/_metadata.yml diff --git a/tests/docs/julia-engine/engine-reordering/_metadata.yml b/tests/docs/julia-engine/engine-reordering/_metadata.yml new file mode 100644 index 0000000..2d9223f --- /dev/null +++ b/tests/docs/julia-engine/engine-reordering/_metadata.yml @@ -0,0 +1 @@ +engines: ["julia"] diff --git a/tests/docs/julia-engine/engine-reordering/_quarto.yml b/tests/docs/julia-engine/engine-reordering/_quarto.yml deleted file mode 100644 index 3aaa427..0000000 --- a/tests/docs/julia-engine/engine-reordering/_quarto.yml +++ /dev/null @@ -1,3 +0,0 @@ -project: - type: default -engines: ["julia"] diff --git a/tests/docs/julia-engine/sleep/_quarto.yml b/tests/docs/julia-engine/sleep/_quarto.yml deleted file mode 100644 index b8bae58..0000000 --- a/tests/docs/julia-engine/sleep/_quarto.yml +++ /dev/null @@ -1,2 +0,0 @@ -project: - type: default