Skip to content

Q4 2021

Compare
Choose a tag to compare
@rachel-fenichel rachel-fenichel released this 09 Dec 21:14
· 1511 commits to master since this release
02a5712

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

  • Merge master into develop. July 2021 Release by @BeksOmega in #4981
  • Reflow flyouts when zoom level changes to keep block zoom level in sync. by @gonfunko in #4938
  • Work around WebKit bug that prevents scrolling/zooming the workspace. by @gonfunko in #4969
  • Added @google/blockly-eng as the owner of the entire repo by @gonfunko in #5003
  • Initial commit for appengine deploy action by @rachel-fenichel in #4998
  • Appengine deploy workflow on master for testing by @rachel-fenichel in #5005
  • Get deploy files from the correct directory by @rachel-fenichel in #5010
  • Create Github Action to comment on PR while develop is frozen by @moniika in #5006
  • Revert "Create Github Action to comment on PR while develop is frozen" by @moniika in #5013
  • Create develop_freeze.yml by @moniika in #5012
  • Local http server for testing in uncompiled mode by @cpcallen in #5008
  • Build in a temporary directory by @cpcallen in #4968
  • fix doc typo by @maribethb in #4985
  • Updates JSDoc in Block and BlockSvg by @BeksOmega in #4995
  • Move typings output into their own directory under build by @samelhusseini in #5016
  • Allow inheriting of fromJson in fields by @NeilFraser in #4972
  • Enable static method inheritance. by @NeilFraser in #4967
  • Fix vertical button padding in horizontal flyout by @hpnrep6 in #5020
  • Update turtle mask placement on custom field and remove typo by @moniika in #4962
  • Group field edits together for undo/redo (attempt #2) by @NeilFraser in #5021
  • Remove undesirable \n from sv.json by @NeilFraser in #5022
  • Revert "Get deploy files from the correct directory" by @rachel-fenichel in #5014
  • Add missing whitespace to test files by @moniika in #5031
  • Build system changes cleanup by @cpcallen in #5018
  • Add flag to webdriverio options by @moniika in #5035
  • Update package-lock.json to lockfileVersion 2 by @cpcallen in #5038
  • Remove unused parameters from test helpers by @moniika in #5032
  • Remove themes that were moved to blockly samples by @alschmiedt in #5041
  • Enforce connection preconditions for setParent by @jschanker in #4999
  • Preparation for goog.module transition: base.js, deps.js by @cpcallen in #5019
  • Configure eslint and Closure Compiler to accept ES6 by @cpcallen in #5046
  • Migrate core/utils/keycodes.js to goog.module by @moniika in #5049
  • Migrate core/utils/deprecation.js to goog.module syntax by @moniika in #5048
  • Migrate object.js to goog.module syntax by @gonfunko in #5057
  • Added script and workflow to automatically update build artifact sizes in check_metadata.sh by @gonfunko in #5033
  • Migrate core/utils/idgenerator.js to goog.module syntax by @alschmiedt in #5056
  • Migrate core/utils/math.js to goog.module syntax by @moniika in #5055
  • Removes eslint rules by @alschmiedt in #5063
  • Migrate core/utils/svg_paths.js to goog.module syntax by @gonfunko in #5062
  • Migrate core/utils/rect.js to goog.module syntax by @moniika in #5061
  • Pull Request template for goog.module PRs by @cpcallen in #5058
  • Migrate core/utils/colour.js to goog.module syntax by @moniika in #5045
  • Migrate core/block_drag_surface.js to goog.module syntax by @moniika in #5068
  • Migrate core/utils/metrics.js to goog.module syntax by @moniika in #5064
  • Migrate core/blocks.js to goog.module syntax by @moniika in #5069
  • Fix code in code demo executing twice on mobile by @hpnrep6 in #5037
  • Migrate core/extensions.js to goog.module syntax by @moniika in #5065
  • Migrate core/css.js to goog.module syntax by @moniika in #5066
  • Migrate core/connection_types.js to goog.module syntax by @moniika in #5078
  • Migrate core/block_animations.js to goog.module syntax by @gonfunko in #5079
  • Migrate core/component_manager.js to goog.module syntax by @moniika in #5082
  • Migrate core/utils/coordinate.js to goog.module syntax by @moniika in #5047
  • Migrate core/interfaces/i_block_dragger.js to goog.module syntax by @moniika in #5087
  • Migrate core/interfaces/i_bounded_element.js to goog.module syntax by @moniika in #5088
  • Migrate core/interfaces/i_component.js to goog.module syntax by @moniika in #5090
  • Migrate core/interfaces/i_deletable.js to goog.module by @moniika in #5094
  • Migrate core/renderers/common/drawer.js to goog.module syntax by @rachel-fenichel in #5083
  • Auto-tag and add milestones for cleanup PRs by @rachel-fenichel in #5086
  • Use pull request target trigger for tagging cleanup by @rachel-fenichel in #5100
  • Migrate core/interfaces/i_delete_area.js to goog.module syntax by @moniika in #5095
  • Migrate core/interfaces/i_draggable.js to goog.module syntax by @moniika in #5097
  • Migrate core/interfaces/i_copyable.js to goog.module syntax by @moniika in #5093
  • Migrate core/interfaces/i_movable.js to goog.module by @moniika in #5104
  • Migrate core/interfaces/i_styleable.js to goog.module by @moniika in #5110
  • Migrate core/connection_checker.js to goog.module by @gonfunko in #5106
  • Migrate core/interfaces/i_positionable.js to goog.module syntax by @moniika in #5105
  • Migrate core/interfaces/i_drag_target.js to goog.module syntax by @moniika in #5096
  • Migrate core/bubble_dragger.js to goog.module syntax by @gonfunko in #5081
  • Always have npm start serve the repository root by @cpcallen in #5118
  • Migrate core/utils/style.js to goog.module syntax by @gonfunko in #5060
  • Migrate core/interfaces/i_bubble.js to goog.module syntax by @moniika in #5089
  • Migrate core/interfaces/i_selectable.js to goog.module syntax by @moniika in #5109
  • Migrate core/interfaces/i_accessibility.js to goog.module syntax by @moniika in #5085
  • Migrate core/interfaces/i_contextmenu.js to goog.module syntax by @moniika in #5092
  • Migrate core/connection_db.js to goog.module syntax by @gonfunko in #5121
  • Migrate core/interfaces/i_flyout.js to goog.module syntax by @moniika in #5101
  • Migrate core/interfaces/i_toolbox.js to goog.module syntax by @moniika in #5111
  • Migrate core/interfaces/i_autohideable.js to goog.module syntax by @moniika in #5084
  • Permit single field disabling (#4932) by @jschanker in #4941
  • Only lint once in CI by @maribethb in #5128
  • Migrate core/comment.js to goog.module syntax by @gonfunko in #5098
  • Migrate core/keyboard_nav/basic_cursor.js to goog.module syntax by @moniika in #5129
  • Migrate core/interfaces/i_connection_checker.js to goog.module syntax by @moniika in #5091
  • Migrate core/keyboard_nav/cursor.js to goog.module syntax by @moniika in #5127
  • Migrate core/connection.js to goog.module syntax by @gonfunko in #5102
  • Migrate core/utils/toolbox.js to goog.module syntax by @alschmiedt in #5076
  • Add script for partially automating goog.module conversion steps by @moniika in #5138
  • Merge develop to goog module by @moniika in #5136
  • Migrate core/interfaces/i_registrable.js to goog.module by @moniika in #5108
  • Migrate core/interfaces/i_toolbox_item.js to goog.module syntax by @moniika in #5122
  • Fix edge cases for convert-script by @moniika in #5143
  • Migrate core/keyboard_nav/tab_navigate_cursor.js to goog.module syntax by @moniika in #5142
  • Migrate core/renderers/common/info.js to goog.module syntax by @rachel-fenichel in #5107
  • Migrate core/interfaces/i_registrable_field.js to goog.module syntax by @moniika in #5125
  • Add command to deploy beta version of demos by @moniika in #4958
  • Migrate core/drag_target.js to goog.module syntax by @gonfunko in #5151
  • Migrate core/field.js to goog.module syntax by @gonfunko in #5154
  • Migrate core/field_checkbox.js to goog.module syntax by @gonfunko in #5147
  • Make constants.js have no side effects by @rachel-fenichel in #5140
  • Remove need for require instead of requireType for Block in ASTNode by @moniika in #5157
  • Fix double execution in Code demo by @NeilFraser in #5152
  • Migrate core/field_colour.js to goog.module syntax by @gonfunko in #5159
  • Migrate core/field_number.js to goog.module syntax by @gonfunko in #5145
  • Update goog.module-migrated files to fix style issues by @gonfunko in #5148
  • Migrate core/field_dropdown.js to goog.module syntax by @gonfunko in #5162
  • Convert files script cleanup by @moniika in #5168
  • Fix bug in convert-file script with processing arguments by @moniika in #5175
  • Prompt before destructuring properties for a require by @moniika in #5169
  • Migrate core/delete_area.js to goog.module syntax by @gonfunko in #5150
  • Migrate core/field_variable.js to goog.module syntax by @gonfunko in #5178
  • Migrate core/field_registry.js to goog.module syntax by @gonfunko in #5172
  • Update package-lock to try to unstick dependabot by @maribethb in #5184
  • Migrate core/field_label_serializable.js to goog.module syntax by @moniika in #5165
  • Migrate core/field_image.js to goog.module syntax by @moniika in #5163
  • Migrate core/field_multilineinput.js to goog.module syntax by @moniika in #5167
  • Silences unused variable warnings for requires used in JSDoc. by @gonfunko in #5179
  • Migrate core/interfaces/i_metrics_manager.js to goog.module syntax by @moniika in #5188
  • Migrate core/menu.js to goog.module syntax by @alschmiedt in #5174
  • Migrate core/generator.js to goog.module syntax by @gonfunko in #5192
  • Migrate core/block_dragger.js to goog.module syntax by @alschmiedt in #5171
  • Migrate core/flyout_horizontal.js to goog.module syntax by @gonfunko in #5190
  • Migrate core/grid.js to goog.module syntax by @gonfunko in #5193
  • Migrate core/icon.js to goog.module syntax by @gonfunko in #5194
  • Remove deconstructing properties and update logic by @moniika in #5202
  • Migrate core/input.js to goog.module syntax by @gonfunko in #5195
  • Migrate core/field_textinput.js to goog.module syntax by @gonfunko in #5177
  • Migrate core/flyout_vertical.js to goog.module syntax by @gonfunko in #5191
  • Migrate core/flyout_base.js to goog.module syntax by @gonfunko in #5180
  • Migrate core/renderers/common/constants.js to goog.module syntax by @rachel-fenichel in #5204
  • Apply fixes for convert-file script by @moniika in #5206
  • Migrate core/field_label.js to goog.module syntax by @moniika in #5164
  • Migrate core/gesture.js to goog.module syntax by @moniika in #5209
  • Migrate core/marker_manager.js to goog.module syntax by @gonfunko in #5201
  • Migrate core/utils/size.js to goog.module syntax by @cpcallen in #5197
  • Migrate core/theme_manager.js to goog.module syntax by @gonfunko in #5221
  • Migrate core/zoom_controls.js to goog.module syntax by @moniika in #5224
  • Migrate core/shortcut_registry.js to goog.module syntax by @gonfunko in #5219
  • Remove extra output from generator and mocha tests by @alschmiedt in #5196
  • Add comment to top of convert-file script for reference to syntax used by @moniika in #5223
  • Migrate core/mutator.js to goog.module syntax by @gonfunko in #5203
  • Migrate core/rendered_connection.js to goog.module syntax by @gonfunko in #5218
  • Migrate core/warning.js to goog.module syntax by @moniika in #5227
  • Migrate core/keyboard_nav/ast_node.js to goog.module syntax by @moniika in #5141
  • Migrate core/workspace_audio.js to goog.module syntax by @moniika in #5228
  • Migrate core/renderers/common/path_object.js to goog.module syntax by @rachel-fenichel in #5232
  • Fix lint by @rachel-fenichel in #5235
  • Migrate core/keyboard_nav/marker.js to goog.module syntax by @moniika in #5123
  • Fix issue where the trashcan flyout would remain an active delete region even when closed with the continuous toolbox plugin by @gonfunko in #5240
  • Fix usage instructions for convert-file.sh by @moniika in #5239
  • Add handling for converting modules that are not leaf nodes by @moniika in #5241
  • Migrate core/registry.js to goog.module syntax by @gonfunko in #5217
  • Migrate core/utils/dom.js to goog.module syntax by @gonfunko in #5075
  • Add regex lookarounds to check for require overlaps by @moniika in #5251
  • Migrate core/toolbox/collapsible_category.js to goog.module syntax by @moniika in #5236
  • Migrate core/workspace_comment.js to goog.module syntax by @moniika in #5229
  • Migrate core/workspace_comment_svg.js and core/workspace_comment_svg_render.js to goog.module syntax by @moniika in #5233
  • Migrate core/flyout_button.js to goog.module syntax by @gonfunko in #5182
  • Migrate core/variable_model.js to goog.module syntax by @gonfunko in #5248
  • Migrate core/theme.js to goog.module syntax by @gonfunko in #5220
  • Fix eslint warning in core/utils/dom.js by @moniika in #5256
  • Move clipboard functions to a separate namespace by @rachel-fenichel in #5237
  • Move main workspace to a new file, common.js by @rachel-fenichel in #5244
  • Migrate core/variable_map.js to goog.module syntax by @gonfunko in #5247
  • Migrate core/variables_dynamic.js to goog.module syntax by @gonfunko in #5261
  • Migrate core/trashcan.js to goog.module syntax by @gonfunko in #5257
  • Migrate core/renderers/common/i_path_object.js to goog.module syntax by @moniika in #5254
  • Migrate core/workspace_dragger.js to goog.module syntax by @moniika in #5253
  • Migrate core/browser_events.js to goog.module syntax by @moniika in #5249
  • Migrate core/contextmenu_items.js to goog.module syntax by @moniika in #5144
  • Add missing eslint disable to core/renderers/common/i_path_object.js by @moniika in #5264
  • Migrate core/scrollbar.js to goog.module syntax by @moniika in #5252
  • Migrate core/toolbox/toolbox_item.js to goog.module syntax by @moniika in #5245
  • Remove extra eslint disable from core/gesture.js by @moniika in #5266
  • Fix Mutator editor block positions sometimes being out of place for an instant by @hpnrep6 in #5210
  • Update build artifact sizes in check_metadata.sh by @gonfunko in #5278
  • Migrate core/events/events_marker_move.js to goog.module syntax by @gonfunko in #5282
  • Migrate core/events/events_toolbox_item_select.js to goog.module syntax by @gonfunko in #5280
  • Migrate core/positionable_helpers.js to goog.module syntax by @moniika in #5250
  • Migrate core/shortcut_items.js to goog.module syntax by @moniika in #5283
  • Migrate core/events/events_click.js to goog.module syntax by @gonfunko in #5284
  • Migrate core/events/events_viewport.js to goog.module syntax by @gonfunko in #5275
  • Migrate core/menuitem.js to goog.module syntax by @alschmiedt in #5176
  • Migrate core/renderers/geras/constants.js to goog.module syntax by @gonfunko in #5293
  • Migrate core/events/events_selected.js to goog.module syntax by @gonfunko in #5281
  • Remove require destructuring by @moniika in #5294
  • Migrate core/toolbox/separator.js to goog.module syntax by @moniika in #5242
  • Migrate core/workspace_drag_surface_svg.js to goog.module syntax by @gonfunko in #5263
  • Migrate core/events/events_trashcan_open.js to goog.module syntax by @gonfunko in #5277
  • Migrate core/events/events_bubble_open.js to goog.module syntax by @gonfunko in #5285
  • Migrate core/contextmenu.js to goog.module syntax by @moniika in #5296
  • Add supressPrefixSuffix to if/else block by @NeilFraser in #5290
  • Migrate core/renderers/geras/highlighter.js to goog.module syntax by @gonfunko in #5304
  • Migrate core/renderers/geras/info.js to goog.module syntax by @gonfunko in #5305
  • Migrate core/input_types.js to goog.module syntax by @moniika in #5312
  • More cleanup of blockly.js by @rachel-fenichel in #5262
  • Migrate core/renderers/geras/highlight_constants.js to goog.module syntax by @gonfunko in #5303
  • Translation updates (specifically Ok/Cancel) by @NeilFraser in #5259
  • Migrate core/options.js to goog.module syntax by @moniika in #5287
  • Migrate core/toolbox/category.js to goog.module syntax by @moniika in #5297
  • Migrate core/names.js to goog.module syntax by @moniika in #5314
  • fix: update tag module workflow to add labels instead of setting one label by @rachel-fenichel in #5315
  • Revert "fix: update tag module workflow to add labels instead of setting one label" by @rachel-fenichel in #5318
  • Migrate core/renderers/measurables/types.js to goog.module syntax by @gonfunko in #5309
  • Remove extra output from generator and mocha tests (#5196) by @alschmiedt in #5295
  • Migrate core/block.js to goog.module syntax by @gonfunko in #5322
  • Add labels instead of setting in github action by @moniika in #5324
  • Migrate core/events/events_abstract.js to goog.module syntax by @moniika in #5311
  • Add goog.module.get calls for WorkspaceComment and WorkspaceCommentSvg by @moniika in #5316
  • Migrate core/block_svg.js to goog.module syntax by @gonfunko in #5323
  • Migrate core/renderers/geras/path_object.js to goog.module syntax by @gonfunko in #5306
  • Migrate core/events/workspace_events.js to goog.module syntax by @gonfunko in #5274
  • Migrate core/workspace.js to goog.module syntax by @moniika in #5332
  • Migrate core/contextmenu_registry.js to goog.module syntax by @gonfunko in #5149
  • Migrate core/renderers/common/block_rendering.js to goog.module syntax by @moniika in #5335
  • Migrate core/events/variable_events.js to goog.module syntax by @moniika in #5325
  • Migrate core/toolbox/toolbox.js to goog.module syntax by @moniika in #5317
  • Migrate core/workspace_svg.js to goog.module syntax by @gonfunko in #5334
  • Update optional requires by @moniika in #5340
  • Add missing eslint disable line for required interface by @moniika in #5339
  • Fix issue that prevented Mocha and generator tests from running on certain configurations by @gonfunko in #5344
  • Update script to use python3 command by @moniika in #5333
  • Migrate core/renderers/measurables/base.js to goog.module syntax by @gonfunko in #5308
  • Migrate core/renderers/geras/drawer.js to goog.module syntax by @gonfunko in #5300
  • Migrate core/renderers/geras/renderer.js to goog.module syntax by @gonfunko in #5307
  • Migrate core/events/events_theme_change.js to goog.module syntax by @gonfunko in #5279
  • Migrate core/events/events_block_drag.js to goog.module syntax by @gonfunko in #5286
  • Use goog.requireType when importing interfaces (etc.) by @cpcallen in #5343
  • Migrate core/renderers/minimalist/drawer.js to goog.module syntax by @moniika in #5349
  • Migrate core/renderers/common/renderer.js to goog.module syntax by @moniika in #5338
  • Migrate core/renderers/measurables/inputs.js to goog.module by @moniika in #5348
  • Migrate core/renderers/geras/measurables/input.js to goog.module syntax by @moniika in #5347
  • Migrate core/events/ui_events.js to goog.module syntax by @moniika in #5299
  • Migrate core/insertion_marker_manager.js to goog.module syntax by @moniika in #5288
  • Migrate core/xml.js to goog.module syntax by @moniika in #5319
  • Migrate core/bubble.js to goog.module syntax by @maribethb in #5234
  • Migrate core/utils/aria.js to goog.module. by @maribethb in #5067
  • Migrate core/renderers/zelos/constants.js to goog.module syntax by @moniika in #5357
  • Migrate core/renderers/common/debugger.js to goog.module syntax by @moniika in #5337
  • Migrate core/variables.js to goog.module syntax by @gonfunko in #5321
  • Quiet the typings script unless you tell it to be verbose. by @maribethb in #5359
  • Migrate core/utils/string.js to goog.module syntax by @gonfunko in #5059
  • Migrate core/renderers/zelos/drawer.js to goog.module syntax by @moniika in #5358
  • Migrate core/renderes/zelos/info.js to goog.module syntax by @moniika in #5361
  • Migrate core/renderers/zelos/marker_svg.js to goog.module syntax by @moniika in #5366
  • Quiet the typings script unless you tell it to be verbose. by @maribethb in #5362
  • Fix blocks with no next connections overlapping statement input in Zelos by @hpnrep6 in #5369
  • Migrate core/renderers/minimalist/renderer.js to goog.module syntax by @gonfunko in #5365
  • Migrate core/renderers/minimalist/constants.js to goog.module syntax by @gonfunko in #5363
  • Migrate core/renderers/minimalist/info.js to goog.module syntax by @gonfunko in #5364
  • Migrate core/widgetdiv.js to goog.module syntax by @gonfunko in #5331
  • Migrate core/renderers/thrasos/renderer.js to goog.module syntax by @moniika in #5368
  • Migrate core/renderers/thrasos/info.js to goog.module syntax by @moniika in #5367
  • Migrate core/renderers/measurables/row_elements.js to goog.module syntax by @gonfunko in #5381
  • Migrate core/renderers/measurables/rows.js to goog.module syntax by @moniika in #5383
  • Migrate core/renderers/zelos/path_object.js to goog.module syntax by @moniika in #5386
  • Migrate core/renderers/measurables/connections.js to goog.module syntax by @moniika in #5382
  • Migrate core/touch.js to goog.module syntax by @moniika in #5393
  • Migrate core/theme/zelos.js to goog.module syntax by @moniika in #5391
  • Migrate core/theme/classic.js to goog.module syntax by @moniika in #5390
  • Migrate core/renderers/zelos/renderer.js to goog.module syntax by @moniika in #5387
  • Migrate core/metrics_manager.js to goog.module syntax by @moniika in #5385
  • Migrate core/renderers/zelos/measurables/row_elements.js to goog.module syntax by @moniika in #5389
  • Migrate core/renderers/zelos/measurables/rows.js to goog.module syntax by @moniika in #5384
  • Migrate core/utils/svg.js to goog.module syntax by @moniika in #5395
  • Migrate core/utils/global.js to goog.module syntax by @moniika in #5394
  • Migrate core/renderers/zelos/measurables/inputs.js to goog.module syntax by @moniika in #5388
  • Migrate core/events/ws_comment_events.js to goog.module syntax by @gonfunko in #5380
  • Migrate dropdown to goog.module syntax by @alschmiedt in #5207
  • Migrate core/events/events.js to goog.module syntax by @gonfunko in #5302
  • Allow command key zoom on mac devices by @hpnrep6 in #5419
  • Create scripts/migration/renamings.js to collect information about renamed API entries by @cpcallen in #5426
  • Use Blockly.utils.arrayRemove by @NeilFraser in #5420
  • fix: add missing requires for Blockly.util.object and Blockly.util.Size by @cpcallen in #5427
  • Migrate core/utils/useragent.js to goog.module syntax by @cpcallen in #5435
  • Note behavior of centerOnBlock when block is part of a stack in the JSDoc by @gonfunko in #5442
  • Rename Blockly.utils.IdGenerator to idGenerator and move Blockly.utils.genUid to there by @cpcallen in #5441
  • Migrate core/utils.js to goog.module syntax by @cpcallen in #5446
  • maxInstance fix by @Apoorvgarg-creator in #5430
  • Migrate core/tooltip.js to goog.module syntax by @gonfunko in #5222
  • Migrate core/touch_gesture.js to goog.module syntax by @gonfunko in #5449
  • Migrate core/msg.js to goog.module syntax by @cpcallen in #5448
  • Revert inadvertently reverted change to test/deps.js by @cpcallen in #5452
  • Migrate core/global.js to named exports by @cpcallen in #5451
  • Migrate core/utils/xml.js to goog.module syntax by @cpcallen in #5459
  • Move alert/confirm/prompt to a new file, dialog.js by @gonfunko in #5457
  • Move bump objects function into a separate module by @rachel-fenichel in #5453
  • Don't monkey-patch Blocky.utils.xml.document in node module by @cpcallen in #5461
  • Migrate Blockly.hueToHex to Blockly.utils.colour.hueToHex by @gonfunko in #5462
  • Migrate core/inject.js to goog_module syntax by @rachel-fenichel in #5456
  • test: Changes mocha tests to use node_modules instead of unpkg by @alschmiedt in #5467
  • fix: adds a fix for npm install failing by @alschmiedt in #5471
  • Migrate hideChaff() from Blockly to WorkspaceSvg by @gonfunko in #5460
  • Remove unused require of Blockly in Blockly.ToolboxCategory by @cpcallen in #5474
  • Re-export Blockly.utils.* submodules from Blockly.utils by @cpcallen in #5465
  • Migrate tests goog module by @alschmiedt in #5440
  • Note Blockly.alert/confirm/prompt/hueToHex/hideChaff migrations in renamings.js by @gonfunko in #5475
  • refactor: Migrate Blockly.onKeyDown out of blockly.js by @maribethb in #5476
  • refactor: remove unused Blockly.onContextMenu_ by @maribethb in #5480
  • refactor: move Blockly.deleteBlock out of blockly.js by @maribethb in #5483
  • refactor: Move Blockly.svgResize to Blockly.common by @maribethb in #5485
  • chore: sets polyfill flag to true by @alschmiedt in #5454
  • Clean up get/set accessor definitions by @cpcallen in #5488
  • Migrate selected from Blockly to Blockly.common by @gonfunko in #5489
  • chore: remove support for node 10 by @alschmiedt in #5496
  • Migrate core/blockly.js to goog.module syntax by @gonfunko in #5494
  • Move browser event utils from utils.js to browser_events.js by @BeksOmega in #5464
  • chore: disables caching when running the playground by @alschmiedt in #5498
  • fix: Prevent request of (non-existent) closure/goog/deps.js by @cpcallen in #5499
  • feat: add JSON serialization - goog version by @BeksOmega in #5487
  • Make several exported private fields/methods TEST_ONLY by @gonfunko in #5479
  • refactor: Remove remaining references to Blockly.* from goog.modules by @cpcallen in #5505
  • Fix goog module jsdoc by @moniika in #5504
  • chore: remove deprecated functions by @rachel-fenichel in #5509
  • fix: enable missingRequire in build_tasks by @rachel-fenichel in #5510
  • chore: Remove declareLegacyNamespace from block-related files by @gonfunko in #5511
  • Remove legacy keyboard nav by @alschmiedt in #5513
  • chore: named exports for block* files by @rachel-fenichel in #5512
  • refactor: Use named exports for modules in core/keyboard_nav/*.js by @alschmiedt in #5517
  • chore: update dev tools dev dependency by @alschmiedt in #5516
  • Merge develop into goog_module by @moniika in #5514
  • fix: JSDoc generation for modules without classes by @gonfunko in #5519
  • fix: Updates the release task to build typings for msgs by @alschmiedt in #5495
  • Migrate core/field_angle.js to to goog.module syntax by @NeilFraser in #5521
  • chore: Remove declareLegacyNamespace() from toolbox/* files by @moniika in #5523
  • fix: Cleanup warnings logged by mocha tests by @moniika in #5520
  • chore: Remove declareLegacyNamespace() from field_* files by @gonfunko in #5522
  • chore: Remove declareLegacyNamespace() from files in core by @gonfunko in #5525
  • chore: Remove declareLegacyNamespace() from Blockly.Themes files by @moniika in #5524
  • refactor: Rename Blockly.connectionTypes to Blockly.ConnectionType by @himanshujaidka in #5407
  • chore: Remove declareLegacyNamespace from renderers by @gonfunko in #5528
  • Fix typo in Blockly.serialization.blocks by @moniika in #5531
  • chore: Remove declareLegacyNamespace() from files under interfaces/* by @moniika in #5526
  • refactor: Migrate Blockly.ConnectionType to named exports by @cpcallen in #5533
  • Reexport global.globalThis this as Blockly.utils.global by @cpcallen in #5534
  • refactor: Rename Blockly.Blocks, migrate to named exports by @cpcallen in #5515
  • chore: remove declareLegacyNamespace from events by @alschmiedt in #5532
  • Fix typo in alias by @moniika in #5529
  • fix: Add hack to copy accessors to global Blockly namespace object by @cpcallen in #5536
  • BREAKING CHANGE: Migrate core/ to goog.module by @cpcallen in #5544
  • fix: blocks dragged from RTL flyout being incorrectly positioned by @BeksOmega in #5548
  • fix: infinite loop when using defineProperties by @alschmiedt in #5549
  • Add namespace and alias annotations to jsdoc by @moniika in #5550
  • Add missing @alias annotations by @moniika in #5559
  • Update @Package annotations by @moniika in #5558
  • Add JSDoc to theme classes. by @moniika in #5551
  • Add missing alias annotations by @moniika in #5561
  • chore: Rollup of all Q3 message changes by @NeilFraser in #5565
  • chore: Rollup of all Q3 message changes by @NeilFraser in #5564
  • Add class annotation by @moniika in #5566
  • JSDoc improvments for accessors, etc. by @cpcallen in #5567
  • fix: Use goog.require instead of goog.requireType for interfaces when necessary by @cpcallen in #5568
  • fix: Fix JS Spaghetti button. by @maribethb in #5569
  • fix: RTL copy-paste and duplicate by @BeksOmega in #5560
  • fix: Fix Block Factory preview workspace by @cpcallen in #5571
  • chore: rebuild for release by @alschmiedt in #5573
  • fix: Fix errors in injected CSS by @moniika in #5587
  • feat: add Blockly.Extensions.isRegistered function by @aaimio in #5500
  • chore: Run clang-format on core/*.js by @rachel-fenichel in #5589
  • fix: Make update_metadata.sh work on macOS by @gonfunko in #5590
  • Fix options list being repeated when showEditor is programmatically called repeatedly by @hpnrep6 in #5429
  • feat: Add Croatian to Code demo by @NeilFraser in #5583
  • chore: Convert == to === and != to !== where possible. by @NeilFraser in #5599
  • docs: Remove @author tags by @NeilFraser in #5601
  • fix: Don't kludge accessors in compiled mode by @cpcallen in #5591
  • fix: group context menu collapse blocks events by @aaimio in #5501
  • Add Croatian to Code demo (#5583) by @NeilFraser in #5611
  • fix: Positioning of pasted/duplicated blocks in LTR workspaces by @gonfunko in #5613
  • refactor: Migrate to named exports by @gonfunko in #5623
  • chore: runs clang format on all files by @alschmiedt in #5627
  • chore: run eslint --fix for no-var rule in tests/mocha by @rachel-fenichel in #5637
  • Clang formatter by @alschmiedt in #5624
  • fix: Reexport of Marker in blockly.js because the Blockly.Marker module now uses named exports. by @Devesh21700Kumar in #5629
  • chore: Add feedback on expiry page. by @NeilFraser in #5648
  • chore: update dependabot messages and labels by @rachel-fenichel in #5653
  • chore: replace var with const and let in python block generators by @rachel-fenichel in #5650
  • chore: update var to const and let in dart block generators by @rachel-fenichel in #5654
  • chore: adds initial action to assign reviewers by @alschmiedt in #5642
  • fix(zelos): typo by @yyyang1996 in #5649
  • docs: Fix a few typos by @timgates42 in #5655
  • chore: update javascript block generators to const and let by @rachel-fenichel in #5661
  • chore: update php block generators to const and let by @rachel-fenichel in #5663
  • chore: update lua block generators to const and let by @rachel-fenichel in #5662
  • fix: bad order of checks for setting flyout visibility by @rachel-fenichel in #5681
  • chore: Move functions from utils by @rachel-fenichel in #5706
  • chore: move remaining functions out of utils.js by @rachel-fenichel in #5714
  • chore: fix or ignore remaining lint by @rachel-fenichel in #5709
  • chore: move remaining function definitions out of blockly.js by @rachel-fenichel in #5699
  • chore: enable eslint-config-google by @rachel-fenichel in #5717
  • chore: Record renamings for named exports by @gonfunko in #5719
  • chore: make Blockly.common.setSelected package and update docs by @maribethb in #5728
  • chore: moves the public loop mixin into its own file by @alschmiedt in #5730
  • Enable the creation of concurrent, but not connected, output and previous connectors by @mark-friedman in #5702
  • fix: Stop throwing error when PointerEvent.pageX is 0. by @NeilFraser in #5727
  • chore: revert #5730 by @alschmiedt in #5740
  • refactor: convert some block generators to goog.module by @rachel-fenichel in #5762
  • chore: sets the compiled flag to true by @alschmiedt in #5767
  • Remove declare legacy serialization by @alschmiedt in #5757
  • feat: make checkAndDelete a public API by @alschmiedt in #5772
  • Fix advanced playground by @alschmiedt in #5775
  • chore: updates the names for parsing by @alschmiedt in #5778
  • deprecate!: removes deprecated connection functions by @alschmiedt in #5713
  • chore(test): Add playground that uses compressed files by @rachel-fenichel in #5782
  • chore(test): add version of multi_playground with compressed files by @rachel-fenichel in #5785
  • release: merge master into develop by @rachel-fenichel in #5792
  • fix: allow undefined color in toolbox definition by @maribethb in #5801
  • fix: don't use fully qualified namespace in aria by @maribethb in #5804
  • fix: Upload new TypeScript typings for Q4 release by @maribethb in #5802
  • release: rebuild for 7.20211209.0 release by @maribethb in #5806
  • release: Rc 2021 12 by @maribethb in #5808
  • release: Merge master into develop 7.20211209.0 by @maribethb in #5809

Full Changelog: 6.20210701.0...draft-q4-2021