Skip to content

Mention the projection tooling in the projections docs - #5711

Merged
George-Payne merged 1 commit into
masterfrom
george/ui-1856-mention-gaffer-tooling-in-projection-docs
Aug 13, 2026
Merged

Mention the projection tooling in the projections docs#5711
George-Payne merged 1 commit into
masterfrom
george/ui-1856-mention-gaffer-tooling-in-projection-docs

Conversation

@George-Payne

@George-Payne George-Payne commented Aug 12, 2026

Copy link
Copy Markdown
Member
  • intro.md gains a short Tooling section covering the gaffer CLI, the VS Code extension and the testing library, one line each. It sits after Engine versions so the two decisions about a user-defined projection stay next to each other.
  • intro.md also names a client library alongside the API and the embedded UI as ways to create a projection, and uses the current name for the embedded UI. The Projections gRPC service exposes Create and Update, so client libraries belong in that list.
  • custom.md gets a tip after its first example pointing at the same tooling, placed after the code rather than before it so the page's opening still runs straight into the example.
  • custom.md's debugging section described debugging through a browser's dev tools, referring to screenshots that no longer exist and a debugger that went with the AngularJS UI. It now describes running a projection locally with a debugger attached, from the CLI, from VS Code, or from any DAP-aware editor.

The projections docs never said what tooling exists for writing user
defined projections, so readers were left to infer that posting
JavaScript through the API or the embedded UI is the whole story.

- intro.md gains a Tooling section covering the gaffer CLI, the VS Code
  extension and the testing library, placed after the projection types so
  a reader meets it while learning what a user defined projection is.
- The user-defined bullet said projections are created "via the API or
  the admin UI". Names a client library too, and uses the current name
  for the embedded UI.
- custom.md points at the tooling before the reader starts writing
  JavaScript, and its Debugging projections section now describes what
  the VS Code extension actually does rather than linking the gaffer
  repository on GitHub.
@George-Payne
George-Payne requested a review from a team as a code owner August 12, 2026 15:58
@George-Payne George-Payne self-assigned this Aug 12, 2026
@George-Payne
George-Payne requested a review from a team as a code owner August 12, 2026 15:58
@linear-code

linear-code Bot commented Aug 12, 2026

Copy link
Copy Markdown

UI-1856

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying eventstore with  Cloudflare Pages  Cloudflare Pages

Latest commit: b6c23f6
Status: ✅  Deploy successful!
Preview URL: https://fdc9c534.eventstore.pages.dev
Branch Preview URL: https://george-ui-1856-mention-gaffe.eventstore.pages.dev

View logs

@qodo-code-review

Copy link
Copy Markdown
Contributor

PR Summary by Qodo

Document projection authoring tooling (gaffer/VS Code/testing)

📝 Documentation 🕐 10-20 Minutes

Grey Divider

AI Description

• Add a Tooling section describing gaffer CLI, VS Code extension, and testing library.
• Clarify projection creation paths (API, client library, embedded UI).
• Update custom projection docs with a tooling tip and modern debugging workflow.
Diagram

graph TD
  I["docs/.../projections/intro.md"] --> TS["Tooling section"] --> G["gaffer CLI"] --> V["VS Code extension"] --> L["Testing library"]
  C["docs/.../projections/custom.md"] --> D["Debugging/stepping guidance"] --> G
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Dedicated “Projection tooling” page
  • ➕ Keeps intro/custom pages shorter
  • ➕ Allows deeper setup and workflow coverage (install, deploy, debug, CI)
  • ➖ Adds navigation surface area and discoverability burden
  • ➖ More editorial overhead to keep in sync with tooling docs
2. Only add tooling references to custom.md
  • ➕ Keeps intro page focused on conceptual overview
  • ➕ Places guidance right where authors start writing JS
  • ➖ Tooling remains less discoverable for readers skimming the intro
  • ➖ Creation-path clarification still belongs in the intro’s projection type overview
3. Link out to tooling from every projections page
  • ➕ Maximum discoverability regardless of entry point
  • ➖ Creates repeated noise across pages (especially system/settings/engine internals)
  • ➖ Higher chance of stale or inconsistent wording

Recommendation: Current approach is the best balance: a concise Tooling section in the intro (discoverability at the decision point) plus a targeted tip and modernized debugging guidance in custom.md (actionable workflow). Avoiding mentions in system/settings/engine docs keeps those pages focused and prevents misleading guidance.

Files changed (2) +29 / -8

Documentation (2) +29 / -8
custom.mdAdd gaffer tip and modernize debugging guidance +13/-6

