Skip to content

Releases: RaspberryPiFoundation/blockly

Q2 2020

26 Jun 00:34
93b5be4

Choose a tag to compare

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

03 Apr 23:58
07762ff

Choose a tag to compare

Patch release containing #3797.

Q1 2020

03 Apr 00:52
096d1c4

Choose a tag to compare

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

23 Jan 23:44

Choose a tag to compare

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

28 Oct 23:53
ba6dfd8

Choose a tag to compare

Patch release containing #3330.

Q3 Patch 3

23 Oct 17:41
1a4c321

Choose a tag to compare

Patch release containing #3316.

Q3 Patch 2

17 Oct 22:37
0a497a1

Choose a tag to compare

Patch release containing #3280.

Q3 2019 Patch 1

15 Oct 16:21
921e00b

Choose a tag to compare

This is a patch release for the Q3 2019 release.

It fixes a typo in the block factory and a problem with angle fields.

Q3 2019

14 Oct 20:39
d35bc19

Choose a tag to compare

This release is our second major version bump. After this we are returning the regularly scheduled minor bumps.

In this release (Q3 2019)

  • Keyboard navigation APIs
  • New rendering pipeline
  • Removal of the Closure UI library
  • Improvements in developer workflow
  • Continuing cleanup in fields
  • Many bugfixes

This was a big release with 650+ PRs. For a full list of pull requests in this issue, see #3165.

Issues closed in this release

Issues closed:

  • Object.assign (ES6) in codebase (#3153)
  • Visibility of bumpNeighbours breaks compiler (#3152)
  • Base renderer issues (#3132)
  • Uncaught typeError in workspaceCommentRenderSvg (#3106)
  • Inline image dropdown too low. (#3098)
  • Remove render debug and non-default renderers from default build (#3089)
  • +/- buttons for dynamically extending value input list (#3078)
  • Keyboard Nav: Interaction Between Mouse and Keyboard (#3071)
  • Add the ability to make a read-only workspace writable (#3049)
  • npm: new blocks instances appear below menuFlyout while dragging (#3032)
  • Keyboard Nav: Cursor not showing correct location (#3028)
  • Compile test is broken (#3027)
  • Keyboard Nav: Cursor in RTL not working (#3024)
  • Link in ReadME points to an invalid URL (#3021)
  • Have a way to choose which renderers are included in your bundle (#3018)
  • Unable to scroll the trash flyout without a mouse scroll (#3008)
  • Drag in trash flyout causes error (#3007)
  • Object.values not available in IE (#2999)
  • Missing hideChaff in custom field demo? (#2998)
  • block.dispose(/* healStack */ true) does not properly handle rows (#2991)
  • Endmost value connections are not considered available (#2989)
  • how to build package published on NPM (#2987)
  • [zelos] Dynamic output shapes (#2977)
  • How to compile project with local closure compiler? (#2975)
  • Define a BlockRenderer object that Geras, Thrasos, and Zelos extend (#2966)
  • Spacer calculation (#2964)
  • Move DARK_PATH_OFFSET into Geras (#2956)
  • Rendering highlights in RTL are broken (#2954)
  • Slight difference in statement input connection location (#2952)
  • Type checking for Measurables (#2946)
  • topRow.populate and bottomRow.populate belong in info (#2945)
  • Zelos bottom connection point not positioned correctly. (#2941)
  • During domToWorkspace() child block with FieldDropdown is in workspace's topblock (#2926)
  • Value or dummy after statement is broken. (#2921)
  • Debug rendering isn't easy to turn on and off (#2904)
  • Alignment issues (#2894)
  • StartY and overhangY in top and bottom rows (#2866)
  • Custom Fields demo is broken (#2862)
  • Old Syntax transformation (#2859)
  • Stop filtering subdirectories in the compile test script (#2838)
  • Blocks with outputs misaligned in flyout (#2828)
  • Block + children bounding boxes aren't always right (#2821)
  • Text fields re-sizing is broken after the workspace regains visibility (#2811)
  • blocks with hats zoom out of the toolbar (#2800)
  • build function with typed arguments (#2797)
  • Create and Delete Events Generate Lots of Detached Nodes (#2795)
  • Text field editing in RTL resizes and positions incorrectly (#2777)
  • Undo is broken with Ctrl + Z (#2765)
  • Exception on doing pinch zoom over blocklyDiv (#2752)
  • Compiler is broken (9 errors) (#2748)
  • The DropDownDiv Should Respect Toolboxes (#2744)
  • Replace closure toolbox categories with a custom implementation (#2735)
  • Remove remaining closure ui components (#2734)
  • Themes: Background Colour (#2733)
  • Flyout Scrollbars Don't Scroll when you Drag the Flyout (#2728)
  • Standardize Field Configuration (#2722)
  • Field.text_: Documentation vs use (#2720)
  • Decide how developers will choose their renderer (#2702)
  • Custom Fields Not Working in Firefox (#2696)
  • Block jittering on small workspaces (#2681)
  • where XML id get confusing id="4H=DIk|U}:}a(%z9!(t:" x="112" y="113" (#2677)
  • Toolbox buttons on the playground don't work in IE11 (#2672)
  • Text is mismeasured on IE11 and Edge (#2671)
  • Here is a live example of generator (#2665)
  • Undoing a midstack delete hides blocks (#2660)
  • Editing a number field on Android breaks dragging (#2659)
  • blocks with relational joint setting (#2650)
  • DOM html appoint you svga rights to render events not DOM (#2649)
  • real time code generation incorrect while dragging? (#2646)
  • Angle Field Doesn't Handle Touch Input Correctly (#2642)
  • Color inputs are not filtered (security vulnerability for server-side blockly code evaluation) (#2637)
  • Attaching Collapsed blocks to input containing existing block (#2632)
  • Dropdown with long list does not scroll to selected item when re-opened (#2613)
  • Procedures Don't Properly Handle Changing the Case of a Parameter (#2592)
  • Procedures Don't Properly Handle Having No Name (#2591)
  • Proposal: Wait to Set Field Value Until SourceBlock is Set (#2586)
  • Insertion Marker Rendering Error (#2556)
  • Document Move Options (#2524)
  • Change Access Level of Field.updateWidth (#2428)
  • Can't click "Done" on android phone keyboard (#2340)
  • FieldAngle CLOCKWISE and OFFSET apply to all angle pickers simultaneously (#2315)
  • Document Mutator's saveConnections (#2198)
  • Node.js Tracking bug (#2082)
  • New variable should default setter to that variable. (#2050)
  • Comments not recorded in delete event (#1960)
  • Remove goog library calls from generators/ files. (#1923)
  • audio play() called before user interaction (#1902)
  • image dropdown documentation improvement (#1750)
  • Extract common Field support methods into new field_util.js (#1624)
  • Document the process of creating a custom field. (#1623)
  • RTL Render error on block with icon and no fields/inputs (#1608)
  • Allow a block to restrict the maximum number of instances allowed in the workspace. (#1435)
  • Function arguments: Disallow duplicate var names (#1377)
  • Align first row of fields/inputs for connected blocks (#1346)
  • FieldImage: Support "flip_rtl", like scratch-blocks (#1339)
  • Make Closure dependency alert send devs to the link (#1313)
  • Blockly.FieldNumber does not support HEX (https://github.com/google/blockl...
Read more

July 2019 - Node patch fix

05 Aug 22:59
325adba

Choose a tag to compare

This is a patch release for the July 2019 release.

It fixes the node build of Blockly and adds tests for node.

If you're not using Blockly with Node.js, this won't affect you.