March 2022 release available

Skip to first unread message

Maribeth Bottorff

Mar 31, 2022, 4:34:01 PM3/31/22

Hello block builders!

The March 2022 release is out and published on npm as 8.0.0. In this release:

  • More "under the hood" work to move Blockly towards TypeScript and modern standards. Includes moving classes to ES6-style class declarations and preparing for a move to ES modules.
  • Some internal constants have been moved around. We think these are rarely used but check out the breaking changes section to know if you are affected.
  • Changed the way built-in blocks are loaded if you use advanced compilation or if you load `blocks_compressed.js` directly via a script tag. Check out the breaking changes section for more info.
  • Added an API to support custom tooltip rendering. An example and documentation will be coming soon, and we'll update this thread when those are published.
  • A cross-tab copy/paste plugin was added in blockly-samples by Taikono-Himazin and will be published soon! We'll update this thread with a link when that's ready.
  • TypeScript definitions were once again generated using a new process. We think these are a small improvement over last quarter's definitions, but again if you notice issues with them, we will accept PRs with fixes.
  • We're working on a script that can help you update to newer versions of Blockly by automatically renaming functions/properties that we've moved. We will let you know when that's ready!

Special thanks to these folks who contributed to Blockly:

New Contributors

Full release notes are below. As always, we welcome bug reports and pull requests.



What's Changed


  • change paste to return the pasted thing to support keyboard nav (#5996)
  • blocks: Rename Blockly.blocks.* modules to Blockly.libraryBlocks.* (#5953)
  • allows previously internal constants to be configurable (#5897)
  • remove unused constants from internalConstants (#5889)


Bug Fixes

  • Adds check for changedTouches (#5869) (3f4f505)
  • advanced playground and playground to work when hosted (#6021) (364bf14)
  • always rename caller to legal name (#6014) (c430800)
  • blocks: correct the callType_ of procedures_defreturn (#5974) (b34db5b)
  • build: Correctly handle deep export paths in UMD wrapper (#5945) (71ab146)
  • bumping a block after duplicate breaking undo (#5844) (5204569)
  • change getCandidate_ and showInsertionMarker_ to be more dynamic (#5722) (68d8113)
  • change paste to return the pasted thing to support keyboard nav (#5996) (20f1475)
  • Change the truthy tests of width and height in WorkspaceSvg.setCachedParentSvgSize to actual comparisons with null so that zero value can be saved into the cache (#5997) (fec44d9)
  • comments not being restored when dragging (#6011) (85ce3b8)
  • convert the common renderer to an ES6 class (#5978) (c1004be)
  • convert the Workspace class to an ES6 class (#5977) (e2eaebe)
  • custom block context menus (#5976) (8058df2)
  • Don't throw if drag surface is empty. (#5695) (769a25f)
  • export Blockly.Names.NameType and Blockly.Input.Align correctly (#6030) (2c15d00)
  • Export loopTypes from Blockly.blocks.loops (#5900) (4f74210)
  • Export loopTypes from Blockly.blocks.loops (#5900) (74ef1cb)
  • Fix bug where workspace comments could not be created. (#6024) (2cf8eb8)
  • Fix downloading screenshots on the playground. (#6025) (ca6e590)
  • fix keycodes type (#5805) (0a96543)
  • Fixed the label closure on demo/blockfactory (#5833) (e8ea2e9)
  • generators: Fix an operator precedence issue in the math_number_property generators to remove extra parentheses (#5685) (a31003f)
  • incorrect module for event data in renamings database (#6012) (e502eaa)
  • Move @alias onto classes instead of constructors (#6003) (1647a32)
  • move test helpers from samples into core (#5969) (2edd228)
  • move the dropdown div to a namespace instead of a class with only static properties (#5979) (543cb8e)
  • msg imports in type definitions (#5858) (07a75de)
  • opening/closing the mutators (#6000) (243fc52)
  • playground access to Blockly (9e1cda8)
  • playground test blocks, text area listeners, and show/hide buttons (#6015) (7abf3de)
  • procedure param edits breaking undo (#5845) (8a71f87)
  • re-expose HSV_VALUE and HSV_SATURATION as settable properties on Blockly (#5821) (0e5f3ce)
  • re-expose HSV_VALUE and HSV_SATURATION as settable properties on Blockly (#5821) (6fc3316)
  • revert "Delete events should animate when played (#5919)" (#6031) (c4a25eb)
  • revert converting test helpers to es modules (#5982) (01d4597)
  • setting null for a font style on a theme (#5831) (835fb02)
  • tests: Enable --debug for test:compile:advanced; fix some errors (#5959) (88334be)
  • tests: Enable --debug for test:compile:advanced; fix some errors (and demote the rest to warnings) (#5983) (e11b583)
  • TypeScript exporting of the serialization functions (#5890) (5d7c890)
  • undo/redo for auto disabling if-return blocks (#6018) (c7a359a)
  • update the playground to load compressed when hosted (#5835) (2adf326)
  • Update typings for q1 2022 release (#6051) (69f3d4a)
  • Use correct namespace for svgMath functions (#5813) (b8cc983)
  • Use correct namespace for svgMath functions (#5813) (025bab6)

Code Refactoring

  • allows previously internal constants to be configurable (#5897) (4b5733e)
  • blocks: Rename Blockly.blocks.* modules to Blockly.libraryBlocks.* (#5953) (5078dcb)
  • remove unused constants from internalConstants (#5889) (f0b1077)
Reply all
Reply to author
0 new messages