Add gaffer tip and modernize debugging guidance

• Adds a tip after the first example pointing readers to gaffer for local run/deploy. Replaces browser-devtools-era debugging text with guidance on stepping through projections locally via gaffer with a debugger, including VS Code and other DAP-aware editors.

docs/server/features/projections/custom.md

intro.mdDocument projection authoring tooling and creation options +16/-2

Document projection authoring tooling and creation options

• Updates the user-defined projections bullet to include creation via API, client libraries, and the embedded UI. Adds a new Tooling section describing gaffer, the VS Code extension, and the testing library with links and brief capability summaries.

docs/server/features/projections/intro.md

@George-Payne
George-Payne requested a review from stktung August 12, 2026 16:00
@qodo-code-review

Copy link
Copy Markdown
Contributor

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can enable the Remediation agent and Qodo fixes findings in a dedicated fix PR

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@George-Payne
George-Payne merged commit 4935def into master Aug 13, 2026
3 checks passed
@George-Payne
George-Payne deleted the george/ui-1856-mention-gaffer-tooling-in-projection-docs branch August 13, 2026 08:44

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 @George-Payne Failed to create cherry Pick PR due to error:

RequestError [HttpError]: Merge conflict
   at /home/runner/work/_actions/kurrent-io/Automations/master/cherry-pick-pr-for-label/node_modules/@octokit/request/dist-node/index.js:66:23
   at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
 status: '409',
 headers: {
   'access-control-allow-origin': '*',
   'access-control-expose-headers': 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset, Warning',
   'content-length': '127',
   'content-security-policy': "default-src 'none'",
   'content-type': 'application/json; charset=utf-8',
   date: 'Thu, 13 Aug 2026 08:44:31 GMT',
   'referrer-policy': 'origin-when-cross-origin, strict-origin-when-cross-origin',
   server: 'github.com',
   'strict-transport-security': 'max-age=31536000; includeSubdomains; preload',
   vary: 'Accept-Encoding, Accept, X-Requested-With',
   'x-accepted-github-permissions': 'contents=write',
   'x-content-type-options': 'nosniff',
   'x-frame-options': 'deny',
   'x-github-api-version-selected': '2022-11-28',
   'x-github-edge-region': 'westus2',
   'x-github-media-type': 'github.v3; format=json',
   'x-github-request-id': '8420:2EF189:625853:7A816A:6A7D83EE',
   'x-ratelimit-limit': '5000',
   'x-ratelimit-remaining': '4941',
   'x-ratelimit-reset': '1786614233',
   'x-ratelimit-resource': 'core',
   'x-ratelimit-used': '59',
   'x-xss-protection': '0'
 },
 request: {
   method: 'POST',
   url: 'https://api.github.com/repos/kurrent-io/KurrentDB/merges',
   headers: {
     accept: 'application/vnd.github.v3+json',
     'user-agent': 'octokit-core.js/3.3.2 Node.js/24',
     authorization: 'bearer [REDACTED]',
     'content-type': 'application/json; charset=utf-8'
   },
   body: '{"base":"cherry-pick-cherry-pick/5711/george/ui-1856-mention-gaffer-tooling-in-projection-docs-release/v24.10-2e873b89-078a-4e18-aa5e-66a96413d2b1","commit_message":"Merge b6c23f6bffad18bba9b52a8e8744067375a66eba into cherry-pick-cherry-pick/5711/george/ui-1856-mention-gaffer-tooling-in-projection-docs-release/v24.10-2e873b89-078a-4e18-aa5e-66a96413d2b1 [skip ci]\\n\\n\\nskip-checks: true\\n","head":"b6c23f6bffad18bba9b52a8e8744067375a66eba"}',
   request: { agent: [Agent], hook: [Function: bound bound register] }
 },
 documentation_url: 'https://docs.github.com/rest/branches/branches#merge-a-branch'
}

🚨👉 Check https://github.com/kurrent-io/KurrentDB/actions/runs/31683378439

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 @George-Payne Failed to create cherry Pick PR due to error:

