Releases: google/blockly
Q1 2021
In this release (Q1 2021)
This is a major release. Notable changes:
- Keyboard navigation has been removed from core and moved to blockly-samples
- Changes to scroll to support single-direction scrollbars
For a full list of pull requests in this release, see #4735
API Changes
Issues closed:
- Events documentation references old event names (#4728)
- Shortcuts do not work in advanced compilation (#4723)
- [Blockly Playground][RTL] When flyout is zoomed in at its maximum then it gets difficult to zoom out and the playground does not show up (#4716)
- Events documentation does not include Workspace Comment Events (#4528)
- Mutator has flyout (#4698)
- Flyout scrollbar does not reposition properly on zoom (#4692)
- Flyout contains little top padding (#4655)
- setScale causes unexpected scroll (#4654)
- Can I get a copy event listener and get the copied target block (#4640)
- Block moves erratically when dragged a small amount (#4636)
- can`t change the style of label by using the demo and guide (#4621)
- Blockly.setLocale do not translate all block (#4617)
- Clarify type checking in statement stacks (#4609)
- How to dynamically generate dropdown options? (#4606)
- Use registry to instantiate flyout from workspace svg (#4589)
- Update Blockly.inject type for JSON toolbox in (#4587)
- create generator (#4579)
- Block.interpolate_ calls the FieldLabel constructor directly instead of through the registry (#4575)
- Fix .gcloudignore file (#4565)
- goog.inherits in custom fields documentation (#4559)
- Children of collapsed block are not enabled correctly (#4536)
- Update jsdom version (#4535)
- Events documentation does not include Workspace Comment Events (#4528)
- Script to release beta version (#4507)
- CVE-2018-16487 (#4473)
- CVE-2020-8203 (#4472)
- CVE-2019-10744 (#4471)
- Workspace constructor expects plugin option to exist (#4429)
- Add link to new keyboard nav demo (#4420)
- Dynamic dropdown "forgets" option keys when reloaded (#2135)
- Enable scrolling in only one direction (#1292)
- Zoom-center is wrong with an always-open flyout (#989)
- zoomToFit is broken when workspace has no scrollbars and blocks have negative coordinates (#944)
- Flyout contentTop should not be zero (#349)
Q4 2020
In this release (Q4 2020)
This is a major release.
- UI Events refactor. Forum Post.
- Keyboard shortcuts (documentation to come)
- Deletion of previously deprecated functions
This release had 155 PRs. For a full list of pull requests in this issue, see #4548.
API Changes
- Remove deprecated functions in comment.js (4496)
- Remove deprecated field functions (4489)
- Keyboard shortcuts (4421)
- Refactoring Ui events in core (4418)
- Update access level of methods in FieldTextInput (4359)
- Remove ORDER_COMMA from PHP generator. (4357)
- Delete some deprecated functions (4330)
- factor out getX and getY methods for flyout (4463)
Issues closed in this release
- Feature: block for create list from range (4539)
- Obtain function inside domToMutation not recognized and giving a "Blockly.Block.obtain is not a function" error (4516)
- Blockly playground doesn't work in iOS 12 (4510)
- Demos > Custom Fields > Pitch Field: textAreaChange is not defined (4509)
- Break/continue block does not react to movements of the parent block (4500)
- Function mutator flyouts to not update (new events?) (4499)
- Remove all December 2020 deprecated functions (4481)
- More bugs in full screen mode (4476)
- Text and input field fills are black when painting the SVG to a canvas (4474)
- Update the language dropdown on documentation (devsite) (4462)
- Mutator regressions (4448)
- field image click event not work (4446)
- The link of closure-compiler-vxxxxxxxx.jar for download is broken (4442)
- Ability to make block with infinite / unlimited inputs (4435)
- Wrong path separators in uncompressed build on Windows (4433)
- Custom note field can't be edited on mobile (4430)
- Is it possible to copy a block to another tab in the browser? (4424)
- Block ID not available on its SVG Group in IE (4419)
- Blocks unexpectedly scrolled up or down (4414)
- both mouse and rat should appear in a rodents list (4411)
- Dropdown broken in Graph demo (4403)
- Rebuild error (4402)
- Refactor Flyout.position to allow for easy override (4396)
- Cannot drag blocks or interact with fields (4381)
- Dynamic arguments and type check (4374)
- Document the multiline input field (4367)
- many warnings when blockly is loaded after document ready state is set to complete (4358)
- Text fields are red sometimes on valid input (4345)
- how to Remove horizontal scrollbar in the workspace in blockly (4343)
- Blockly Developer Tools - No Preview Displayed (4339)
- [2020Q3]Repeated switch toolbar grouping causes the workspace position to jump (4338)
- Can't set some css classes for categories defined in xml (4335)
- updateGithubPages script sometimes fails due to merge conflicts (4322)
- Library blocks call bumpNeighbors in headless mode which triggers warning (4312)
- Punctuation marks not displayed appropriately for the tooltip text while hovering the blocks _RTL all toolboxPositions (4305)
- Add documentation for new context menu registry (4283)
- Change in Geras rendering for bottom notch in statement input (4282)
- The undo feature + Blockly.Events.disableOrphans = strange behaviour (4261)
- Refactor field tests in core (4260)
- Add a makeFlyoutOptions method (4247)
- Field calls calls the deprecated method classValidator (4197)
- Comment calls deprecated getText method (4186)
- Insertion Marker Serialization Tests failing (4116)
- Workspace is not always disposed in mocha tests (4080)
- Update type checks page to describe the connection checker (4076)
- Deprecation warning util (4049)
- Look into toolbox code performance (3985)
- Trashcan Fires Workspace Click Event (3975)
- Inconsistent default name set in init for procedure_callnoreturn and procedure_callreturn (3948)
- Configuring the used locale (for Blockly Web at least) is largely undocumented (3801)
- Textarea of comment missing scrollbars (3596)
- Toolbox suffers from code bloat (3056)
- Comments Access Warning Members They Probably Shouldn't (2943)
- TypedVariables category is not in StandardCategories.categoryMap. (2408)
- Insertion markers affect mutators (2354)
- Default text in comment should probably get selected when the comment is created for easy editing (1863)
- Feature request: Support css classnames for blocks (1850)
- Events for viewport changes (1052)
Q3 2020 Patch 4
Patch release containing #4422
Q3 2020 Patch 3
Q3 2020 Patch 2
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)