Skip to content

Code classroom v15 - #6

Closed
jamiebenstead wants to merge 7098 commits into
code-classroomfrom
code-classroom-v15
Closed

jamiebenstead wants to merge 7098 commits into
code-classroomfrom
code-classroom-v15

Conversation

@jamiebenstead

@jamiebenstead jamiebenstead commented Sep 18, 2026 •

Copy link
Copy Markdown

Resolves

Part of the work for https://github.com/RaspberryPiFoundation/digital-editor-issues/issues/1772

Proposed Changes

Upgrade to upstream v15.1.1, and PR #5 is dropped in favour of upstream's getLibraryAssetUrl

Notes

482 files changed is expected — this bumps upstream Scratch from v13.7.3 to v15.1.1. 479 of those files are upstream's, 10 are ours, and 5 are touched by both.

To review just the RPF changes: git diff v15.1.1..code-classroom-v15
or
scratchfoundation/scratch-editor@v15.1.1...RaspberryPiFoundation:scratch-editor:code-classroom-v15

adzhindzhi and others added 30 commits May 29, 2026 11:02
- Renamed package to @scratch/scratch-paint
- Removed standalone-repo metadata (CI/release configs, hooks, repo-level dotfiles)
- Refreshed LICENSE/TRADEMARK from monorepo root
- Rewired inter-package dependencies to use workspace versions
- Added to root workspaces list
- Regenerated package-lock.json
… into chore/backmerge-develop-into-accessibility
…rge-develop-into-accessibility

Chore: Backmerge develop into accessibility
…modal-not-fully-navigable

[UEPR-610] make Tips cards navigable through keyboard
BREAKING CHANGE: Accessibility release
…se/UEPR-297-accessibility-improvements

[Release -> Develop] UEPR-297-accessibility improvements
# [14.0.0](scratchfoundation/scratch-editor@v13.7.2...v14.0.0) (2026-06-01)

### Bug Fixes