RequestError [HttpError]: Merge conflict
   at /home/runner/work/_actions/kurrent-io/Automations/master/cherry-pick-pr-for-label/node_modules/@octokit/request/dist-node/index.js:66:23
   at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
 status: '409',
 headers: {
   'access-control-allow-origin': '*',
   'access-control-expose-headers': 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset, Warning',
   'content-length': '127',
   'content-security-policy': "default-src 'none'",
   'content-type': 'application/json; charset=utf-8',
   date: 'Thu, 13 Aug 2026 08:44:38 GMT',
   'referrer-policy': 'origin-when-cross-origin, strict-origin-when-cross-origin',
   server: 'github.com',
   'strict-transport-security': 'max-age=31536000; includeSubdomains; preload',
   vary: 'Accept-Encoding, Accept, X-Requested-With',
   'x-accepted-github-permissions': 'contents=write',
   'x-content-type-options': 'nosniff',
   'x-frame-options': 'deny',
   'x-github-api-version-selected': '2022-11-28',
   'x-github-edge-region': 'westus2',
   'x-github-media-type': 'github.v3; format=json',
   'x-github-request-id': '8420:2EF189:625BAA:7A859D:6A7D83F5',
   'x-ratelimit-limit': '5000',
   'x-ratelimit-remaining': '4930',
   'x-ratelimit-reset': '1786614233',
   'x-ratelimit-resource': 'core',
   'x-ratelimit-used': '70',
   'x-xss-protection': '0'
 },
 request: {
   method: 'POST',
   url: 'https://api.github.com/repos/kurrent-io/KurrentDB/merges',
   headers: {
     accept: 'application/vnd.github.v3+json',
     'user-agent': 'octokit-core.js/3.3.2 Node.js/24',
     authorization: 'bearer [REDACTED]',
     'content-type': 'application/json; charset=utf-8'
   },
   body: '{"base":"cherry-pick-cherry-pick/5711/george/ui-1856-mention-gaffer-tooling-in-projection-docs-release/v25.0-2bc75bce-8e14-4158-847f-ce4cfbae0a1f","commit_message":"Merge b6c23f6bffad18bba9b52a8e8744067375a66eba into cherry-pick-cherry-pick/5711/george/ui-1856-mention-gaffer-tooling-in-projection-docs-release/v25.0-2bc75bce-8e14-4158-847f-ce4cfbae0a1f [skip ci]\\n\\n\\nskip-checks: true\\n","head":"b6c23f6bffad18bba9b52a8e8744067375a66eba"}',
   request: { agent: [Agent], hook: [Function: bound bound register] }
 },
 documentation_url: 'https://docs.github.com/rest/branches/branches#merge-a-branch'
}

🚨👉 Check https://github.com/kurrent-io/KurrentDB/actions/runs/31683378439

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 @George-Payne Failed to create cherry Pick PR due to error:

RequestError [HttpError]: Merge conflict
   at /home/runner/work/_actions/kurrent-io/Automations/master/cherry-pick-pr-for-label/node_modules/@octokit/request/dist-node/index.js:66:23
   at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
 status: '409',
 headers: {
   'access-control-allow-origin': '*',
   'access-control-expose-headers': 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset, Warning',
   'content-length': '127',
   'content-security-policy': "default-src 'none'",
   'content-type': 'application/json; charset=utf-8',
   date: 'Thu, 13 Aug 2026 08:44:43 GMT',
   'referrer-policy': 'origin-when-cross-origin, strict-origin-when-cross-origin',
   server: 'github.com',
   'strict-transport-security': 'max-age=31536000; includeSubdomains; preload',
   vary: 'Accept-Encoding, Accept, X-Requested-With',
   'x-accepted-github-permissions': 'contents=write',
   'x-content-type-options': 'nosniff',
   'x-frame-options': 'deny',
   'x-github-api-version-selected': '2022-11-28',
   'x-github-edge-region': 'westus2',
   'x-github-media-type': 'github.v3; format=json',
   'x-github-request-id': '8420:2EF189:625E0B:7A88C5:6A7D83FB',
   'x-ratelimit-limit': '5000',
   'x-ratelimit-remaining': '4917',
   'x-ratelimit-reset': '1786614233',
   'x-ratelimit-resource': 'core',
   'x-ratelimit-used': '83',
   'x-xss-protection': '0'
 },
 request: {
   method: 'POST',
   url: 'https://api.github.com/repos/kurrent-io/KurrentDB/merges',
   headers: {
     accept: 'application/vnd.github.v3+json',
     'user-agent': 'octokit-core.js/3.3.2 Node.js/24',
     authorization: 'bearer [REDACTED]',
     'content-type': 'application/json; charset=utf-8'
   },
   body: '{"base":"cherry-pick-cherry-pick/5711/george/ui-1856-mention-gaffer-tooling-in-projection-docs-release/v25.1-855b1df9-a9af-4dc1-8dc6-1e8c05a050fc","commit_message":"Merge b6c23f6bffad18bba9b52a8e8744067375a66eba into cherry-pick-cherry-pick/5711/george/ui-1856-mention-gaffer-tooling-in-projection-docs-release/v25.1-855b1df9-a9af-4dc1-8dc6-1e8c05a050fc [skip ci]\\n\\n\\nskip-checks: true\\n","head":"b6c23f6bffad18bba9b52a8e8744067375a66eba"}',
   request: { agent: [Agent], hook: [Function: bound bound register] }
 },
 documentation_url: 'https://docs.github.com/rest/branches/branches#merge-a-branch'
}

