Releases: google/blockly
Q3 Patch 2
Patch release containing #3280.
Q3 2019 Patch 1
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
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...
July 2019 - Node patch fix
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.
July 2019
This release is our first major version bump. The next release will also be a major version bump, after which we should go back to regularly scheduled minor bumps.
If you're using Blockly plain, with no modifications, you shouldn't notice anything different. If you've made significant changes inside Blockly or are using our more advanced APIs, read on!
In this release (Q2 2019)
-
A major cleanup of the Field APIs (huge thanks to Beka Westberg for this work, on both code and documentation)
- Existing library fields work the same
- And now we have documentation on all library fields, including code samples
- Your custom fields may need to be tweaked--see the Upgrading a Custom Field page
- We have documentation on creating a new custom field!
- Beka also built a custom field demo with annotated code samples
- Existing library fields work the same
-
Renames of a significant number of utility functions.
- For a full list of renamed functions, plus bash scripts to do most of the work for you, check out this gist
- This is part of our push to remove our dependency on the Closure UI library
-
Deletion of the accessibility demo
- We're working on a new approach to accessibility, with a focus on keyboard navigation
- That is on the keyboard-nav branch, and will be in the Q3 release
- The old accessibility demo is now in a separate repo, blockly-experimental
-
An XSD for validating Blockly XML files
-
Assorted bug fixes
Here is a full list of pull requests and issues closed:
Issues closed
- Function argument names not escaped (#2624)
- Functions with return values have lost the no-statement option (#2621)
- Procedures with arguments break (#2620)
- Headless xml -> Javascript in Node.js: Many Problems (#2603)
- Previously partial XML parsing failure becomes absolute failure (#2600)
- run python build.py, but build failed (#2593)
- Procedures Don't Properly Handle Spaces (#2590)
- No longer builds on NodeJS v12+ (#2582)
- Headless Workspaces Require a Theme to Be Defined (#2575)
- Make separate Feature Request and Bug Report templates (#2566)
- Move accessible directory to an experiments repo (#2565)
- text_append block shows all variables in dropdown menu (#2561)
- Dynamic variable getter/setter toolbox error (#2557)
- hideChaff doesn't cancel chaff that's animating open (#2555)
- Blockly.getMainWorkspace returns WorkspaceSvg (#2553)
- Colour picker doesn't close on selection (#2544)
- Accessible Demo is broken (#2540)
- Shadow blocks sent to trash (#2538)
- Uncompressed Mode - Error using dynamics variables (#2536)
- Shadow blocks shouldn't hide blocklyPathDark (#2535)
- Date picker should fire change events (#2534)
- Code: add line numbers (#2533)
- Dropdown arrow missing padding. (#2527)
- Document Move Options (#2524)
- Why does the locally opened window have FieldDate, while the project launched with http://localhost:3000 has no FieldDate alone? (#2511)
- How to regenerate the blockly_compressed.js file after FieldDate unannotates it? (#2510)
- When the variable name can be displayed, the Chinese 姓名 can be displayed, and when it becomes code, is it name? (#2505)
- On the problem of recompiling errors after Uncommenting FildDate (#2504)
- Some Browsers Don't Properly Import XML with Sub-Block Nodes (#2499)
- Blockly.FieldDate is not a constructor (#2488)
- Make Adding Children to a Field's textElement_ Easier (#2484)
- Is there an object concept in Blockly? Or how to develop custom components for objects (#2481)
- How to Redevelop Field_date (#2480)
- Extension Documentation Example Incorrect (#2474)
- Audit fields' behavior when setting invalid values (#2462)
- Feature request: Collapse/expand blocks on double click (#2461)
- Q: Should fields initialize with default values? (#2454)
- Q: How do you want text input validation to look? (#2435)
- Blockly Future (#2432)
- Clarify in docs that variabletype needs to be set in Toolbox XML when using typed variables (#2422)
- what can i do to return the result from the function that use in controls_if block when i try to create a new block (actually i need it return true or false,but nothing return) (#2416)
- getAllBlockStyles Annotation Error? (#2414)
- MIT's licence appearing in compressed file (#2412)
- Buttons and Labels in Toolbox do Not Respect Elements (#2396)
- Comments should be allowed on non-movable/deletable blocks (#2388)
- Blocks Positioned Under Toolbox in RTL Demo (#2387)
- Calling setVisible(false) on a Field Does Not Update the Block Correctly (#2381)
- Angle picker needs border (#2379)
- Mouse clicks/drags are borked in Safari (#2362)
- [Android] Suggest to open number keyboard when edit number field (#2341)
- Documentation: Category XML Attributes (#2333)
- Update webdriverio to 5.4 (#2283)
- Remove enforced delays from generator tests (#2118)
- Update geckodriver to latest (#2117)
- Package name casing inconsistencies (#2102)
- Clicking on document should call Blockly.hideChaff (#2066)
- New variable should default setter to that variable. (#2050)
- XML namespace (#1978)
- Add Field.prototype.toXml() & .fromXml() (#1627)
- Use for field_number editor (#1595)
- Proposal - Block.setDisabled() to Block.setEnabled() (#1593)
- Create DTD for xml format (#1308)
- Remove uses of 'goog' in demos (#1072)
- Code demo is not escaping strings before colourizing them (#1002)
- BlocklyFactory: Remove dependency on closure. (#668)
- realtime not working playground.html (#88)
Pull requests
- Rebuild (#2643)
- Update dependencies (#2638)
- A bunch of XML related issues. (#2635)
- Remove edit handler that is just eating events (#2634)
- Add XSD to validate Blockly’s XML (#2633)
- Replace --dependency_mode=STRICT with PRUNE. (#2631)
- Added setCollapsed to insertion marker block creation. (#2629)
- Define DOMParser and Element in Blockly namespace (#2628)
- Fixed Procedure Argument Escaping (#2626)
- Remove accessibility demo from Blockly repo (#2623)
- Fixed Procedure Decomposition Not Working with >1 Arguments (#2622)
- Fixes bug with using dynamic variable in toolbox (#2618)
- Rename BlockAnimation > blockAnimat...
April 2019
Issues closed
- Small typo in field.js documentation (#2368)
- Menus change layout while moving highlight (#2351)
- Blockly math operators error (#2348)
- Trashcan's flyout badly positioned on X axis (#2345)
- Dropdown sizing issues (width and height) (#2337)
- Blocks unplugged during drag can be lost/deleted (#2336)
- Blockly.setTheme errors out if Blockly.getMainWorkspace() does not return a value (#2331)
- updateToolbox doesn't correctly remeasure the toolbox size (#2330)
- Dart math generator contains Python reference (#2329)
- Context Menus not Receiving Clicks (#2312)
- Scroll Event Bound in inject.js Doesn't Work for Multiple Workspaces (#2310)
- involuntary hatless mode (#2302)
- Add Constant for Scrolling with Non-Pixel Delta Modes (#2301)
- Recenter algorithm does not adapt to simple toolbox correctly (#2297)
- Message does not reference all 5 arg(s). (#2293)
- Multiple workspaces on the same page breaks when using trashcan (#2291)
- Bumping in RTL can push blocks unexpectedly far away (#2290)
- Q: Should the absoluteLeft and absoluteTop Metrics be Shifted to Avoid Simple Toolboxes? (#2280)
- Disable Next Blocks in Toolbox (#2273)
- Insertion marker flickering (#2255)
- Local build fails when run from top level (#2172)
- Test blocks should have common prefix (#2103)
- Clicking on document should call Blockly.hideChaff (#2066)
- make list from text block throws uncaught Error (#2061)
- New variable should default setter to that variable. (#2050)
- Custom Dialogs does not have an entry/icon in demos/index.html (#1709)
- FieldImage alt text does not propagate to page markup (#1632)
- Rename workspaceSvg.getFlyout_ to workspaceSvg.getFlyout (#1101)
- Underscore naming convention mismatch with jsdoc privacy annotations. (#695)
Pull requests
- Rebuild (#2372)
- typo fix in line 134 of field.js for documentation (#2371)
- typo fix in line 134 of field.js documentation (#2369)
- Updates function call (#2367)
- Common prefix for test blocks (#2361)
- Fixes bumping too much when in RTL (#2360)
- Hides chaff on document mouseup (#2359)
- Develop1709 (#2358)
- Rename WorkspaceSvg.getFlyout_ to WorkspaceSvg.getFlyout (#2357)
- Fix margins/checkbox in RTL dropdown menus (#2356)
- Adds check for a targetConnection (#2355)
- Update selected menu sizing to fix #2351 (#2353)
- Fix bubble open/close events (#2352)
- Ignores urls for eslint (#2350)
- Fixed Trashcan Flyout Positioning (#2349)
- Random upgrades (#2346)
- Fix zoom bug while dragging in Mutators (#2344)
- Remove Python references in Dart math generator (#2343)
- Set theme fix (#2335)
- Keyboard nav cleanup (#2334)
- Fixed updateToolbox Not Properly Updating Flyouts (#2332)
- Add a playgound for debugging SVG paths (#2328)
- Reverts changes to fix bug with selecting dropdown (#2327)
- Fix issue 2061 (make list from text block throws uncaught Error) (#2326)
- style -> categorystyle change (#2325)
- Don't try to bump if the object has already been deleted. (#2324)
- Fixed Scroll Event Binding to Work with Multiple Workspaces (#2323)
- Added Event Filtering to workspaceChanged in Mutator (#2320)
- Add click target property to fields, with accessor (#2318)
- Add dropdowndiv and use it for the colour picker and angle fields (#2313)
February 2019
Major features
- Insertion markers
- Large workspace performance
- Trashcan contents
- Theme API
Issues closed
- Insertion marker flickering (#2255)
- Multiple workspaces on the same page breaks when using trashcan (#2291)
- Disable Next Blocks in Toolbox (#2273)
- Complete adding Hausa language (ha) (#2264)
- getTertiaryColour -> getColourTertiary (#2262)
- request: Auto-generate Create buttons for added variable types (#2256)
- Should the "FinishedLoading" event be added to Events.fromJson? (#2250)
- Disabled blocks can't be retrieved from the trash. (#2239)
- Image dropdowns of disabled blocks don't render properly. (#2238)
- Trash hotspot wrong when trash is full. (#2237)
- workspace.getAllBlocks shouldn't return insertion markers by default (#2236)
- Shadow blocks are positioned wrong when converted to real blocks in DevTools (#2234)
- I can't get blockly working in Angular (#2232)
- Blocks disapper when a custom block connects with a defined block (#2231)
- feature request - Hide not so important "Inputs" (#2229)
- block.dispose(/healStack/ true) should not attempt to heal shadow block connections (#2227)
- Maximum Block Limit demo off by one (#2216)
- Colours on advanced compilation demos are all black (#2215)
- Exception "Cannot set property 'textContent' of undefined" from a custom block after blockly update (#2214)
- blockfactory error (#2206)
- No default jsDelivr CDN file set (#2200)
- store generated code safely on server (#2199)
- No Accessor to tell if BlocklyStorage has Anything Stored (#2197)
- Can Blockly use upload file button? (#2194)
- Document maxTrashcanContents Option (#2192)
- Undeletable Blocks Created Through .domToWorkspace can be "Deleted" through Undo (#2191)
- Display Trashcan Flyout Horizontally when Layout is Horizontal (#2166)
- uncheckedconversions compilation error: Fix in progress (#2164)
- text_join argument precedence bug in PHP (#2161)
- flyout_base's .filterForCapacity Does Not Consider Children When Checking .remainingCapacityOfType (#2154)
- Document Max Instances Option (#2141)
- Trashcan Contents (#2136)
Pull requests
- Rebuild 02 11 19 (#2288)
- Update dependencies (#2284)
- Fixed Horizontal Scrolling on Window Resize for Simple Toolboxes (#2282)
- Fixed Flyout Scrollbars Not Being Repositioned on Window Resize (#2281)
- Fixed next blocks not being disabled in flyout. (#2278)
- Check against healing child shadow blocks (#2271)
- Changes colour names (#2270)
- Typo fix in code comment (#2269)
- Pull in pxt-blockly's rendering file and hack until blocks can be created without errors (#2266)
- Typo in code comment (#2265)
- Update to latest Closure Template jars, recompile. (#2263)
- Rebase rendering branch on develop (#2260)
- Fix event description for theme (#2259)
- Speed up the connection DB (#2254)
- Added a Test Block for a Dynamic Dropdown (#2252)
- Update procedures.js (#2251)
- Update procedures.js (#2248)
- Fixed Image Dropdowns on Disabled Blocks not Rendering Correctly. (#2246)
- Ignore insertion markers in getAllBlocks; add accessors for insertion markers (#2243)
- Changed Trashcan Lid Opening Direction (#2242)
- Retrieve Disabled Blocks from the Trashcan (#2241)
- Fixed Trashcan Hotspot & Changed Positioning (#2240)
- Added FinishedLoading Event (#2235)
- Ignore insertion markers when checking remaining capacity (#2233)
- Access colours using bracket notation (#2226)
- Block in (#2225)
- Add support for rendering a vertical input based cursor (#2224)
- Show the cursor with attached to a statement connection (#2223)
- Block nav (#2222)
- Initial cursor rendering, supports coordinate positioning only (#2221)
December 2018
Issues closed
- Blockly not compiling totally when using build.py (#2138)
- IO loop going away before the audio device has been stopped (#2134)
- FieldImage opt_onClick initialisation when the block is defined in json (#2132)
- C shaped blocks don't wrap around other blocks (insertion markers, develop) (#2131)
- Mobile Demos scale is off and user can zoom page (#2119)
- Update selenium to latest (#2116)
- Upgrade chromedriver to latest (#2115)
- Upgrade build.py to python 3 (#2112)
- broken when rename arguments of function (#2110)
- getVariable can fail (#2107)
- how to build blocks_compressed.js? (#2099)
- Undo broken when deleting multiple blocks in a stack (#2097)
- Serializing a stack of blocks only outputs the first block (#2096)
- logic_boolean block can not be dragged from toolbox on Android (#2055)
- BlockFactory is broken (#2040)
- controls_if: Mutation actions do not undo correctly (#2037)
- Calling setTooltip on a field label or image during Block.init() crashes (#2030)
- Add randomness to bump distances (#2011)
- Upgrade to Dart 2.0 (#1951)
- Deleting workspace comments sometimes throws console warnings (#1848)
- Dragging a block off the edge breaks undo in fixed size workspaces (#1653)
- Renaming a procedure does not group events (#1508)
- Replace goog.asserts when validating user data (#824)
- [Edge, IE] Zoom control mouseover is not clipped (#172)
Pull requests
- Disable insertion markers for the December 2018 release (#2170)
- Groups events fired during field input change (#2168)
- Reconnects child blocks when an undo is done on an else block (#2167)
- Propagate the event group when enforcing bounds on blocks (#2163)
- Handle promise rejection for sound.play() in preload (#2162)
- #172, Fixed [Edge, IE] Zoom control mouseover is not clipped (#2159)
- Fixed Filter Capacity not Considering Child Blocks. (#2155)
- #1848 Fixed throw console warning when deleting workspace comments (#2151)
- Tweak insertion marker snap radii (#2149)
- Added randomness to bumping per Issue #2011 (#2148)
- Allow statement connections to connect around block stacks during drags (#2147)
- Pulls from MakeCode fork the ability to rename and delete variables i… (#2144)
- Bugfix/2107 (#2139)
- Generate Code For Single Block (#2133)
- Added Max Instances Property to Workspace Options (#2130)
- Rebase insertion markers into the rendering branch (#2129)
- Feature/insertion markers (#2127)
- Update selenium version (#2126)
- Fix issues related to Python 3 compatibility (#2125)
- Update chromedriver version (#2124)
- Make build.py compatible with Python 2 and 3 (#2123)
- Add support for handling window.prompt(..) etc in iOS mobile demo (#2121)
- Removing comment around (#2120)
- [rendering] update build script (#2113)
- Run generator tests on Travis (#2111)
- fix #2090 (#2109)
- Rebuild to include blockToDom fix; bump version number (#2106)
- Immovable blocks should not move when workspace is cleaned (#2104)
November 2018 patch
This release contains all of the changes from the October 2018 release, plus a rebuild to apply those changes to the compressed files.
October 2018
The compressed files are out of date in this release. Please use the November patch release instead.
Bugs closed in this release (not all bugs were present on master):
- Blocks unable to be dragged or fields edited (#2089)
- Pull vs Downloading .zip (#2075)
- Typed variables do not appear in the toolbox (#2071)
- mathRandomInt problem (#2070)
- Add connection.getChecks function (#2048)
- field_image opt_onClick not work (#2034)
- Remove goog library calls from blocks/ files. (#1922)
- Image field: click handler gets ignored (#1887)
- Combine code for CommentDelete.run and CommentCreate.run (#1871)
- Disallow block type names that might match anything in Blockly.Generator.prototype (#1558)
- Audit all uses of goog.dom.createDom (#1423)
- Move block animations to a separate file (#1022)
- Serializing a stack of blocks only outputs the first block (#2096)
Release notes:
- Generator test improvements (#2085)
- Fix setting tooltips in field init for fields (#2084)
- Fix setting tooltips in field init for label fields (#2083)
- Upgrade to dart 2.0 (#2081)
- Remove all calls to goog.dom.createDom (#2080)
- Add new atan2 block (#2079)
- Honour reductions to MAX_UNDO (#2078)
- Adding hooks for Android dialogs upon console.prompt() and similar (#2077)
- Updating Android ContraintLayout (#2074)
- Update Android project to gradle 3.2.0 (#2073)
- Update gradle to 3.1.4 (#2072)
- Fix inconsistent return type warning (#2069)
- Remove unneeded String() and str() calls. (#2068)
- Optimized Images by the GitHub [ImgBot] (61.18kb -> 44.41kb (27.42%)) (#2065)
- Optimized Images by the GitHub [ImgBot] (61.18kb -> 44.41kb (27.42%)) (#2064)
- Playground upgrades (#2063)
- Remove .children access (#2059)
- Adding demos/mobile/README.md (#2058)
- Adding mobile HTML demo (#2057)
- Android/iOS demos (#2056)
- Moving all mobile demos into demos/mobile. (#2054)
- Restructure isConnectionAllowed to match scratch blocks (#2053)
- Calls to getAllBlocks should pass a value for ordered (#2052)
- Add some functions for insertion markers (#2051)
- Add connection.getCheck function #2048 (#2049)
- Mark some field properties protected (#2047)
- fix #1887 #2034 (#2046)
- fix bug.when create get/set dynamic variable block from set/get , lost the type. (#2045)
- Merge Sept patch release (PR #2042) into develop (#2044)
- Bumping develop branch version to 1.20180904.0-develop (#2043)
- Fix bad xml element when generating next node (#2100)