Conversation
refactor: Bootstrap scratch-blocks based on Blockly 10.
* fix: readd the operator blocks and dependencies * fix: only import core Blockly blocks_common/math.js Co-authored-by: Beka Westberg <[email protected]> * fix: only import core Blockly in vertical_extensions.js --------- Co-authored-by: Beka Westberg <[email protected]>
* fix: readd the motion blocks * fix: use the colours_motion extension instead of hardcoding colors
* fix: readd the event blocks * fix: only import core Blockly
* fix: readd the sound blocks * chore: remove vestigial sound_sounds_menu implementation
* fix: readd the data blocks * fix: import constants correctly
* fix: load CSS and fix up UI appearance * fix: fix size of flyout section header labels
* refactor: move procedures.js into src * fix: add support for Scratch-style procedures * chore: remove errant logging * refactor: remove underscore from exported callback attribute
* fix: modernize and reenable the colour slider field * refactor: clean up FieldColourSlider * refactor: extend the FieldColour Blockly plugin * refactor: remove redundant setting of colour on source block
* fix: reenable support for checkboxes in the flyout * refactor: use a map instead of an object for storing checkboxes * chore: remove debugging code * refactor: improve variable names for checkbox position * chore: fix line wrapping indentation * refactor: don't store checkbox wrapper objects on blocks
* fix: reenable the vertical separator field * refactor: clean up field_vertical_separator.js
# [2.0.0-spork.5](v2.0.0-spork.4...v2.0.0-spork.5) (2025-08-26) ### Bug Fixes * **deps:** use blockly 12.3 beta ([76981e1](76981e1)) * fix bug that could cause the wrong toolbox category to appear selected ([#232](#232)) ([ec918e2](ec918e2)) * fix bug that could clear the values of procedure block caller arguments ([#247](#247)) ([611e440](611e440)) * fix bug that prevented moving block comments ([#248](#248)) ([dc17159](dc17159)) * fix deserialization of local/cloud variables ([#245](#245)) ([09bb237](09bb237)) * fix ephemeral focus handling for `FieldAngle` and `FieldNote` ([#244](#244)) ([8b758db](8b758db)) * fix positioning of block comments in RTL mode ([#249](#249)) ([9f1da96](9f1da96)) * improve styling, especially in high contrast mode ([#246](#246)) ([abd9a40](abd9a40)) * make Duplicate context menu item duplicate subsequent blocks ([#250](#250)) ([3a43e6b](3a43e6b)) * make insertion markers reflect the actual size of the block ([#251](#251)) ([c824cc1](c824cc1)) * prevent toolbox categories from becoming unselected ([#233](#233)) ([af66069](af66069))
…p-node-6.x chore(deps): update actions/setup-node action to v6
chore(deps): update node.js to v20
…kout-6.x chore(deps): update actions/checkout action to v6
Part 1 of a multi-part "merge from develop"
Part 2 of a multi-part "merge from develop"
# [2.0.0-spork.6](v2.0.0-spork.5...v2.0.0-spork.6) (2025-12-23) ### Bug Fixes * "is online?" -> "online?" ([3f224b3](3f224b3)) * **deps:** lock file maintenance ([ed86aac](ed86aac)) * **deps:** lock file maintenance ([885fcbc](885fcbc)) * **deps:** lock file maintenance ([6145375](6145375)) * **deps:** lock file maintenance ([809da8d](809da8d)) * **deps:** lock file maintenance ([d5d5674](d5d5674)) * **deps:** lock file maintenance ([018ecfd](018ecfd)) * **deps:** lock file maintenance ([d4630fa](d4630fa)) * **deps:** lock file maintenance ([0572819](0572819)) * **deps:** lock file maintenance ([25c0284](25c0284)) * **deps:** lock file maintenance ([f0ea94c](f0ea94c)) * **deps:** lock file maintenance ([9a36ff2](9a36ff2)) * **deps:** lock file maintenance ([3da1368](3da1368)) * **deps:** lock file maintenance ([1a47501](1a47501)) * **deps:** lock file maintenance ([21825fc](21825fc)) * **deps:** lock file maintenance ([e9e6319](e9e6319)) * **deps:** lock file maintenance ([bad7b59](bad7b59)) * **deps:** lock file maintenance ([5b6ca5b](5b6ca5b)) * **deps:** lock file maintenance ([4d60857](4d60857)) * **deps:** lock file maintenance ([22a03ed](22a03ed)) * **deps:** lock file maintenance ([98e313b](98e313b)) * **deps:** lock file maintenance ([326fcbe](326fcbe)) * **deps:** lock file maintenance ([7fdd948](7fdd948)) * **deps:** lock file maintenance ([3a65ff1](3a65ff1)) * **deps:** lock file maintenance ([926ed34](926ed34)) * **deps:** lock file maintenance ([a367a58](a367a58)) * **deps:** lock file maintenance ([2e3a31e](2e3a31e)) * **deps:** lock file maintenance ([f03ec32](f03ec32)) * **deps:** lock file maintenance ([ce2d072](ce2d072)) * **deps:** lock file maintenance ([634c1f9](634c1f9)) * **deps:** lock file maintenance ([24e1180](24e1180)) * **deps:** lock file maintenance ([91b2386](91b2386)) * **deps:** lock file maintenance ([9a13c39](9a13c39)) * **deps:** lock file maintenance ([69ed11b](69ed11b)) * **deps:** lock file maintenance ([d12aa91](d12aa91)) * **deps:** lock file maintenance ([c6abb84](c6abb84)) * **deps:** lock file maintenance ([69e6333](69e6333)) * **deps:** lock file maintenance ([996605a](996605a)) * **deps:** lock file maintenance ([1d9beda](1d9beda)) * **deps:** lock file maintenance ([bb064ef](bb064ef)) * **deps:** lock file maintenance ([986bc7c](986bc7c)) * **deps:** lock file maintenance ([fa93b04](fa93b04)) * **deps:** lock file maintenance ([7a655b9](7a655b9)) * **deps:** lock file maintenance ([cddf23d](cddf23d)) * **deps:** lock file maintenance ([180a044](180a044)) * **deps:** lock file maintenance ([375b029](375b029)) * **deps:** lock file maintenance ([ce43bcc](ce43bcc)) * **deps:** lock file maintenance ([6129e79](6129e79)) * **deps:** lock file maintenance ([fb9bcd3](fb9bcd3)) * **deps:** lock file maintenance ([5b3a8a0](5b3a8a0)) * **deps:** lock file maintenance ([ce83755](ce83755)) * **deps:** lock file maintenance ([be830ee](be830ee)) * **deps:** lock file maintenance ([a8f28ce](a8f28ce)) * **deps:** lock file maintenance ([e6c655f](e6c655f)) * **deps:** lock file maintenance ([e30b2ef](e30b2ef)) * **deps:** lock file maintenance ([f3a29bc](f3a29bc)) * **deps:** lock file maintenance ([38143d4](38143d4)) * **deps:** lock file maintenance ([631abb4](631abb4)) * **deps:** lock file maintenance ([ce36722](ce36722)) * **deps:** lock file maintenance ([0cbcafe](0cbcafe)) * **deps:** lock file maintenance ([0df4a92](0df4a92)) * **deps:** lock file maintenance ([9ac5f7e](9ac5f7e)) * **deps:** lock file maintenance ([5edd55a](5edd55a)) * **deps:** lock file maintenance ([23a43ad](23a43ad)) * **deps:** lock file maintenance ([3db2383](3db2383)) * **deps:** lock file maintenance ([2815ed3](2815ed3)) * **deps:** lock file maintenance ([aaf644e](aaf644e)) * **deps:** lock file maintenance ([565090d](565090d)) * **deps:** lock file maintenance ([bf1fa9e](bf1fa9e)) * **deps:** lock file maintenance ([8cd9f3a](8cd9f3a)) * **deps:** lock file maintenance ([be9ae67](be9ae67)) * **deps:** lock file maintenance ([985a48b](985a48b)) * **deps:** lock file maintenance ([ef90c4e](ef90c4e)) * **deps:** lock file maintenance ([47e0476](47e0476)) * **deps:** lock file maintenance ([3cf914e](3cf914e)) * **deps:** lock file maintenance ([ca1a438](ca1a438)) * **deps:** lock file maintenance ([5d0b1a5](5d0b1a5)) * **deps:** lock file maintenance ([c930edc](c930edc)) * **deps:** lock file maintenance ([abb2527](abb2527)) * **deps:** lock file maintenance ([f625559](f625559)) * **deps:** lock file maintenance ([f1d96ea](f1d96ea)) * **deps:** lock file maintenance ([2753283](2753283)) * **deps:** lock file maintenance ([fe3699a](fe3699a)) * **deps:** lock file maintenance ([9be316e](9be316e)) * **deps:** lock file maintenance ([bd6c9df](bd6c9df)) * **deps:** lock file maintenance ([e17d972](e17d972)) * **deps:** lock file maintenance ([52db517](52db517)) * **deps:** lock file maintenance ([f030d5b](f030d5b)) * **deps:** lock file maintenance ([54c4908](54c4908)) * **deps:** lock file maintenance ([bdd5b4b](bdd5b4b)) * **deps:** lock file maintenance ([cd618ca](cd618ca)) * **deps:** lock file maintenance ([f1fb6fe](f1fb6fe)) * **deps:** lock file maintenance ([bc49026](bc49026)) * **deps:** lock file maintenance ([4525909](4525909)) * **deps:** lock file maintenance ([e27ae83](e27ae83)) * **deps:** lock file maintenance ([91a713d](91a713d)) * **deps:** lock file maintenance ([727018c](727018c)) * **deps:** lock file maintenance ([f9ac21f](f9ac21f)) * **deps:** lock file maintenance ([c714bb7](c714bb7)) * **deps:** lock file maintenance ([b194ad6](b194ad6)) * **deps:** lock file maintenance ([cce9512](cce9512)) * **deps:** lock file maintenance ([770836c](770836c)) * **deps:** lock file maintenance ([dae0421](dae0421)) * **deps:** lock file maintenance ([48c13fb](48c13fb)) * **deps:** lock file maintenance ([8ef6fe7](8ef6fe7)) * **deps:** lock file maintenance ([3f80f13](3f80f13)) * **deps:** lock file maintenance ([5b5e9f9](5b5e9f9)) * **deps:** lock file maintenance ([2ea5191](2ea5191)) * **deps:** lock file maintenance ([7fab9d8](7fab9d8)) * **deps:** lock file maintenance ([0eda647](0eda647)) * **deps:** lock file maintenance ([80396c8](80396c8)) * **deps:** lock file maintenance ([4918868](4918868)) * **deps:** lock file maintenance ([4c1855a](4c1855a)) * **deps:** lock file maintenance ([4723caf](4723caf)) * **deps:** lock file maintenance ([8302b44](8302b44)) * **deps:** lock file maintenance ([d071017](d071017)) * **deps:** lock file maintenance ([ef80dd2](ef80dd2)) * **deps:** lock file maintenance ([9e03aaf](9e03aaf)) * **deps:** lock file maintenance ([f5b691b](f5b691b)) * **deps:** lock file maintenance ([6411381](6411381)) * **deps:** lock file maintenance ([0f2cd62](0f2cd62)) * **deps:** lock file maintenance ([adbebde](adbebde)) * **deps:** lock file maintenance ([d475996](d475996)) * **deps:** lock file maintenance ([3fd3eac](3fd3eac)) * **deps:** lock file maintenance ([b281476](b281476)) * **deps:** lock file maintenance ([d2c940b](d2c940b)) * **deps:** lock file maintenance ([794875e](794875e)) * **deps:** lock file maintenance ([c1fa17e](c1fa17e)) * **deps:** lock file maintenance ([dc610ea](dc610ea)) * **deps:** lock file maintenance ([d3c7783](d3c7783)) * **deps:** lock file maintenance ([44bf8ca](44bf8ca)) * **deps:** lock file maintenance ([a00fa5c](a00fa5c)) * **deps:** lock file maintenance ([8969200](8969200)) * **deps:** lock file maintenance ([fc6e93a](fc6e93a)) * **deps:** lock file maintenance ([3991624](3991624)) * **deps:** lock file maintenance ([5e1bad7](5e1bad7)) * **deps:** lock file maintenance ([c9f8fef](c9f8fef)) * **deps:** lock file maintenance ([070162c](070162c)) * **deps:** lock file maintenance ([575802a](575802a)) * **deps:** lock file maintenance ([94ddb2e](94ddb2e)) * **deps:** lock file maintenance ([92de01a](92de01a)) * **deps:** lock file maintenance ([c7f13ab](c7f13ab)) * **deps:** lock file maintenance ([4572779](4572779)) * **deps:** lock file maintenance ([2424cf2](2424cf2)) * **deps:** lock file maintenance ([ccb2eda](ccb2eda)) * **deps:** lock file maintenance ([09e252f](09e252f)) * **deps:** lock file maintenance ([4f41a8a](4f41a8a)) * **deps:** update dependency scratch-semantic-release-config to v1.0.16 ([170f890](170f890)) * seed sensing_online translations ([00da004](00da004)) * update translations ([678fdca](678fdca)) ### Features * sensing_online ([6a39b7b](6a39b7b))
…evelop Re-implement cat block rendering in Blockly v12 terms
# [2.0.0-spork.7](v2.0.0-spork.6...v2.0.0-spork.7) (2026-02-02) ### Bug Fixes * address minor feedback from automated review ([9971b64](9971b64)) * some silly issues and a rename ([acfb3e6](acfb3e6)) * use browserEvents.bind instead of direct binding ([b2a5d2c](b2a5d2c)) * use getters to dynamically update svg block constants ([4bd9618](4bd9618)) ### Features * abstract away some of the cat-blocks implementation logic ([c44cb57](c44cb57)) * add comment ([c88ca72](c88ca72)) * make cat-blocks code configurable behind a flag ([45a93bb](45a93bb))
…rom the input itself
fix: allow Scratch-style zoom controls as separate SVGs
…fixes Connection highlight fixes
# [2.0.0-spork.8](v2.0.0-spork.7...v2.0.0-spork.8) (2026-02-27) ### Bug Fixes * allow Scratch-style zoom controls as separate SVGs ([99a40ab](99a40ab)) * **deps:** update Blockly to 12.4.1 and update its plugins ([f2e698a](f2e698a)) * make input connection highlight larger to ensure it's distinct from the input itself ([0a946b9](0a946b9)) * prefer input shape for connection hints ([e161897](e161897)) * show non-Boolean connection hints ([d4a9ff5](d4a9ff5))
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Proposed Changes
Before:
scratch-blocksis a heavily modified fork of a very old version of BlocklyAfter:
scratch-blockslists a very recent official, unmodified version of Blockly (v12 beta) as one of its dependenciesReason for Changes
We can use new Blockly features!
We can more easily maintain
scratch-blocks!We can keep up to date with new Blockly releases!
We can hang with the cool kids at Blockly-related parties!
Test Coverage
We should really add tests to this repo, but tests in
scratch-vmandscratch-guicover this functionality somewhat.Thank you!
Big thanks to @BeksOmega, @gonfunko, @mmathrani, @rachel-fenichel, and everyone else who helped make this happen!