Skip to content

Releases: google/blockly

Q4 2021 Patch 1

15 Dec 22:08
4be7891
Compare
Choose a tag to compare

Patch release containing:

Q4 2021

09 Dec 21:14
02a5712
Compare
Choose a tag to compare

The Q4 2021 Blockly release is here, and it’s a big one. Over the past two quarters we overhauled the core codebase and changed every file in core to use ES6 syntax and Closure modules. The migration touched every file in core but left our external-facing APIs mostly unchanged.

New Contributors

What's Changed

Breaking Changes 🛠

  • Migrate core/renderers/common/marker_svg.js to goog.module syntax by @moniika in #5255
  • Migrate core/events/block_events.js to goog.module syntax by @moniika in #5320
  • Migrate core/procedures.js to goog.module syntax by @gonfunko in #5265
  • Changes Css.register API to accept string param by @DubeySandeep in #5472
  • fix!(blocks): Rename Blockly.Blocks.* modules to Blockly.blocks.* by @cpcallen in #5696
  • chore!: Add deprecation notices to values in blockly.js by @maribethb in #5555

Bug fixes

Cleanup ♻️

Other Changes

Read more

Q3 2021 Beta Release

01 Oct 15:23
1c1918e
Compare
Choose a tag to compare
Q3 2021 Beta Release Pre-release
Pre-release

This quarter the team migrated most of the core library to Closure modules. This is a significant step on our way to migrating fully to TypeScript and leaving Closure behind. The migration touched every file in core, but left our external-facing APIs mostly unchanged. There are some known issues documented in the release post.

API Changes:

  • feat: add support for defining toolboxes using pure json (#5392)
  • Migrate core/events/block_events.js to goog.module syntax (#5320)
  • Migrate core/procedures.js to goog.module syntax (#5265)
  • Migrate core/renderers/common/marker_svg.js to goog.module syntax (#5255)

Issues closed:

  • Problem loading source maps in blockly-webpack sample (#5507)
  • Simplify globalThis export (#5506)
  • how can i change the category arrow color? (#5481)
  • How to limit the workspace can only be extended to the bottom right corner? (#5477)
  • getFastTextWidthWithSizeString says canvasContext is null when called from keyboard nav tests (#5473)
  • For loop error (#5431)
  • Run Generated Code in a Server-side Docker Container (#5411)
  • Empty English strings localized into "" in French (#5399)
  • Blockly field_colour widget changes block color - only in Zelos renderer (#5377)
  • Blocks connected to blocks with multiple connections overlap with each other in Minimalist renderer (#5371)
  • Mocha and generator tests hang (#5345)
  • Bad link to block styles script in guide (#5341)
  • Update Tag module cleanup workflow to add instead of set labels (#5298)
  • Custom generator codelab. Expecting valid order from member and lists_create_with block. (#5291)
  • STATEMENT_PREFIX / STATEMENT_SUFFIX inconsistent (#5268)
  • iOS messages (#5260)
  • Support injecting Blockly into the shadowDom/Web Component (#5230)
  • Could not find "storage.js" (#5215)
  • Build Blockly problem (#5214)
  • Review contents of blockly.js (#5208)
  • Stacks with no next connection overlap statement input in Zelos (#5170)
  • Remove or deprecate exported names ending in _ (#5135)
  • Update exports style in goog.module-migrated files (#5133)
  • Uncaught Error: Language "JavaScript" does not know how to generate code for block type "string_length". (#5113)
  • Closure base.js should not request (non-existent) closure/goog/deps.js (#5103)
  • Change python -> python3 when invoking scripts (#5080)
  • Remove rewrite_polyfills=false (#5039)
  • Mocha tests fail when loading goog.modules (#5030)
  • WARNING: definition of COLOUR_RGB_TOOLTIP in msg/json/sv.json contained a newline character. (#5017)
  • Zoom in/out with CMD on Mac (#4993)
  • Values of fields defined in the toolbox should use the message localization system (#4992)
  • Calling a.setParent(b) without connecting blocks a and b can cause major rendering issues and errors (#4989)
  • Remove themes from core (#4987)
  • Create Github Action to calculate release bundle size delta (#4977)
  • Error to generate blocks on complex input (#4964)
  • Empty comments not saved during serialization (#4960)
  • Scrolling has no effect in the workspace in Safari (#4957)
  • Add a 'Help' button to devsite (#4935)
  • Disabling only one field on a block (#4932)
  • Non autoclosing flyouts do not update zoom level correctly (#4931)
  • Buttons in horiz flyouts are missing vertical padding (#4914)
  • Getters for copy information (#4600)
  • Insertion marker throws unclear error when mutations are badly defined (#4485)
  • Enable stricterMissingRequire in build_tasks (#4457)
  • Fields don't group edits (#4189)
  • Ability to force a line break when inputs are inline (#3804)
  • Highlighted/disabled input statements look overlapped in zelos (#3802)
  • Make a single field uneditable without making the whole block uneditable (#2763)
  • Minimap demo is broken (#2729)
  • Make travis test errors easier to read (#2595)
  • I reference a function without return value (#2033)
  • Hidden statement inputs seem broken (#1967)
  • Code Demo on iOS: Double execution upon tapping run (#1949)
  • Reconsider ordinals in translation (#1657)
  • Typeahead Support for Blockly (#1583)
  • Finalize API for developer variables (#1535)
  • Decide how validators work on variable fields (#1529)
  • Icons aren't visible when the window size is less than 688px. (#1479)
  • Workspace comments (#1476)
  • Permissions framework (#1415)
  • Comment is not works in latest Chrome (#1382)
  • Make horizontal spacing between fields/inputs more consistent (#1347)
  • Allow newlines in field labels (multi-line fields) (#1159)
  • Two ways to create vars mean user can create the same var with different casing (#1115)
  • RFE: Delete variables without creating a new variable field block (#1105)
  • Consider moving all interactions with the block drag surface into the BlockDragger class (#1090)
  • Minimap demo (#924)

Pull Requests:

  • fix: JSDoc generation for modules without classes (#5519)
  • Keyboard nav names (#5517)
  • chore: update dev tools dev dependency (#5516)
  • Merge develop into goog_module (#5514)
  • Remove legacy keyboard nav (#5513)
  • chore: named exports for block* files (#5512)
  • chore: Remove declareLegacyNamespace from block-related files (#5511)
  • fix: enable missingRequire in build_tasks (#5510)
  • chore: remove deprecated functions (#5509)
  • refactor: Remove remaining references to Blockly.* from goog.modules (#5505)
  • Fix goog module jsdoc (#5504)
  • Project cereal goog 2 (#5502)
  • fix: Prevent request of (non-existent) closure/goog/deps.js (#5499)
  • chore: disables caching when running the playground (#5498)
  • chore: remove support for node 10 (#5496)
  • Migrate core/blockly.js to goog.module syntax (#5494)
  • Bump mocha from 8.4.0 to 9.1.1 (#5493)
  • Bump http-server from 0.12.3 to 13.0.2 (#5492)
  • Bump @blockly/dev-tools from 2.6.0 to 2.6.1 (#5490)
  • Migrate selected from Blockly to Blockly.common (#5489)
  • Clean up get/set accessor definitions (#5488)
  • feat: add JSON serialization - goog version (#5487)
  • refactor: Move Blockly.svgResize to Blockly.common (#5485)
  • refactor: move Blockly.deleteBlock out of blockly.js (#5483)
  • refactor: remove unused Blockly.onContextMenu_ (#5480)
  • Make several exported private fields/methods TEST_ONLY (#5479)
  • Bump @blockly/theme-modern from 2.1.22 to 2.1.24 (#5478)
  • refactor: Migrate Blockly.onKeyDown out of blockly.js (#5476)
  • Note Blockly.alert/confirm/prompt/hueToHex/hideChaff migrations in renamings.js (#5475)
  • Remove unused require of Blockly in Blockly.ToolboxCategory (#5474)
  • fix: adds a fix for npm install failing (#5471)
  • Reinstall to update package-lock.json (#5469)
  • test: Changes mocha tests to use node_modules instead of unpkg (#5467)
  • Re-export Blockly.utils.* submodules from Blockly.utils (#5465)
  • Move browser event utils from utils.js to browser_events.js (#5464)
  • Migrate Blockly.hueToHex to Blockly.utils.colour.hueToHex (#5462)
  • Don't monkey-patch Blocky.utils.xml.document in node module (#5461)
  • Migrate hideChaff() from Blockly to WorkspaceSvg (#5460)
  • Migrate core/utils/xml.js to goog.module syntax (#5459)
  • feat: add JSON serialization - goog version (#5458)
  • Move alert/confirm/prompt to a new file, dialog.js (#5457)
  • Migrate core/inject.js to goog_module syntax (#5456)
  • chore: sets polyfill flag to true (#5454)
  • Move bump objects function into a separate module (#5453)
  • Revert inadvertently reverted change to test/deps.js (#5452)
  • Migrate core/global.js to named exports (#5451)
  • Migrate core/touch_gesture.js to goog.module syntax (#5449)
  • Migrate core/msg.js to goog.module syntax (#5448)
  • Bump @blockly/dev-tools from 2.5.4 to 2.6.0 (#5447)
  • Migrate core/utils.js to goog.module syntax (#5446)
  • fix: update code demo to include JSON (#5444)
  • Note behavior of centerOnBlock when block is part of a stack in the JSDoc (#5442)
  • Rename Blockly.utils.IdGenerator to idGenerator and move Blockly.utils.genUid to there (#5441)
  • Migrate tests goog module (#5440)
  • Migrate core/utils/useragent.js to goog.module syntax (#5435)
  • fix: dragging variables from flyout (#5434)
  • fix: loading blocks in RTL (#5433)
  • maxInstance fix (#5430)
  • fix: add missing requires for Blockly.util.object and Blockly.util.Size (#5427)
  • Create scripts/migration/renamings.js to collect information about renamed API entries (#5426)
  • fix: create and delete events, and the trashcan (#5425)
  • fix: serializing edited shadows (#5424)
  • fix: copy paste with json system (#5423)
  • fix: dragging blocks from the flyout that only have XML hooks (#5422)
  • fix: cereal backwards compatibility (#5421)
  • Use Blockly.utils.arrayRemove (#5420)
  • Allow command key zoom on mac devices (#5419)
  • Bump @blockly/dev-tools from 2.5.4 to 2.5.6 (#5417)
  • Bump webdriverio from 7.11.0 to 7.11.1 (#5416)
  • Bump @wdio/selenium-standalone-service from 6.12.1 to 7.10.1 (#5413)
  • Bump webdriverio from 7.6.0 to 7.11.0 (#5412)
  • fix: copy paste w/ JSO hooks (#5410)
  • fix: not being able to specifying variable names in toolbox (#5408)
  • fix: redo disconnect from shadow bug (#5405)
  • Bump webdriverio from 7.6.0 to 7.10.0 (#5403)
  • Renamed Blockly.connectionTypes to Blockly.ConnectionType for consistency (#5402)
  • Renamed Blockly.connectionTypes to Blockly.ConnectionType for consistency. (#5401)
  • fix: project cereal cleanup (#5398)
  • Migrate core/utils/useragent.js to goog.module syntax (#5396)
  • Migrate core/utils/svg.js to goog.module syntax (#5395)
  • Migrate core/utils/global.js to goog.module syntax (#5394)
  • Migrate core/touch.js to goog.module syntax (#5393)
  • feat: add support for defining toolboxes using pure json (#5392)
  • Migrate core/theme/zelos.js to goog.module syntax (#5391)
  • Migrate core/theme/classic.js to goog.module syntax (#5390)
  • Migrate core/renderers/zelos/measurables/row_el...
Read more

Q2 2021

01 Jul 16:18
64188ae
Compare
Choose a tag to compare

In this release (Q2 2021)

This is a major release. Notable changes:

  • IDeletable was renamed to IDragTarget
  • variableDB_ was renamed to nameDB_
  • compile.sh was removed
  • Some scrollbar constants were renamed

For a full list of pull requests in this release see #4976

API Changes

  • Adding IDragTarget support. (#4852)
  • Rename Blockly..variableDB_ to .nameDB_ and add .nameDB_.getUserNames('VARIABLE') and .nameDB_.getUserNames('PROCEDURE') (#4845)
  • Remove compile.sh (#4779)
  • Update Flyout metrics and implement adjustable margin for scrollbars. (#4763)

Issues Closed

  • Scrollbars Look Chunky on ChromeOS (#4953)
  • Consider Renaming the project. (#4943)
  • GoogleFI compatibility issues (#4942)
  • Viewport change events causing out of memory error (#4916)
  • Flyouts do not recalculate delete area (#4912)
  • Escape no longer reverts field edits (#4910)
  • Error to generate blocks on complex input (#4891)
  • Add hook for getting id of component registered on ComponentManager (#4881)
  • .blocklyDraggable refers to blockly-demo.appspot.com (#4864)
  • translation incorrect (Korean) (#4859)
  • Context menu Delete X blocks preview does not match behavior (#4832)
  • Calling getField/getFieldValue/setFieldValue without supplying name gets/changes (value of) first unnamed field (#4830)
  • Connecting orphan block does not do type checks in correct order (#4826)
  • Editing text field impossible on iPad while external keyboard connected (#4818)
  • Invisible toolbox still reports delete area (#4811)
  • Compatibility blockly with Franka version 4.1+ (#4810)
  • Can I provide an interface to directly obtain the fast overall configuration of JSON (#4795)
  • Why doesn't code generator give priority to Java (#4794)
  • Blockly Developer Tools preview unavailable (#4768)
  • Use captureWarning helper from dev-tools (#4761)
  • Typo in custom blocks JSON vs. JS (#4759)
  • Dynamically generated blocks output is being lost after last lib update (#4757)
  • The xml of dynamic appendField block is not included (#4752)
  • Cron job to delete expired data in appengine demos (#4751)
  • JavaScript APIs (#4749)
  • javascript.d.ts exports Blockly.Generator itself instead of its instance (#4742)
  • Add an option allowing to select and drag multiple blocks at the same time (#4739)
  • I cannot use text input field in blockly to set a dynamic dropdown (#4732)
  • Click event should include access to thing being clicked (#4729)
  • Zoom reset not centering workspace (#4724)
  • Blocks unexpectedly scrolled up or down (reopened) (#4678)
  • Toolbox and flyout metrics should report appropriate height and width (#4594)
  • Allow the workspace to be panned when a block is dragged near the edge (#4570)
  • Travis not properly reporting typing errors (#4546)
  • Copying in Safari makes an error sound even if copy works (#4537)
  • Workspace Comment Change event does not serialize/deserialize correctly (#4527)
  • Very old deprecated functions (#4475)
  • Consider adding get/setMetrics to the options struct when creating a workspace (#4377)
  • Refactor event grouping to allow for nested groups (#4216)
  • Fields don't group edits (#4189)
  • Update Toolbox Events (#4187)
  • Data retention enhancements needed for 3 blockly demos (code, cloud storage and block) (#3899)
  • Create a Public Metrics Method (#3746)
  • lastConnectionInRow inconsistent with lastConnectionInStack (#3656)
  • Suspicious @Suppress (#3517)
  • Typings not split into files (#3213)
  • Script to bump version and tag release on master (#3210)
  • Script for publishing blockly-demo to app engine (#3209)
  • Keyboard Nav: Field Cursor Should be correct size (#3026)
  • wrong variable scope (#2799)
  • Undoing connecting a collapsed block causes positioning issues (#2675)
  • Clearing workspace while dragging with insertion marker crashes (#2338)
  • UI Event Handling API (#2253)
  • Proposal: Mouse Wheel Behavior, Scrolling vs Zooming (#2205)
  • Refactor Field validation (#2169)
  • WorkspaceSVG: Better APIs to get and set workspace scroll and zoom. (#2145)
  • Add finishedLoading event (#2142)
  • Recenter issue with a horizontal toolbox (#2036)
  • Long press broken on Playground and Multi-Playground (#1955)
  • field_label modified in dynamic category resets when dragged onto workspace (#1954)
  • Flyout getMetrics causes a reflow and style recalculation (#1303)

Q1 2021 Patch 1

13 Apr 20:13
3fe56b0
Compare
Choose a tag to compare

Patch release containing #4778

Q1 2021

25 Mar 20:29
a61109c
Compare
Choose a tag to compare

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

  • Removal of keyboard navigation from core (#4593)
  • Changes to Metrics definitions (#4652)

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

17 Dec 22:26
fd239e4
Compare
Choose a tag to compare

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

30 Oct 23:36
85874cd
Compare
Choose a tag to compare

Patch release containing #4422

Q3 2020 Patch 3

13 Oct 00:29
31ee4ea
Compare
Choose a tag to compare

Patch release containing #4360 and #4366

Q3 2020 Patch 2

30 Sep 21:25
11987dc
Compare
Choose a tag to compare

Patch release containing #4334, #4336, #4340