🚨👉 Check https://github.com/kurrent-io/KurrentDB/actions/runs/31683378439

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 @George-Payne Failed to create cherry Pick PR due to error:

RequestError [HttpError]: Merge conflict
   at /home/runner/work/_actions/kurrent-io/Automations/master/cherry-pick-pr-for-label/node_modules/@octokit/request/dist-node/index.js:66:23
   at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
 status: '409',
 headers: {
   'access-control-allow-origin': '*',
   'access-control-expose-headers': 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset, Warning',
   'content-length': '127',
   'content-security-policy': "default-src 'none'",
   'content-type': 'application/json; charset=utf-8',
   date: 'Thu, 13 Aug 2026 08:44:50 GMT',
   'referrer-policy': 'origin-when-cross-origin, strict-origin-when-cross-origin',
   server: 'github.com',
   'strict-transport-security': 'max-age=31536000; includeSubdomains; preload',
   vary: 'Accept-Encoding, Accept, X-Requested-With',
   'x-accepted-github-permissions': 'contents=write',
   'x-content-type-options': 'nosniff',
   'x-frame-options': 'deny',
   'x-github-api-version-selected': '2022-11-28',
   'x-github-edge-region': 'westus2',
   'x-github-media-type': 'github.v3; format=json',
   'x-github-request-id': '8420:2EF189:6260C2:7A8C2A:6A7D8401',
   'x-ratelimit-limit': '5000',
   'x-ratelimit-remaining': '4906',
   'x-ratelimit-reset': '1786614233',
   'x-ratelimit-resource': 'core',
   'x-ratelimit-used': '94',
   'x-xss-protection': '0'
 },
 request: {
   method: 'POST',
   url: 'https://api.github.com/repos/kurrent-io/KurrentDB/merges',
   headers: {
     accept: 'application/vnd.github.v3+json',
     'user-agent': 'octokit-core.js/3.3.2 Node.js/24',
     authorization: 'bearer [REDACTED]',
     'content-type': 'application/json; charset=utf-8'
   },
   body: '{"base":"cherry-pick-cherry-pick/5711/george/ui-1856-mention-gaffer-tooling-in-projection-docs-release/v26.0-3f16ee26-b689-4000-8294-56602b657ca7","commit_message":"Merge b6c23f6bffad18bba9b52a8e8744067375a66eba into cherry-pick-cherry-pick/5711/george/ui-1856-mention-gaffer-tooling-in-projection-docs-release/v26.0-3f16ee26-b689-4000-8294-56602b657ca7 [skip ci]\\n\\n\\nskip-checks: true\\n","head":"b6c23f6bffad18bba9b52a8e8744067375a66eba"}',
   request: { agent: [Agent], hook: [Function: bound bound register] }
 },
 documentation_url: 'https://docs.github.com/rest/branches/branches#merge-a-branch'
}

🚨👉 Check https://github.com/kurrent-io/KurrentDB/actions/runs/31683378439

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 @George-Payne Failed to create cherry Pick PR due to error:

