Code classroom v15 - #6
Closed
jamiebenstead wants to merge 7098 commits into
Closed
jamiebenstead wants to merge 7098 commits into
jamiebenstead wants to merge 7098 commits into
Conversation
- 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 feat/add-scratch-paint-to-monorepo
… 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
…a-lib-assets at 40954b2
…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))
…-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>
There was a problem hiding this comment.
🟡 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-storageandscratch-paintpackage 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.
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
getLibraryAssetUrlNotes
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