September Release is Out!

312 views
Skip to first unread message

Monica Kozbial

unread,
Sep 24, 2020, 5:26:22 PM9/24/20
to Blockly

Hello block builders!

The September release is out.  In this release:

  • Toolbox refactor: Replaces the old closure toolbox with a new toolbox that is easier to extend and work with. Adds the ability to:

    • Define a toolbox with JSON barring some performance issues (more info to come)

    • Register a custom toolbox, flyout, and toolbox item 

    • Hide and disable a category

    • Change the classes for the category

  • Workspace click events (WARNING, may change in following release)

  • Ability to register/unregister context menu options for blocks and workspaces via the ContextMenuRegistry


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

Cheers,

Monica

API Changes:

 - Rename trashcan api calls for open/close lid. (4110)

 - Add option sub types (4096)

 - Move events into the global registry (4053)

 - Remove some old deprecated functions (4029)

 - Update click event handling for workspace and trashcan. (4024)

Issues Closed: 

 - Dragging block from trashcan flyout on mobile is not working (4303)

 - blocks appear on themselves when their count  is more than 150 (4297)

 - Custom PHP Function to Blockly Block (4255)

 - Add getter for tooltip (4252)

 - Add Enum for toolbox position (4246)

 - Code demo sized incorrectly when switching to certain languages (4245)

 - QUESTION: this.appendAddSubGroup (4236)

 - Dropdown inputs suddenly getting a 'black' background after value changes (4178)

 - Clicking ⚙ of "if" block makes the block fly far away (4175)

 - Custom Elements - isTargetInput fails (4157)

 - Toolbox (simple and category) sizes do not get updated properly (4138)

 - Investigate intermittent Travis CI errors (4127)

 -  Marked workspace tests failing (4113)

 - FieldNumber does not respect precision for small precision values (4105)

 - Refactor block_test.js Deserialization tests (4101)

 - Add Pinch To Zoom Control Options (4097)

 - Field date documentation should say to use the published package (4094)

 - Error calling dispose on non-injected WorkspaceSvg (4091)

 - Getter for value block output types (4087)

 - Advanced Playground Not Working On Master (4074)

 - Gamepad-based programming (4073)

 - How can we create a treeview toolbox in blockly as in image any sample code or need guide to the docs (4072)

 - This section of JS code how to automatically generate process graphics block (4071)

 - Cleanup for asynchronous calls in Blockly tests (4070)

 - Add cleanup for Events in mocha tests (4064)

 - Add a footer with T&C on blockly-demos site/pages similar to https://developers.google.com/blockly (4063)

 - Trashcan api cleanup (4061)

 - Blockly.JavaScript.variableDB_ is undefined (4060)

 - Disposing of insertion marker causes error in when handling BLOCK_DELETE event (4048)

 - Toolbox categories scale when zooming (4047)

 - Add a build script flag to run the strict type checker (4040)

 - Cannot re-append a field after Input.removeField() (4037)

 - Category UI event is not emitted when block is dragged from flyout (4034)

 - Trashcan should emit UI event when flyout is closed (4033)

 - domToText: Performance issue in large projects (4030)

 - Allows flyout button callbacks to pass a parameter (4027)

 - Moving a mutated block throws errors (4022)

 - External images not working on dropdown input (4015)

 - FieldDate is not included in the master branch (4013)

 - Blockly dropdown causing strange resize problems (4012)

 - Populate previous release metadata (4011)

 - Update Advanced Compilation Documentation (4009)

 - Error in Python Generator for "controls_for" block (4000)

 - Multiline text field generator broken on IE 11 (3998)

 - Update Configuring A Workspace (3990)

 - Variable "propertyValue" of unknown origin (3987)

 - Lua generator's multiline_quote_ produces invalid code (3979)

 - Multiline literals are getting indented (3978)

 - Flyout Fires Workspace Click Event (parent workspace id) (3976)

 - Revert back programatic setShadow after release (3964)

 - Document how to listen to events on all workspaces on the page (3946)

 - Undo'ing a delete of a block with a shadow, loses shadow reference. (3929)

 - Inconsistent behavior passing invalid values to constructor and fromJson (3903)

 - Simple and fancy playgrounds (3882)

 - Probably bad event order in createBlock (3584)

 - When block has mutation, initModel is called before fromXml (3542)

 - Dynamic toolbox category from list of block names (3376)

 - Update or remove screenshot test code (3329)

 - Consider using Greenkeeper (3268)

 - Proposal: Standard dynamic plugin system for Blockly. (3260)

 - Proposal: Pluggable common context menu items for BlockSvg (3237)

 - Script for publishing release candidates to a github.io site (3208)

 - Change Events before Create Event (2627)

 - Add `local` option to build.py (2245)

 - Add Undo/Redo buttons to playground and multi_playground (1947)

 - Number field: change the value via mouse drag (1701)

 - Add a 'strict' flag on connections (1357)

 - Toolbox as .js files (1144)

 - Unittest warns about prior definition of blocks (999)

 - Warning thrown on some undo (968)

 - Feature request: "Go to function definition" menu point (765)