* lint errors ([cdc6365](scratchfoundation@cdc6365))
* address review comments ([36b9029](scratchfoundation@36b9029))
* make Tips cards navigable through keyboard ([09ad693](scratchfoundation@09ad693))
* **deps:** update dependency scratch-paint to v4.2.3 ([fb16b34](scratchfoundation@fb16b34), [4cc8d82](scratchfoundation@4cc8d82), [f3ebad2](scratchfoundation@f3ebad2), [affa366](scratchfoundation@affa366))
* **task-herder:** publish TRADEMARK alongside LICENSE ([50b7fec](scratchfoundation@50b7fec))
* **add-repo:** strip more repo-level metadata on import ([42b02ee](scratchfoundation@42b02ee))
* **add-repo:** regenerate package-lock before installing ([a2a7bed](scratchfoundation@a2a7bed))
* **deps:** update dependency scratch-l10n to v6.1.84 ([331ae74](scratchfoundation@331ae74), [035d395](scratchfoundation@035d395), [cac0447](scratchfoundation@cac0447), [efafb10](scratchfoundation@efafb10), [b0eb0fa](scratchfoundation@b0eb0fa), [bfbee82](scratchfoundation@bfbee82), [015aa6a](scratchfoundation@015aa6a), [695442f](scratchfoundation@695442f), [cdc84e3](scratchfoundation@cdc84e3), [4292446](scratchfoundation@4292446), [f1caca9](scratchfoundation@f1caca9), [d70ef73](scratchfoundation@d70ef73)), closes [scratchfoundation#538](scratchfoundation#538)
* **release:** set channel for release/* and hotfix/* branches ([ad3dc1a](scratchfoundation@ad3dc1a))
* **add-repo:** throw on duplicate dep keys after rewrite ([d6621f1](scratchfoundation@d6621f1))
* **add-repo:** propagate jq failures by writing via tmp+mv ([d5c5762](scratchfoundation@d5c5762))
* **add-repo:** rewire monorepo deps in alphabetical order ([51a46b8](scratchfoundation@51a46b8))
* address review points ([184ac49](scratchfoundation@184ac49))
* use rems and make outline similar in style to other outlines ([489403b](scratchfoundation@489403b))
* **add-repo:** use explicit marker for publish.yml insert point ([3448c2c](scratchfoundation@3448c2c))
* **add-repo:** strip husky v9 prepare script on import ([3fc01b3](scratchfoundation@3fc01b3))
* typo and queue cleanup ([968446e](scratchfoundation@968446e))
* utilize wistia js api onReady functionfor focusing the video when ready ([7b36b18](scratchfoundation@7b36b18))
* fixed global outline color and tab outline ([9b870c4](scratchfoundation@9b870c4))
* always focuses directly on the video play button now ([11de356](scratchfoundation@11de356))
* remove redundant cursor: pointer from save-now-button ([ca999eb](scratchfoundation@ca999eb))
* failing test ([c54c6b6](scratchfoundation@c54c6b6))
* allow keyboard events to propagate to blocks when a menu/modal is closed ([605c0b2](scratchfoundation@605c0b2))
* dispatch onClickSave fn in the menu-bar, instead of file-menu ([af2914a](scratchfoundation@af2914a))
* make save now button focusable and applu consistent styling with the rest of the menu buttons ([f4826f5](scratchfoundation@f4826f5))
* pass the onClickRemix method through the dispatch props ([56bfd7c](scratchfoundation@56bfd7c))
* **paint:** update scratch-paint to v4.1.52 ([cd98015](scratchfoundation@cd98015))
* **vm:** normalize displayed names for refs resolved by id during reconciliation ([da628df](scratchfoundation@da628df))
* **vm:** coalesce same-name dangling references in reconciliation ([1b44f2c](scratchfoundation@1b44f2c))
* **vm:** repair missing variable and broadcast definitions on project load ([946bfb8](scratchfoundation@946bfb8)), closes [scratchfoundation#554](scratchfoundation#554) [scratchfoundation#533](scratchfoundation#533)
* **vm:** create missing variable and broadcast definitions on import ([673e355](scratchfoundation@673e355)), closes [scratchfoundation#533](scratchfoundation#533)
* **deps:** update dependency scratch-blocks to v2.1.19 ([cb7947c](scratchfoundation@cb7947c), [7e62102](scratchfoundation@7e62102))
* onsuccess and onerror added to the saveprojectthumbnail ([76a7919](scratchfoundation@76a7919))

### Features

* bump accessibility release version ([ab22751](scratchfoundation@ab22751))
* **add-repo:** rewire monorepo names in bundleDependencies too ([79c87ee](scratchfoundation@79c87ee))
* **add-repo:** strip semantic-release artifacts on import ([39d7ed2](scratchfoundation@39d7ed2))
* **deps:** update dependency scratch-paint to v4.2.0 ([0bd2972](scratchfoundation@0bd2972))
* combine add-repo.sh and CI generator from [scratchfoundation#434](scratchfoundation#434) and [scratchfoundation#505](scratchfoundation#505) ([3fdfd68](scratchfoundation@3fdfd68)), closes [npm/cli#8845](npm/cli#8845)
* added keyboard movement logic inside debug modal ([13d9220](scratchfoundation@13d9220))
* initial accessibility improvements - popover close and modal tab limitations ([99f5428](scratchfoundation@99f5428))
* reimplemented algorithm for finding inner menus via HTML tag BFS ([f80c5d7](scratchfoundation@f80c5d7))
* more dropdowns in new files and stuff ([9914e61](scratchfoundation@9914e61))
* refactored dropdown menu logic ([1c05d24](scratchfoundation@1c05d24))
* added some accessability with arrow logic ([06d2d62](scratchfoundation@06d2d62))

### BREAKING CHANGES

* Accessibility release
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
chore(deps): update dependency ts-loader to v9.6.0
…re/sunset-membership-program

feat: make cat blocks available to everyone
…update-media-library-assets

feat: Update Media Library Assets
# [14.1.0](scratchfoundation/scratch-editor@v14.0.0...v14.1.0) (2026-06-02)

### Bug Fixes

* **deps:** pin dependencies ([scratchfoundation#564](scratchfoundation#564)) ([f0f7117](scratchfoundation@f0f7117))

### Features

* update media library assets from scratchfoundation/scratch-media-lib-assets at 40954b2 ([f981bdf](scratchfoundation@f981bdf))
* make cat blocks available to everyone ([783497a](scratchfoundation@783497a))
adzhindzhi and others added 23 commits August 18, 2026 18:10
…-546-configurable-library-asset-host

[UEPR-546] Make library asset host configurable
…n-update-project-thumbnail-unstable-ref

fix: unstable ref onUpdateProjectThumbnail in case of using it from s…
# [15.1.0](scratchfoundation/scratch-editor@v15.0.1...v15.1.0) (2026-08-20)

### Bug Fixes

* unstable ref onUpdateProjectThumbnail in case of using it from storage instance ([d6bcb74](scratchfoundation@d6bcb74))
* **deps:** update dependency papaparse to v5.6.0 ([2ccfc4d](scratchfoundation@2ccfc4d))
* **deps:** update dependency scratch-l10n to v6.1.110 ([b027676](scratchfoundation@b027676), [661411f](scratchfoundation@661411f), [8b5e75a](scratchfoundation@8b5e75a), [c60cb90](scratchfoundation@c60cb90), [6b2b013](scratchfoundation@6b2b013), [f787b8e](scratchfoundation@f787b8e), [48d36e7](scratchfoundation@48d36e7), [6fdbed8](scratchfoundation@6fdbed8), [ab9a9ab](scratchfoundation@ab9a9ab)), closes [scratchfoundation#674](scratchfoundation#674)
* **deps:** update dependency @testing-library/user-event to v14.6.4 ([344a50c](scratchfoundation@344a50c), [c297840](scratchfoundation@c297840))
* **deps:** update dependency scratch-sb1-converter to v2.0.280 ([09e874b](scratchfoundation@09e874b))
* **deps:** update dependency scratch-parser to v6.0.1 ([7a427c3](scratchfoundation@7a427c3))
* downgrade @radix-ui/react-context-menu version to a non-breaking one ([158ec9e](scratchfoundation@158ec9e))

### Features

* make library asset thumbnails fetch url configurable ([251ea80](scratchfoundation@251ea80))
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…ion#681)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…x/UEPR-656-always-send-project-thumbnails-with-fixed-image-size

[UEPR-656] fix: always save project thumbnails with a fixed image size
## [15.1.1](scratchfoundation/scratch-editor@v15.1.0...v15.1.1) (2026-09-02)

### Bug Fixes

* remove unnecessary call of requestSnapshot ([bc10430](scratchfoundation@bc10430))
* **deps:** update dependency svgo to v4.1.0 ([fa30926](scratchfoundation@fa30926))
* **deps:** update dependency papaparse to v5.7.0 ([a2c249b](scratchfoundation@a2c249b))
* **deps:** update dependency @testing-library/user-event to v14.6.6 ([a54b373](scratchfoundation@a54b373), [01a51c4](scratchfoundation@01a51c4))
* **deps:** update dependency scratch-l10n to v6.1.111 ([scratchfoundation#681](scratchfoundation#681)) ([98ffed8](scratchfoundation@98ffed8))
* synchronously scale thumbnails ([c747596](scratchfoundation@c747596))
* **deps:** update dependency immutable to v3.8.4 ([scratchfoundation#678](scratchfoundation#678)) ([bb7bf27](scratchfoundation@bb7bf27))
* always save project thumbnails with a fixed image size ([34a4795](scratchfoundation@34a4795))
* build: publish scratch-gui as @RaspberryPiFoundation on GitHub Packages

Rename scratch-gui to @RaspberryPiFoundation/scratch-gui with publishConfig
for GitHub Packages. Add root .npmrc for the scope and update package-lock.json
so the monorepo resolves the renamed workspace package.

Co-authored-by: Cursor <cursoragent@cursor.com>

* build: remove upstream and unavailable CI workflows

Remove publish.yml (MIT npmjs releases). Remove update-i18n.yml (Transifex
credentials we do not have). Remove signature-assistant.yml (MIT CLA bot
requires GHA_AGREEMENTS_PAT). Publishing and agreements are not used on
this fork's code-classroom integration path.

Co-authored-by: Cursor <cursoragent@cursor.com>

* build: align CI with code-classroom fork publishing

Publish @RaspberryPiFoundation/scratch-gui on push or workflow_dispatch to
code-classroom with version 13.7.3-code-classroom.<timestamp>. Add
packages:write, GitHub npm registry, NPM_AUTH_TOKEN for installs, and
Rolldown linux binaries in the build job.

Remove the GitHub Pages preview job; we do not use per-branch playground
previews on this fork.

Co-authored-by: Cursor <cursoragent@cursor.com>

* build: fix Linux test CI and drop EnricoMi test publishing

Install @rolldown/binding-linux-x64-gnu in the test-package action for
ubuntu-latest runners. Remove EnricoMi test result publishing and extra
permissions from test-packages; keep the pass/fail outcome check only.

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs: document code-classroom fork and upstream sync

Document code-classroom-base on MIT release tags, code-classroom integration,
compare link for RPF-only diffs, editor-ui as primary consumer, GitHub
Packages publishing, local dev, and refreshing the base branch from MIT
releases.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Rebase the fork onto upstream v15.1.1 (was v13.7.3), so bump the hardcoded
publish version and the README's upstream-release references to match.

Drop the RPF library-asset-url patch (PR #5) rather than carrying it forward:
upstream v15.1.1 added GUIStorage.getLibraryAssetUrl(assetId, dataFormat) as a
first-class extension point, which covers the same use case as our
libraryAssetUrlTemplate prop and context provider. Consumers now supply a
storage implementation instead. Agreed with the patch's original author.

Alternative considered: resolving the conflicts and keeping our context-based
version. Rejected because it leaves two competing mechanisms in library.jsx and
keeps the fork carrying source patches, making every future upstream bump
expensive. With #5 dropped the fork is CI/packaging config only.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings September 18, 2026 09:46

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

One or more issues must be addressed before approval.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Upgrades the monorepo packages to upstream v15.1.1, adds the scoped package structure, introduces the new storage/paint functionality, and updates GUI accessibility and library asset handling.

Changes:

  • Adds scratch-storage and scratch-paint package implementations and tests.
  • Makes SVG rendering and costume loading asynchronous.
  • Updates package imports, build tooling, CI configuration, and GUI accessibility behavior.
File summaries
File Description
renovate.json5 Updated as part of this pull request.
packages/task-herder/TRADEMARK Updated as part of this pull request.
packages/task-herder/package.json Updated as part of this pull request.
packages/scratch-vm/webpack.config.js Updated as part of this pull request.
packages/scratch-vm/test/integration/offline-custom-assets.js Updated as part of this pull request.
packages/scratch-vm/test/fixtures/make-test-storage.js Updated as part of this pull request.
packages/scratch-vm/src/playground/benchmark.js Updated as part of this pull request.
packages/scratch-vm/src/import/load-costume.js Updated as part of this pull request.
packages/scratch-vm/src/engine/runtime.js Updated as part of this pull request.
packages/scratch-vm/release.config.js Updated as part of this pull request.
packages/scratch-svg-renderer/webpack.config.js Updated as part of this pull request.
packages/scratch-svg-renderer/test/playwright/measure-harness.html Updated as part of this pull request.
packages/scratch-svg-renderer/test/playwright/load-svg-string-harness.html Updated as part of this pull request.
packages/scratch-svg-renderer/test/playwright/harness.html Updated as part of this pull request.
packages/scratch-svg-renderer/src/svg-renderer.js Updated as part of this pull request.
packages/scratch-svg-renderer/src/index.js Updated as part of this pull request.
packages/scratch-svg-renderer/release.config.js Updated as part of this pull request.
packages/scratch-svg-renderer/playwright.config.js Updated as part of this pull request.
packages/scratch-svg-renderer/eslint.config.mjs Updated as part of this pull request.
packages/scratch-storage/tsconfig.test.json Updated as part of this pull request.
packages/scratch-storage/tsconfig.json Updated as part of this pull request.
packages/scratch-storage/TRADEMARK Updated as part of this pull request.
packages/scratch-storage/test/unit/fetch-tool.test.js Updated as part of this pull request.
packages/scratch-storage/test/transformers/arraybuffer-loader.js Updated as part of this pull request.
packages/scratch-storage/test/fixtures/.gitattributes Updated as part of this pull request.
packages/scratch-storage/test/build/scratchFetch.test.js Updated as part of this pull request.
packages/scratch-storage/src/types.d.ts Updated as part of this pull request.
packages/scratch-storage/src/Tool.ts Updated as part of this pull request.
packages/scratch-storage/src/log.ts Updated as part of this pull request.
packages/scratch-storage/src/index.ts Updated as part of this pull request.
packages/scratch-storage/src/HostQueues.ts Updated as part of this pull request.
packages/scratch-storage/src/Helper.ts Updated as part of this pull request.
packages/scratch-storage/src/DataFormat.ts Updated as part of this pull request.
packages/scratch-storage/src/builtins/defaultVector.svg Updated as part of this pull request.
packages/scratch-storage/src/AssetType.ts Updated as part of this pull request.
packages/scratch-storage/jest.config.js Updated as part of this pull request.
packages/scratch-storage/eslint.config.mjs Updated as part of this pull request.
packages/scratch-storage/.npmignore Updated as part of this pull request.
packages/scratch-storage/.gitignore Updated as part of this pull request.
packages/scratch-storage/.browserslistrc Updated as part of this pull request.
packages/scratch-render/test/integration/skin-size-tests.js Updated as part of this pull request.
packages/scratch-render/test/integration/index.html Updated as part of this pull request.
packages/scratch-render/test/integration/cpu-render.html Updated as part of this pull request.
packages/scratch-render/src/RenderWebGL.js Updated as part of this pull request.
packages/scratch-render/src/playground/playground.js Updated as part of this pull request.
packages/scratch-render/release.config.js Updated as part of this pull request.
packages/scratch-paint/webpack.config.js Updated as part of this pull request.
packages/scratch-paint/TRADEMARK Updated as part of this pull request.
packages/scratch-paint/test/unit/paper-import-script.test.js Updated as part of this pull request.
packages/scratch-paint/test/unit/modes-reducer.test.js Updated as part of this pull request.
packages/scratch-paint/test/unit/hover-reducer.test.js Updated as part of this pull request.
packages/scratch-paint/test/unit/format-reducer.test.js Updated as part of this pull request.
packages/scratch-paint/test/unit/components/button-click.test.jsx Updated as part of this pull request.
packages/scratch-paint/test/jest-canvas-environment.js Updated as part of this pull request.
packages/scratch-paint/test/helpers/enzyme-setup.js Updated as part of this pull request.
packages/scratch-paint/test/fixtures/invalid-paper-data.svg Updated as part of this pull request.
packages/scratch-paint/test/mocks/styleMock.js Updated as part of this pull request.
packages/scratch-paint/test/mocks/react-intl.js Updated as part of this pull request.
packages/scratch-paint/test/mocks/paperMocks.js Updated as part of this pull request.
packages/scratch-paint/test/mocks/fileMock.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/zoom-levels.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/view-bounds.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/text-edit-target.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/stroke-width.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/scratch-paint-reducer.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/modes.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/modals.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/layout.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/hover.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/format.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/font.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/fill-style.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/fill-mode.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/fill-mode-gradient-type.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/fill-bitmap-shapes.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/eye-dropper.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/eraser-mode.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/cursor.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/color.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/color-index.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/clipboard.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/brush-mode.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/bit-eraser-size.js Updated as part of this pull request.
packages/scratch-paint/src/reducers/bit-brush-size.js Updated as part of this pull request.
packages/scratch-paint/src/playground/reducers/intl.js Updated as part of this pull request.
packages/scratch-paint/src/playground/reducers/combine-reducers.js Updated as part of this pull request.
packages/scratch-paint/src/playground/playground.css Updated as part of this pull request.
packages/scratch-paint/src/playground/index.ejs Updated as part of this pull request.
packages/scratch-paint/src/log/log.js Updated as part of this pull request.
packages/scratch-paint/src/lib/touch-utils.js Updated as part of this pull request.
packages/scratch-paint/src/lib/modes.js Updated as part of this pull request.
packages/scratch-paint/src/lib/messages.js Updated as part of this pull request.
packages/scratch-paint/src/lib/layout-constants.js Updated as part of this pull request.
packages/scratch-paint/src/lib/intl-shape.js Updated as part of this pull request.
packages/scratch-paint/src/lib/hide-label.js Updated as part of this pull request.
packages/scratch-paint/src/lib/gradient-types.js Updated as part of this pull request.
packages/scratch-paint/src/lib/format.js Updated as part of this pull request.
packages/scratch-paint/src/lib/fonts.js Updated as part of this pull request.
packages/scratch-paint/src/lib/cursors.js Updated as part of this pull request.
packages/scratch-paint/src/lib/color-style-proptype.js Updated as part of this pull request.
packages/scratch-paint/src/index.js Updated as part of this pull request.
packages/scratch-paint/src/hocs/selection-hoc.jsx Updated as part of this pull request.
packages/scratch-paint/src/helper/strip-invalid-paper-data.js Updated as part of this pull request.
packages/scratch-paint/src/helper/paper-sandbox.js Updated as part of this pull request.
packages/scratch-paint/src/helper/hover.js Updated as part of this pull request.
packages/scratch-paint/src/helper/compound-path.js Updated as part of this pull request.
packages/scratch-paint/src/css/units.css Updated as part of this pull request.
packages/scratch-paint/src/css/colors.css Updated as part of this pull request.
packages/scratch-paint/src/containers/paper-canvas.css Updated as part of this pull request.
packages/scratch-paint/src/components/tool-select-base/tool-select-base.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/tool-select-base/tool-select-base.css Updated as part of this pull request.
packages/scratch-paint/src/components/text-mode/text-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/stroke-width-indicator.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/select-mode/select.svg Updated as part of this pull request.
packages/scratch-paint/src/components/select-mode/select-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/scrollable-canvas/scrollable-canvas.css Updated as part of this pull request.
packages/scratch-paint/src/components/rounded-rect-mode/rounded-rectangle.svg Updated as part of this pull request.
packages/scratch-paint/src/components/rounded-rect-mode/rounded-rect-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/reshape-mode/reshape-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/rect-mode/rectangle.svg Updated as part of this pull request.
packages/scratch-paint/src/components/rect-mode/rect-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/paint-editor/icons/zoom-reset.svg Updated as part of this pull request.
packages/scratch-paint/src/components/paint-editor/icons/zoom-out.svg Updated as part of this pull request.
packages/scratch-paint/src/components/paint-editor/icons/zoom-in.svg Updated as part of this pull request.
packages/scratch-paint/src/components/paint-editor/icons/rotation-point.svg Updated as part of this pull request.
packages/scratch-paint/src/components/paint-editor/icons/bitmap.svg Updated as part of this pull request.
packages/scratch-paint/src/components/oval-mode/oval.svg Updated as part of this pull request.
packages/scratch-paint/src/components/oval-mode/oval-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/mode-tools/mode-tools.css Updated as part of this pull request.
packages/scratch-paint/src/components/mode-tools/icons/straight-point.svg Updated as part of this pull request.
packages/scratch-paint/src/components/mode-tools/icons/curved-point.svg Updated as part of this pull request.
packages/scratch-paint/src/components/loupe/loupe.css Updated as part of this pull request.
packages/scratch-paint/src/components/line-mode/line.svg Updated as part of this pull request.
packages/scratch-paint/src/components/line-mode/line-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/labeled-icon-button/labeled-icon-button.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/labeled-icon-button/labeled-icon-button.css Updated as part of this pull request.
packages/scratch-paint/src/components/input-group/input-group.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/input-group/input-group.css Updated as part of this pull request.
packages/scratch-paint/src/components/forms/slider.css Updated as part of this pull request.
packages/scratch-paint/src/components/forms/label.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/forms/label.css Updated as part of this pull request.
packages/scratch-paint/src/components/forms/input.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/forms/input.css Updated as part of this pull request.
packages/scratch-paint/src/components/fill-mode/fill-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/eraser-mode/eraser-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/dropdown/dropdown.css Updated as part of this pull request.
packages/scratch-paint/src/components/dropdown/dropdown-caret.svg Updated as part of this pull request.
packages/scratch-paint/src/components/color-picker/icons/fill-vert-gradient-enabled.svg Updated as part of this pull request.
packages/scratch-paint/src/components/color-picker/icons/fill-solid-enabled.svg Updated as part of this pull request.
packages/scratch-paint/src/components/color-picker/icons/fill-radial-enabled.svg Updated as part of this pull request.
packages/scratch-paint/src/components/color-picker/icons/fill-horz-gradient-enabled.svg Updated as part of this pull request.
packages/scratch-paint/src/components/color-button/no-fill.svg Updated as part of this pull request.
packages/scratch-paint/src/components/color-button/mixed-fill.svg Updated as part of this pull request.
packages/scratch-paint/src/components/button/button.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/button/button.css Updated as part of this pull request.
packages/scratch-paint/src/components/button-group/button-group.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/button-group/button-group.css Updated as part of this pull request.
packages/scratch-paint/src/components/brush-mode/brush-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/bit-text-mode/text.svg Updated as part of this pull request.
packages/scratch-paint/src/components/bit-text-mode/bit-text-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/bit-select-mode/bit-select-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/bit-rect-mode/rectangle.svg Updated as part of this pull request.
packages/scratch-paint/src/components/bit-rect-mode/rectangle-outlined.svg Updated as part of this pull request.
packages/scratch-paint/src/components/bit-rect-mode/bit-rect-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/bit-oval-mode/oval.svg Updated as part of this pull request.
packages/scratch-paint/src/components/bit-oval-mode/bit-oval-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/bit-line-mode/line.svg Updated as part of this pull request.
packages/scratch-paint/src/components/bit-line-mode/bit-line-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/bit-fill-mode/bit-fill-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/bit-eraser-mode/bit-eraser-mode.jsx Updated as part of this pull request.
packages/scratch-paint/src/components/bit-brush-mode/bit-brush-mode.jsx Updated as part of this pull request.
packages/scratch-paint/scripts/build-i18n-source.js Updated as part of this pull request.
packages/scratch-paint/.tx/config Updated as part of this pull request.
packages/scratch-paint/.npmignore Updated as part of this pull request.
packages/scratch-paint/.gitignore Updated as part of this pull request.
packages/scratch-paint/.babelrc Updated as part of this pull request.
packages/scratch-media-lib-scripts/package.json Updated as part of this pull request.
packages/scratch-media-lib-scripts/.nvmrc Updated as part of this pull request.
packages/scratch-gui/webpack.config.js Updated as part of this pull request.
packages/scratch-gui/test/unit/containers/snapshots/sound-editor.test.jsx.snap Updated as part of this pull request.
packages/scratch-gui/test/unit/components/controls.test.jsx Updated as part of this pull request.
packages/scratch-gui/test/unit/components/snapshots/sprite-selector-item.test.jsx.snap Updated as part of this pull request.
packages/scratch-gui/test/unit/components/snapshots/sound-editor.test.jsx.snap Updated as part of this pull request.
packages/scratch-gui/test/integration/sounds.test.js Updated as part of this pull request.
packages/scratch-gui/test/integration/sb-file-uploader-hoc.test.js Updated as part of this pull request.
packages/scratch-gui/test/integration/project-state.test.js Updated as part of this pull request.
packages/scratch-gui/test/integration/project-loading.test.js Updated as part of this pull request.
packages/scratch-gui/test/integration/menu-bar.test.js Updated as part of this pull request.
packages/scratch-gui/test/integration/localization.test.js Updated as part of this pull request.
packages/scratch-gui/test/integration/blocks.test.js Updated as part of this pull request.
packages/scratch-gui/test/integration/blocks-standalone.test.js Updated as part of this pull request.
packages/scratch-gui/test/helpers/selenium-helper.js Updated as part of this pull request.
packages/scratch-gui/src/types.d.ts Updated as part of this pull request.
packages/scratch-gui/src/lib/store-project-thumbnail.js Updated as part of this pull request.
packages/scratch-gui/src/lib/settings/theme/index.js Updated as part of this pull request.
packages/scratch-gui/src/lib/sb-file-uploader-hoc.jsx Updated as part of this pull request.
packages/scratch-gui/src/lib/project-saver-hoc.jsx Updated as part of this pull request.
packages/scratch-gui/src/lib/legacy-storage.ts Updated as part of this pull request.
packages/scratch-gui/src/lib/legacy-library-asset-url.ts Updated as part of this pull request.
packages/scratch-gui/src/lib/legacy-backpack-storage.ts Updated as part of this pull request.
packages/scratch-gui/src/lib/editor-state.tsx Updated as part of this pull request.
packages/scratch-gui/src/index-standalone.tsx Updated as part of this pull request.
packages/scratch-gui/src/gui-config.ts Updated as part of this pull request.
packages/scratch-gui/src/exported-reducers.ts Updated as part of this pull request.
packages/scratch-gui/src/css/colors.css Updated as part of this pull request.
packages/scratch-gui/src/containers/sprite-library.jsx Updated as part of this pull request.
packages/scratch-gui/src/containers/paint-editor-wrapper.jsx Updated as part of this pull request.
packages/scratch-gui/src/containers/menu.jsx Updated as part of this pull request.
packages/scratch-gui/src/containers/menu-item.jsx Updated as part of this pull request.
packages/scratch-gui/src/containers/language-selector.jsx Updated as part of this pull request.
packages/scratch-gui/src/containers/costume-library.jsx Updated as part of this pull request.
packages/scratch-gui/src/containers/controls.jsx Updated as part of this pull request.
packages/scratch-gui/src/containers/backdrop-library.jsx Updated as part of this pull request.
packages/scratch-gui/src/components/stop-all/stop-all.jsx Updated as part of this pull request.
packages/scratch-gui/src/components/stage-selector/stage-selector.jsx Updated as part of this pull request.
packages/scratch-gui/src/components/sprite-selector-item/sprite-selector-item.jsx Updated as part of this pull request.
packages/scratch-gui/src/components/sound-editor/sound-editor.jsx Updated as part of this pull request.
packages/scratch-gui/src/components/sound-editor/sound-editor.css Updated as part of this pull request.
packages/scratch-gui/src/components/menu-bar/settings-menu.css Updated as part of this pull request.
packages/scratch-gui/src/components/menu-bar/save-status.jsx Updated as part of this pull request.
packages/scratch-gui/src/components/menu-bar/save-status.css Updated as part of this pull request.
packages/scratch-gui/src/components/menu-bar/menu-bar.css Updated as part of this pull request.
packages/scratch-gui/src/components/menu-bar/language-menu.css Updated as part of this pull request.
packages/scratch-gui/src/components/menu-bar/author-info.jsx Updated as part of this pull request.
packages/scratch-gui/src/components/menu-bar/account-menu.css Updated as part of this pull request.
packages/scratch-gui/src/components/menu-bar/about-menu.css Updated as part of this pull request.
packages/scratch-gui/src/components/icon-button/icon-button.jsx Updated as part of this pull request.
packages/scratch-gui/src/components/gui/gui.css Updated as part of this pull request.
packages/scratch-gui/src/components/green-flag/green-flag.jsx Updated as part of this pull request.
packages/scratch-gui/src/components/forms/label.jsx Updated as part of this pull request.
packages/scratch-gui/src/components/extension-button/extension-button.css Updated as part of this pull request.
packages/scratch-gui/src/components/direction-picker/direction-picker.jsx Updated as part of this pull request.
packages/scratch-gui/src/components/delete-button/delete-button.jsx Updated as part of this pull request.
packages/scratch-gui/src/components/debug-modal/debug-modal.css Updated as part of this pull request.
packages/scratch-gui/src/components/controls/controls.jsx Updated as part of this pull request.
packages/scratch-gui/src/components/confirmation-prompt/confirmation-prompt.jsx Updated as part of this pull request.
packages/scratch-gui/src/components/cards/card.css Updated as part of this pull request.
packages/scratch-gui/src/components/alerts/inline-message.jsx Updated as part of this pull request.
packages/scratch-gui/src/components/action-menu/action-menu.css Updated as part of this pull request.
packages/scratch-gui/release.config.js Updated as part of this pull request.
CLAUDE.md Updated as part of this pull request.
.nvmrc Updated as part of this pull request.
.npmrc Updated as part of this pull request.
.gitignore Updated as part of this pull request.
.github/workflows/update-i18n.yml Updated as part of this pull request.
.github/workflows/test-packages.yml Updated as part of this pull request.
.github/workflows/signature-assistant.yml Updated as part of this pull request.
.github/release.yml Updated as part of this pull request.
.github/path-filters.yml Updated as part of this pull request.
.github/actions/test-package/action.yml Updated as part of this pull request.
Review details

Suppressed comments (1)

packages/scratch-gui/src/components/sprite-selector-item/sprite-selector-item.jsx:29

  • The new keyboard handler only activates the role="button" sprite item for Enter. WAI-ARIA buttons must also activate on Space; without it, keyboard users cannot open a sprite item with the standard Space key.
  • Files reviewed: 215/484 changed files
  • Comments generated: 8
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread packages/scratch-paint/src/helper/paper-sandbox.js
Comment thread packages/scratch-paint/src/lib/color-style-proptype.js
Comment thread packages/scratch-storage/src/HostQueues.ts
Comment thread packages/scratch-svg-renderer/webpack.config.js
Comment thread packages/scratch-paint/src/components/button/button.jsx
Comment thread packages/scratch-paint/src/components/forms/label.css
Comment thread packages/scratch-paint/src/reducers/cursor.js
Comment thread packages/scratch-svg-renderer/src/svg-renderer.js
jamiebenstead and others added 2 commits September 18, 2026 11:08
Records the existing integration branch as merged without taking its tree.
code-classroom is upstream v13.7.3 plus three RPF commits; this branch is
upstream v15.1.1 with #3 and #4 reapplied and #5 intentionally dropped in
favour of upstream's GUIStorage.getLibraryAssetUrl, so there is nothing on
code-classroom left to carry over.

Needed because the cherry-picks produced new SHAs, leaving the branches with
no shared recent history and GitHub reporting conflicts across the diff.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Resolving the v15.1.1 lock file conflict dropped the
node_modules/@RaspberryPiFoundation/scratch-gui link entry, so npm ci failed
with "Missing: @RaspberryPiFoundation/scratch-gui@15.1.1 from lock file".

Re-add it pointing at packages/scratch-gui. The lock file now differs from
upstream v15.1.1 by exactly the package rename and nothing else; verified with
npm ci --dry-run.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 21, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants