Releases: google/blockly
Q3 2020 Patch 1
Patch release containing #4327.
Q3 2020
In this release (Q3 2020)
- 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
This release had 240 PRs. For a full list of pull requests in this issue, see #4319.
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 in this release
- 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)
Q2 2020 Patch 2
Patch release containing #4016.
Q2 2020 Patch 1
Patch release containing #4004.
Q2 2020
In this release (Q2 2020)
Some wonderful new tests
Support for flyout free mutators
**It is worth noting that there was some work done on being able to create a toolbox using JSON, but due to performance concerns we are not recommending or supporting this feature for the current release.
This release had 153 PRs. For a full list of pull requests in this issue, see #4002.
API Changes
- Register themes (3932)
- Simplify Closure-sourced code for menus (3880)
- Clean out the date field (3876)
Issues closed in this release
- Multiline text field generator broken on IE11 (3981)
- Is it possible to generate code on the server side? (3981)
- Is it possible to generate code on the server side? (3981)
- A quietable version of Input.removeField() (3967)
- Input.removeField(name) throws unsubstituted Error message (3966)
- Value missing while performing undo option in multi playground_Edge browser (3962)
- Disposing of a workspace while a mutator is open causes a crash (3957)
- Mutators without flyout blocks breaks with NPE on render (3955)
- Add Event to Support Closing Mutator On Click (3947)
- Add a function "workspace.refresh()" (3941)
- Error while using workspace.removeBlockById() (3940)
- "TextArea" that can input multiple lines (3939)
- Navigating toolbox using keyboard causes problem for custom flyouts (3936)
- [Help] Is possible the workspace canbe scrolled while the scrollbars set to false? (3921)
- Mutator Documentation Update (3919)
- How to use Blockly with VUE (3917)
- npm failed (3916)
- Drag a single block from a stack using ctrl-key (healstack) and put it back on top can result in error (3898)
- Mocha tests should use deepEqual for array equality (3897)
- Avoid handling navigation if we are currently dragging (3888)
- Add Blockly.Theme.register (3887)
- Questions RE commentIcon (3885)
- removeBlockById() won't remove blocks from my workspace! (3881)
- Shadows are darker (instead of lighter) when using default theme with zelos (3870)
- Add 'renderer' config property documentation (3869)
- Clarify Dropdown validator documentation (3866)
- Close the Mutator dialog bug (3865)
- Shadow blocks lose the mutationToDom (3860)
- Block instant search bar (3851)
- Update Theme Documentation (3839)
- remainingCapacityOfType does not respect maxInstance[type]=0 (3837)
- remainingCapacityOfType does not account for max block limit (3836)
- Field Dropdown and Field Variable options opening mispositioned when inside a compose/decompose mutator (3834)
- xml_test test case throws error after test run (3819)
- Create a metrics interface for the workspace getMetrics object (3817)
- Add properties to the Blockly.blockRendering.IPathObject interface (3816)
- Make Blockly.Variables.nameUsedWithAnyType_ public (3815)
- Blockly dropdown repeact options (3807)
- Make block.removeInput return a boolean (3803)
- Cannot read property 'svgPath' of undefined (3794)
- [Keyboard nav] keyboard press is captured by browser (3792)
- Collapsed blocks do not update when modified (3784)
- Extra padding on some dropdown fields on ios (3782)
- Keyboard Nav demo instructions out of date (3779)
- Flyout labels don't respect font size (3778)
- Unable to include new categories (3760)
- Input fields unresponsive in fullscreen mode (3758)
- Update Themes Documentation (3733)
- Row block in plane demo incorrect location after connecting (3639)
- Collapsed block text not updating (3619)
- Lua codegen of lists_getIndex block has problems with list literals (3566)
- Keyboard Nav: Basic Documentation (3531)
- Deleting the first of a chained input may error out if checks do not match (3392)
- Proposal: Download block image (3238)
- Expose Connection canConnectWithReason_ as public method (3218)
- Update documentation with how to configure a renderer (3012)
- onchange no more in Block definition ? (have to use this.setOnChange in init:) (2925)
- Download screenshot option (2914)
- Convert all JSunit tests to mocha (2870)
- Image Field Creation Doc Updates (2717)
- Document setOnClickHandler Function for Image Fields (2704)
- Update getPreviousBlock and getParent Documentation (2648)
- real time code generation incorrect while dragging? (2646)
- Speed up populating the dynamic procedure category (2579)
- Variables Page Documentation Updates (2502)
- Firefox 67.0 when block drag from toolbox, block not centred to mouse (2482)
- Document that statementToCode Should Only be Used Inside Generators (mostly) (2339)
- WorkspaceToDOM Includes Insertion Markers (2322)
- Add separate block shape curves for connectors (2258)
- Blockly interpretation of variables as global does not match runtime execution (1898)
- Typed variable documentation doesn't mention default types (1882)
- Add demo with +/- alternative mutator extensions for if/else, text_join, lists_create_empty, lists_repeat (1845)
- Document how to replace the mutator UI (1747)
- Typed variable creation modal (1606)
- Missing documentation for custom context menus (1358)
- Add Blockly.defineBlocksWithJsonArray to developer guides (1333)
- Publish developer tutorial (984)
- extract_json_blocks.py script to extract JSON from .js files (854)
- Documentation for creating a new generator (774)
- RFE: Add method to search blocks (766)
- Look at performance issues in mobile browsers (240)
- UX feature: Faster accessing of needed blocks (225)
- Keep the operator precedence when collapse a block (57)
Q1 2020 Patch 1
Patch release containing #3797.
Q1 2020
In this release (Q4 2019)
- Theme updates
- Changing fonts
- Ability to add start hats to all blocks
- Support extending a base theme
- Added ability to override renderer constants in options
This release had 102 PRs. For a full list of pull requests in this issue, see #3789.
Issues closed in this release
Extra padding on some dropdown fields on ios (#3782)
Flyout labels don't respect font size (#3778)
Typo at ja.js (#3770)
Unable to include new categories (#3760)
Input fields unresponsive in fullscreen mode (#3758)
Output pop up shown twice on iPad for procedure testing (#3751)
Unable to edit field when keyboard nav cursor is on block (#3744)
Adding shadows to "any" inputs makes that input only accept the shadow output type (#3737)
Variable fail do detect global scope (#3728)
Blockly Developer-guides sidebar (#3726)
Insertion Markers shows wrong when changing "inline" default property (#3718)
Add custom blocks to blockly (npm) (#3717)
Procedure args do not handle casing correctly (#3711)
Display flex breaks measureFontMetrics (#3710)
Rendering RTL collapsed blocks in geras error (#3700)
Is there an official XSD that we can use to verify our blockly workspaces? (#3688)
Zelos multi-line blocks with output connections grow without a limit. (#3684)
Failed to run with Windows WebView API (#3683)
Child SVG remains in DOM when parent is collapsed (#3682)
Field Registration Doc Updates (#3678)
code generators arent working (#3677)
Zelos: Reporter block with statement input (#3676)
Keyboard Nav Cursor reappears when block moves (#3669)
Function to empty trash (#3666)
Self-closing tag in XML will break the resulting 'if' block (#3664)
"Zelos" the List field is not aligned properly (#3662)
path typo. (#3661)
Update custom fields documentation for updateColour->applyColour rename (#3660)
Warning text is hard to read (white-on-lightgreen) (#3657)
Flyouts are on the incorrect side of the screen (#3644)
Row block in plane demo incorrect location after connecting (#3639)
Turtles in turtle demo are black (#3636)
TextInput fields have extra padding in readonly (#3632)
Wrong cursor over text labels on block (#3617)
Filename in compile error message is off-by-one (OBO) (#3613)
Lua codegen of lists_getIndex block has problems with list literals (#3566)
chore(tools): add release-drafter.yml inside .github (#3555)
Deleting the first of a chained input may error out if checks do not match (#3392)
Dropdown are acting weird with screen readers (#3340)
Sizing of text inputs fields in mutator workspaces is broken (#3166)
Workspace drag performance regression (#3094)
Insertion Markers Do Not Properly Handle Typed Statement Connections (#2948)
Flyout Buttons with Different Font Size are Not Rendered Correctly (#2793)
Image Field Creation Doc Updates (#2717)
Document setOnClickHandler Function for Image Fields (#2704)
Add Dark Mode [FEATURE REQUEST] (#2639)
Disabling orphan break blocks breaks undo (#2321)
[Edge]: Field edit widget misaligned when browser page is zoomed. (#2032)
Code Demo: Edge stops responding to touch (#1942)
FieldInput on Win10: Overlay editor does not disappear when the user scrolls (#1685)
Right-click shows browser context menu on top of Blockly context menu (#1516)
Widget div doesn't change size with zoom level (#1335)
Clicking on blank space between toolbox items closes the item tree (#714)
Warning text resizes out of bubble (#510)
Support for custom BlockSvg tabs/notches (#174)
Possible Breaking Changes
CSS styling for renderers now contain additional selector for theme (eg: "classic-theme"). This might require you to update some of your custom CSS styling for Blockly so that it is properly applied.
Q4 2019
The main focus for this release was completing Zelos rendering.
In this release (Q4 2019)
- Zelos Rendering
- Finalize Keyboard Navigation APIs
This was rlease had 375+ PRs. For a full list of pull requests in this issue, see #3611.
Issues closed in this release
VariableModel's getVariableTypes returns multiple empty string types. (#3593)
Dragging a collapsed function call block causes a crash if the function has inputs (#3589)
Dropdown option is immediately selected due to order of processing touch events (#3567)
Investigate how fields cache options (#3553)
Bottom horizontal flyout has broken delete areas (#3550)
[zelos] Overlap in block height when a statement block with no next connection is attached into a statement input. (#3546)
Scrolled text input widget div is positioned incorrectly (#3532)
Changing Style/Colour of Inherited disabled block has unexpected behaviour (#3530)
The width of the parent element is not enough, my light belt overflows (#3529)
Custom field, the width of parent element is not enough, overflow, how to solve it? (#3528)
Always use ConstantProvider.shapeFor() for rendering notches (#3522)
method updateToolbox keep the category state (#3520)
blocks_compressed.js generated by Gulp has bugs (#3518)
Calling setMutator programmatically does not rerender the block (#3510)
Mutating and Deleting a block is not updating Cursor properly (#3507)
Allow non-visible grids (#3503)
[zelos rendering] Multi-row reporters (#3494)
use Ctrl + z can delete moveable = false ,deleteable = false block (#3486)
Blocks with a field following a variable field break when a mutator is open (#3458)
the issue about local_build.sh (#3422)
Decide what to do about output shape on the block (#3414)
Keyboard Nav: Shift clicking shouldn't enter accessibility mode (#3412)
AppendDomToWorkspace positioning is wrong in RTL (#3408)
All stock blocks in Blockly Games now black. (#3397)
Multiple modifiers in key_map doesn't work right (#3375)
Keyboard Nav: Basic Cursor with ability to set validNode (#3371)
Statement input rendering: bar below input got longer (#3367)
Clicking workspace after comment resize causes a crash (#3364)
Minimalist renderer doesn't account for input alignment (#3361)
FieldImage cannot be navigated to when opt_clickHandler is passed (#3339)
Allow non-visible grids (#3503)
[zelos rendering] vertical tight nesting (#3495)
[zelos rendering] Multi-row reporters (#3494)
Block width incorrect for nested blocks (#3481)
JetBrains artifacts aren't gitignored (#3475)
Colour field not updated properly (#3473)
Dropdown arrow not coloured properly (#3472)
disable trashcan (and deleting) at runtime (for offline mode) (#3467)
unable to run blockly using npm run test, it keeps giving me this error (#3457)
The xml tag id auto generate should be from a-z 0-9 (#3453)
No longer able to tab out of Blockly (#3452)
Scrollen in Blockly (#3451)
Ask for help (#3450)
Novice question: how do you pass requirejs-based modules the results of running user-generated code (eval() of runJS) (#3449)
Unable to drag a warning bubble if mouse is over text (#3386)
Minimalist renderer doesn't account for input alignment (#3361)
AST should navigate to non editable fields (#3344)
Spacing between a field and input is different whether the field is before or after the input. (#3327)
Connection highlighting during drag always uses puzzle and notch shapes (#3236)
[zelos] Determine what to do with inline inputs. (#2978)
Exception when try to move blocks within blockly div when blocks start shaking (#2929)
Autoload blocks checkbox in playground (#3416)
shift-clicking a block creates some kind of selection marker (#3411)
Add the current theme to the DOM (#3407)
Blockly.Blocks can't be found in Blockly (#3406)
dropdown i18n breaken by space (#3398)
Deleting block throws error on small screens (#3393)
Advanced compilation test is now black and white. (#3382)
Move theme manager out of Blockly.Workspace (#3380)
Move filter and pattern creation into renderer (#3377)
Bad colour in deuteranopia theme (#3372)
Compute canvas is affecting page layout (#3368)
Mutator dialog don't update delete areas when moved. (#3354)
Object representation with Blockly (#3347)
Block.setstyle throws an error when block has no style name (#3343)
Value input before/after dummy input row height inconsistencies (#3341)
Blockly.bindEvent_ is deprecated, remove it's use internally (#3332)
Dummy input aligns only left (#3330)
Npm run build does not recognize a new file (#3328)
[zelos] Dyanmic output shapes aligned incorrectly (#3325)
Shadow blocks in modern theme have highlights (#3319)
How to customize fields with the blockly NPM package? (#3314)
Rendering bug on upgrading to Blockly 3 (#3313)
If statement doesn't update connections after mutation change (#3305)
BlockSvg.positionNewBlock is a dupe of BlockSvg.positionNearConnection (#3299)
Right corners in base renderer (#3296)
how to get new variables (#3291)
Blockly.BlockSvg.START_HAT is broken (#3279)
why? (#3262)
Keyboard Navigation: Dispatch event on cursor change (#3258)
blockly is not able to load after blockly_compressed.js file is updated recently (#3254)
Q3 Patch 4
Patch release containing #3330.
Q3 Patch 3
Patch release containing #3316.