Pull Requests:

 - Fix error in escape in string (4310)

 - Fix jsdoc errors and warnings (4309)

 - Fix bug in trashcan (4306)

 - Don't update disabled on children of collapsed blocks. (4302)

 - Don't update disabled on unrendered children (4301)

 - Revert "Don't render children of collapsed blocks" (4300)

 - scroll perfomance fix (4299)

 - scroll perfomance fix (4298)

 - Call initSvg for blocks with mutator after loading field xml (4296)

 - Bump webdriverio from 5.22.4 to 6.5.2 (4295)

 - Fix dart multiline strings (4294)

 - Fix PHP multiline string (4293)

 - Fix python multiline string (4292)

 - Fix lua multiline quote (4291)

 - Fixes blocks flying when mutator is open (4289)

 - Fixes problem with dropdown scroll (4287)

 - Move Blockly.utils.dom.SvgElementType to Blockly.utils.Svg (4285)

 - Convert toolbox position to enum (4284)

 - Fix field registry typings (4281)

 - Update types to include document fragments (4280)

 - Fix bugs related to events firing during block create (4278)

 - Bump eslint from 7.8.1 to 7.9.0 (4277)

 - Bump selenium-standalone from 6.19.0 to 6.20.0 (4276)

 - Bump node-fetch from 2.6.0 to 2.6.1 (4274)

 - Updates dev tools script to new version (4273)

 - Fix flyoutless mutators throwing errors. (4272)

 - Bump yargs from 15.4.1 to 16.0.3 (4271)

 - Bump eslint from 7.7.0 to 7.8.1 (4270)

 - Revert closure deps package update (4269)

 - Bump webdriverio from 5.22.4 to 6.4.7 (4268)

 - Run npm audit fix (4267)

 - Fix advanced playground (4266)

 - Don't render children of collapsed blocks (4264)

 - Uncomment skipped tests (4263)

 - Add check for custom components (4262)

 - Bump google-closure-deps from 20200719.0.0 to 20200830.0.0 (4259)

 - Bump webdriverio from 5.22.4 to 6.4.6 (4258)

 - Bump selenium-standalone from 6.18.0 to 6.19.0 (4257)

 - Bump google-closure-compiler from 20200719.0.0 to 20200830.0.0 (4256)

 - Add getTooltip (4254)

 - Fix code demo size being incorrect for some langs (4251)

 - Remove test blocks (4250)

 - Remove the toolbox json (4249)

 - Final pr comments (4248)

 - Category split (4244)

 - Create selectItem and deselectItem methods for toolbox (4243)

 - Updated navigation test blocks position so they aren't bumped out of … (4242)

 - Update some inline docs in block.js (4241)

 - Bump webdriverio from 5.22.4 to 6.4.4 (4240)

 - Bump mocha from 8.1.1 to 8.1.3 (4239)

 - Update types (4237)

 - Fix deeply nested categories visibility (4235)

 - Type renaming (4234)

 - Another round of pr comments (4233)

 - Toolbox bugs (4232)

 - Address pr comments (4231)

 - Fix requires (4230)

 - Toolbox cleanup (4228)

 - Fix category registry bug (4227)

 - Toolbox parse (4226)

 - Add getters for private properties in flyout button (4225)

 - Update chrome driver version (4224)

 - Toolbox rebase (4223)

 - Adds support for both categories and blocks (4222)

 - Check if toolbox item has attr kind before using it (4221)

 - Handles toolbox item resizing (4220)

 - Toolbox rewrite (4219)

 - Script to add timestamps, with instructions (4218)

 - Shared global cleanup (4217)

 - Add programmatically setting shadows Take 2 (4215)

 - Stub modify in navigation_modify workspace keys test (4214)

 - Fix dynamic category generation when part of an array (4213)

 - Check contents of warnings messages in tests. (4212)

 - Fixing issues with workspace dispose in event tests. (4211)

 - Remove unnecessary block dispose that was causing test leakage. (4210)

 - Add missing field to block definition in test. (4209)

 - Capture warning logged by calling convertToolboxToJSON in tests. (4208)

 - Give Blockly div in tests a height. (4207)

 - Update assert in test to notExists call (4206)

 - Update test asserts on stubs to use sinon asserts (4205)

 - Capture expected warnings in navigation modify test (4204)

 - Update css (4202)

 - Capture expected warning in registry test. (4201)

 - Add missing constants to field_checkbox_test (4200)

 - Use camel case for registry types (4199)

 - Field test deprecated logs (4198)

 - Toolbox (4196)

 - Handle testing deprecated methods. (4195)

 - Bug Fixes for Toolbox (4193)

 - Add expiration handler (4191)

 - Update toolbox def (4190)

 - Adds small updates to toolbox (4188)

 - Minor stub and assert cleanup (4185)

 - Fix trashcan errors on delete event (4184)

 - Call apply colour when inserting field into rendered block (4183)

 - Dynamic categories (4182)

 - Bump eslint from 7.6.0 to 7.7.0 (4181)

 - Viewport change event (4180)

 - Sub categories and block (4179)

 - File naming (4177)

 - Create .config.yml (4176)

 - Remove unecessary delete calls in test cleanup. (4174)

 - Remove references to removed test_blocks.js (4173)

 - Upgrade mocha. (4172)

 - Replace console "WARNING" log calls with warn call (4171)

 - Add checks to WorkspaceSvg dispose and fix shared Workspace tests (4170)

 - Fix workspace cleanup in tests. (4169)

 - Bump concurrently from 4.1.2 to 5.3.0 (4168)

 - Add missing workspace cleanup in astnode tests (4167)

 - Toolbox api updates (4166)

 - Update events fire stub. (4165)

 - Bump yargs from 14.2.3 to 15.4.1 (4164)

 - Bump gulp-rename from 1.4.0 to 2.0.0 (4163)

 - Remove jshint (4162)

 - Small fixes (4161)

 - Update link alert description in demos (4160)

 - Zoom controls test click (4159)

 - Hide category (4158)

 - Trashcan test click (4156)

 - Test gesture triggered events and event assertion refactor  (4155)

 - Support dispatching pointer events in click tests (4154)

 - Bump rimraf from 2.7.1 to 3.0.2 (4153)

 - Bump jshint from 2.11.0 to 2.12.0 (4152)

 - Bump through2 from 3.0.1 to 4.0.2 (4151)

 - Bump pixelmatch from 4.0.2 to 5.2.1 (4150)

 - Remove img deps (4149)

 - Bump pngjs from 3.4.0 to 5.0.0 (4148)

 - Bump selenium-standalone from 6.17.0 to 6.18.0 (4147)

 - Upgrade eslint (4146)

 - Toolbox Events (4144)

 - Upgrade closure compiler to latest (4143)

 - Bump mocha from 6.2.3 to 8.1.1 (4141)

 - Increase mocha timeout to 5m30s (4140)

 - Fix toolbox sizes not being updated properly (4139)

 - Toolbox test (4136)

 - Adds support for registering toolbox items (4135)

 - Bump gulp-shell from 0.7.1 to 0.8.0 (4134)

 - Bump google-closure-compiler from 20200101.0.0 to 20200719.0.0 (4133)

 - Bump webdriverio from 5.22.4 to 6.4.0 (4132)

 - Bump eslint from 5.16.0 to 7.6.0 (4131)

 - Bump js-green-licenses from 1.1.0 to 2.0.1 (4130)

 - Create dependabot.yml on master (4129)

 - Updates category method names (4128)

 - Rebase (4126)

 - Create dependabot.yml (4125)

 - Use toLocaleString to count decimal places consistently (4124)

 - Small features (4123)

 - remove pixel-perfect screenshot tests (4122)

 - Add and use helper functions in block_test.js (4121)

 - Add privacy policy to demos that use storage (4120)

 - Xml test cleanup (4119)

 - Add tests for contextmenu_items (4118)

 - Insertion Marker tests async cleanup (4117)

 - Add high precision constraint test case for FieldNumber (4115)

 - Nav modify test shared cleanup (4114)

 - Adding cleanup to theme tests (4112)

 - Rename trashcan api calls for open/close lid. (4110)

 - Apply dependabot change to develop (4109)

 - Small fixes (4108)

 - flyout button stores all the deserialized properties (4107)

 - Fix toolbox errors (4106)

 - Add IBubble interface (4104)

 - Adding async cleanup to tests (4103)

 - Cleanup of chai asserts (4100)

 - Update toolbox types (4099)

 - Add build strict option that builds with the strict type checker (4098)

 - Add option sub types (4096)

 - Category select methods (4095)

 - Adds a toolbox item (4093)

 - Shared events cleanup (4092)

 - Adds create dom for the category (4090)

 - Add separator for toolbox (4089)

 - Init category (4088)

 - Update toolbox interface (4084)

 - Adds keyboard and onClick logic (4083)

 - Add last accessed time to Xml model, and update it when getting from the db (4082)

 - Adds select logic (4081)

 - Deprecation warnings (4079)

 - Adds methods migrated from old toolbox (4078)

 - Snap dev tools to 1.1.1 (4077)

 - Snap dev-tools in master to v1.1.0 (4075)

 - Initialize Toolbox (4068)

 - Update Toolbox From Develop (4067)

 - Refactor shared (4066)

 - Allow es6 in mocha tests lint check (4062)

 - Add Flyout as a Plugin (4059)

 - Update README.md (4058)

 - Move test blocks to dev-tools, refactor advanced playground (4057)

 - Emitting event on trashcan close. (4056)

 - Hide flyout after Events are re-enabled when creating a block (4055)

 - Bump lodash from 4.17.15 to 4.17.19 (4054)

 - Move events into the global registry (4053)

 - Use registry for connection checker (4052)

 - Add deprecation helper + 2 uses (4051)

 - Connection checker object (4050)

 - Perf: Move multiline xml text encoding out of domToText (4046)

 - Move package to scripts/package (4045)

 - Move i18n scripts under scripts/ (4044)

 - Add clang-format and run on core/* (4042)

 - Move theme scripts to scripts dir (4041)

 - Use generics to derive SVG element type (4036)

 - Add listener for flyout events to playground. (4035)

 - Use Context Menu registry for block-level menu options (4032)

 - Unbind event handlers in dispose of zoom controls. (4031)

 - Remove some old deprecated functions (4029)

 - add argument to flyout button callback (4028)

 - Remove debug logs from mocha tests (4026)

 - Emit UI event on zoom control clicks. (4025)

 - Update click event handling for workspace and trashcan. (4024)

 - Fix jsdoc for workspace click (4023)

 - Deprecated advanced compilation shell script (4021)

 - Add deprecation message to build.py (4020)

 - Add blockly size metadata snapshot of previous releases (4018)

 - Cherry pick #4016 & Release Patch (4017)

 - Fix field dropdown with images (4016)

 - Update Blockly size metdata for the 3.20200625.1 release (4010)

 - Fix python loop (4007)

 - Patch release with #4004 (4006)

 - Rebuild (4005)

 - Fix for mocha tests (4004)


gamehtq1...@gmail.com

unread,
Sep 25, 2020, 12:01:23 AM9/25/20
to Blockly

Awesome! I Want to know about the change to the toolbox. My toolbox is too slow.
koz...@google.com 在 2020年9月25日 星期五上午5:26:22 [UTC+8] 的信中寫道:

Joe Harker

unread,
Sep 26, 2020, 10:01:37 AM9/26/20
to Blockly
the block factory https://blockly-demo.appspot.com/static/demos/blockfactory/index.html
is not working with the new updates
    save a new block throws errors
    import old blocks throws errors
    open existing blocks in work space factory wont open

* is there a link to the old factory i can use until its working again?

Oz Ramos

unread,
Sep 26, 2020, 4:30:49 PM9/26/20
to Blockly
I created a backup of the Block Factory as it was during the last tag (Q2 2020 Patch 2 release) here:

Joe Harker

unread,
Sep 26, 2020, 7:14:11 PM9/26/20
to blo...@googlegroups.com
awesome!
thank you so much

--
You received this message because you are subscribed to a topic in the Google Groups "Blockly" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/blockly/Jm4_bSpjNes/unsubscribe.
To unsubscribe from this group and all its topics, send an email to blockly+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/blockly/a2b11d6d-41b4-492f-8913-d3e00a8efb34n%40googlegroups.com.


--
     JoeH...@GMail.com

José Luiz

unread,
Sep 28, 2020, 9:53:21 AM9/28/20
to Blockly
Hey guys!

Any projections when will we have some docs regarding the new toolbox?

Abby Schmiedt

unread,
Sep 28, 2020, 11:13:08 AM9/28/20
to Blockly
Hello!

Thanks for the heads up on the block factory. I am taking a look right now and we will release a patch later today to fix the issue. 

In regards to the toolbox documentation, this is in the final stages of review and should also be done by the end of the day : ) 

Thanks!
Abby

José Luiz

unread,
Sep 28, 2020, 11:16:20 AM9/28/20
to blo...@googlegroups.com
Ok, thanks for the imediate answer!

Cheers!
_________________________________________________
At.te
José Luiz do Carmo Silva
Cursando Bacharelado em Sistemas de Informação - IFMG Campus Sabará


You received this message because you are subscribed to the Google Groups "Blockly" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blockly+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/blockly/102834a4-7f0b-49f7-902c-fb8df1184d4en%40googlegroups.com.

Abby Schmiedt

unread,
Sep 28, 2020, 3:17:09 PM9/28/20
to Blockly
The block factory should be fixed with this pr and the patch has been published on github

Cheers, 
Abby

Abby Schmiedt

unread,
Sep 28, 2020, 7:48:32 PM9/28/20
to Blockly

The toolbox documentation has now been updated to include the new JSON toolbox as well as other features that have been added to categories.

We plan on releasing a codelab explaining how the toolbox can be customized as well as a plugin for a toolbox with a continuous scroll flyout later this quarter. 

We have also added documentation for our context menu APIs.

Cheers,

Abby

Tim Becker

unread,
Sep 29, 2020, 2:04:25 PM9/29/20
to Blockly
I'm afraid there are still some major-ish issues in block factory:

In case the block being defined has any connection except "no connection" selected from the dropdown, updating the block causes it to disappear from the work area.
Clicking "Update" again causes it to reappear, but with all properties but the name stripped. Worse still: when the block is "disappeared" and the page is reloaded,  the whole page is permanently broken, apparently because invalid data is written to localstorage (clearing localstorage makes the page functional again).

Abby Schmiedt

unread,
Sep 29, 2020, 3:45:35 PM9/29/20
to Blockly
Hello!

I can see the error and am looking into a fix. Thanks again for reporting. 

Thanks, 
Abby

Abby Schmiedt

unread,
Sep 30, 2020, 5:38:56 PM9/30/20
to Blockly

Ok folks!

I have just released another patch that should actually fix the block factory this time. Here’s hoping second time is the charm : ) We have also added more test cases to our release process so we will not break you (hopefully) in the same way in the future. 

Thanks for everyones patience!

Cheers, 

Abby 

Uwe K

unread,
Nov 12, 2020, 6:35:48 AM11/12/20
to Blockly
Great update, especially the toolbox changes and codelab!
Are you planing to remove configureContextMenu from workspaces in the future? The new context menu registry doesn't work well for us because it's Blockly-global and our menu entries are workspace-specific. Can I keep using  configureContextMenu?

Abby Schmiedt

unread,
Nov 12, 2020, 1:05:08 PM11/12/20
to Blockly
Hello!

Yes, you can continue using configureContextMenu. It is staying for that specific use case you mentioned. 

Cheers, 
Abby

feni...@google.com

unread,
Nov 16, 2020, 3:05:53 PM11/16/20
to Blockly
Hi Uwe,

You can also use the precondition to make your menu entries workspace-specific, as long as you have a good way to distinguish between your workspaces.

Cheers,
Rachel

Reply all
Reply to author
Forward
0 new messages