RequestError [HttpError]: Merge conflict
   at /home/runner/work/_actions/kurrent-io/Automations/master/cherry-pick-pr-for-label/node_modules/@octokit/request/dist-node/index.js:66:23
   at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
 status: '409',
 headers: {
   'access-control-allow-origin': '*',
   'access-control-expose-headers': 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset, Warning',
   'content-length': '127',
   'content-security-policy': "default-src 'none'",
   'content-type': 'application/json; charset=utf-8',
   date: 'Thu, 13 Aug 2026 08:44:56 GMT',
   'referrer-policy': 'origin-when-cross-origin, strict-origin-when-cross-origin',
   server: 'github.com',
   'strict-transport-security': 'max-age=31536000; includeSubdomains; preload',
   vary: 'Accept-Encoding, Accept, X-Requested-With',
   'x-accepted-github-permissions': 'contents=write',
   'x-content-type-options': 'nosniff',
   'x-frame-options': 'deny',
   'x-github-api-version-selected': '2022-11-28',
   'x-github-edge-region': 'westus2',
   'x-github-media-type': 'github.v3; format=json',
   'x-github-request-id': '8420:2EF189:62639A:7A8FF2:6A7D8407',
   'x-ratelimit-limit': '5000',
   'x-ratelimit-remaining': '4893',
   'x-ratelimit-reset': '1786614233',
   'x-ratelimit-resource': 'core',
   'x-ratelimit-used': '107',
   'x-xss-protection': '0'
 },
 request: {
   method: 'POST',
   url: 'https://api.github.com/repos/kurrent-io/KurrentDB/merges',
   headers: {
     accept: 'application/vnd.github.v3+json',
     'user-agent': 'octokit-core.js/3.3.2 Node.js/24',
     authorization: 'bearer [REDACTED]',
     'content-type': 'application/json; charset=utf-8'
   },
   body: '{"base":"cherry-pick-cherry-pick/5711/george/ui-1856-mention-gaffer-tooling-in-projection-docs-release/v26.1-796935fd-3a67-4d27-be86-189c614e440f","commit_message":"Merge b6c23f6bffad18bba9b52a8e8744067375a66eba into cherry-pick-cherry-pick/5711/george/ui-1856-mention-gaffer-tooling-in-projection-docs-release/v26.1-796935fd-3a67-4d27-be86-189c614e440f [skip ci]\\n\\n\\nskip-checks: true\\n","head":"b6c23f6bffad18bba9b52a8e8744067375a66eba"}',
   request: { agent: [Agent], hook: [Function: bound bound register] }
 },
 documentation_url: 'https://docs.github.com/rest/branches/branches#merge-a-branch'
}

🚨👉 Check https://github.com/kurrent-io/KurrentDB/actions/runs/31683378439

George-Payne added a commit that referenced this pull request Aug 13, 2026
* Rewrite the projections tutorial around gaffer

Backport of #5710. This branch has no projections engine V2 page, so the
paragraph explaining --engine-version 1 names 26.1 as where V2 arrives
instead of linking the page, and the next-steps bullet for it is gone.

* Mention the projection tooling in the projections docs

Backport of #5711. This branch has no intro.md, so the tooling section
lands in README.md, which carries that content here. The debugging
section replaced is the browser walkthrough, so its screenshots go too.
George-Payne added a commit that referenced this pull request Aug 13, 2026
* Rewrite the projections tutorial around gaffer

Backport of #5710. The tutorial content is taken verbatim from master;
this branch's engine-v2 page exists, so the V2 references carry over
unchanged.

* Mention the projection tooling in the projections docs

Backport of #5711. The debugging section replaced here is the browser
walkthrough this branch still carries, rather than the short Gaffer
paragraph master had, so its three screenshots go with it.
github-actions Bot pushed a commit that referenced this pull request Aug 13, 2026
Backport of #5711. This branch has no intro.md, so the tooling section
lands in README.md, which carries that content here. The debugging
section replaced is the browser walkthrough, so its screenshots go too.
github-actions Bot pushed a commit that referenced this pull request Aug 13, 2026
Backport of #5711. This branch has no intro.md, so the tooling section
lands in README.md, which carries that content here. The debugging
section replaced is the browser walkthrough, so its screenshots go too.
github-actions Bot pushed a commit that referenced this pull request Aug 13, 2026
Backport of #5711. This branch has no intro.md, so the tooling section
lands in README.md, which carries that content here. The debugging
section replaced is the browser walkthrough, so its screenshots go too.
George-Payne added a commit that referenced this pull request Aug 14, 2026
* Rewrite the projections tutorial around gaffer

Backport of #5710. This branch has no projections engine V2 page, so the
paragraph explaining --engine-version 1 names 26.1 as where V2 arrives
instead of linking the page, and the next-steps bullet for it is gone.

* Mention the projection tooling in the projections docs

Backport of #5711. This branch has no intro.md, so the tooling section
lands in README.md, which carries that content here. The debugging
section replaced is the browser walkthrough, so its screenshots go too.

---------

Co-authored-by: George Payne <georgepayne@hotmail.com>
George-Payne added a commit that referenced this pull request Aug 14, 2026
* Rewrite the projections tutorial around gaffer

Backport of #5710. This branch has no projections engine V2 page, so the
paragraph explaining --engine-version 1 names 26.1 as where V2 arrives
instead of linking the page, and the next-steps bullet for it is gone.

* Mention the projection tooling in the projections docs

Backport of #5711. This branch has no intro.md, so the tooling section
lands in README.md, which carries that content here. The debugging
section replaced is the browser walkthrough, so its screenshots go too.

---------

Co-authored-by: George Payne <georgepayne@hotmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants