diff --git a/CHANGELOG-2021.md b/CHANGELOG-2021.md
new file mode 100644
index 0000000000..c375ef8bcb
--- /dev/null
+++ b/CHANGELOG-2021.md
@@ -0,0 +1,745 @@
+# Enso 2.0.0-alpha.18 (2021-10-12)
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Enso Compiler
+
+- [Updated Enso engine to version 0.2.30][engine-0.2.31]. If you're interested
+ in the enhancements and fixes made to the Enso compiler, you can find their
+ release notes
+ [here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
+
+
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
+
+#### Visual Environment
+
+- [Fixed freezing after inactivity.][1776] When the IDE window was minimized or
+ covered by other windows or invisible for any other reason for a duration
+ around one minute or longer then it would often be frozen for some seconds on
+ return. Now it is possible to interact with the IDE instantly, no matter how
+ long it had been inactive.
+
+
+
+[1776]: https://github.com/enso-org/ide/pull/1776
+
+# Enso 2.0.0-alpha.17 (2021-09-23)
+
+
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
+
+#### Visual Environment
+
+- [Correct handling of command-line flags.][1815] Command line arguments of the
+ form `--backend=false` or `--backend false` are now handled as expected and
+ turn off the "backend" option. The same fix has been applied to all other
+ boolean command-line options as well.
+- [Visualizations will be attached after project is ready.][1825] This addresses
+ a rare issue when initially opened visualizations were automatically closed
+ rather than filled with data.
+
+
+
+[1815]: https://github.com/enso-org/ide/pull/1815
+[1825]: https://github.com/enso-org/ide/pull/1825
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Enso Compiler
+
+- [Updated Enso engine to version 0.2.30][engine-0.2.30]. If you're interested
+ in the enhancements and fixes made to the Enso compiler, you can find their
+ release notes
+ [here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
+
+[engine-0.2.30]: https://github.com/enso-org/enso/blob/develop/RELEASES.md
+
+# Enso 2.0.0-alpha.16 (2021-09-16)
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Visual Environment
+
+- [Auto-layout for new nodes.][1755] When a node is selected and a new node gets
+ created below using Tab then the new node is automatically
+ positioned far enough to the right to find sufficient space and avoid
+ overlapping with existing nodes.
+
+[1755]: https://github.com/enso-org/ide/pull/1755
+
+#### Enso Compiler
+
+- [Updated Enso engine to version 0.2.29][engine-0.2.29]. If you're interested
+ in the enhancements and fixes made to the Enso compiler, you can find their
+ release notes
+ [here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
+
+[engine-0.2.29]: https://github.com/enso-org/enso/blob/develop/RELEASES.md
+
+
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
+
+#### Visual Environment
+
+- [Sharp rendering on screens with fractional pixel ratios.][1820]
+
+[1820]: https://github.com/enso-org/ide/pull/1820
+
+
+
+# Enso 2.0.0-alpha.15 (2021-09-09)
+
+
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
+
+#### Visual Environment
+
+- [Fixed parsing of the `--no-data-gathering` command line option.][1831] Flag's
+ name has been changed to `--data-gathering`, so now `--data-gathering=false`
+ and `--data-gathering=true` are supported as well.
+
+[1831]: https://github.com/enso-org/ide/pull/1831
+
+# Enso 2.0.0-alpha.14 (2021-09-02)
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Visual Environment
+
+- [Visualization previews are disabled.][1817] Previously, hovering over a
+ node's output port for more than four seconds would temporarily reveal the
+ node's visualization. This behavior is disabled now.
+
+[1817]: https://github.com/enso-org/ide/pull/1817
+
+#### Enso Compiler
+
+- [Updated Enso engine to version 0.2.28][1829]. If you're interested in the
+ enhancements and fixes made to the Enso compiler, you can find their release
+ notes [here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
+
+[1829]: https://github.com/enso-org/ide/pull/1829
+
+# Enso 2.0.0-alpha.13 (2021-08-27)
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Enso Compiler
+
+- [Updated Enso engine to version 0.2.27][1811]. If you're interested in the
+ enhancements and fixes made to the Enso compiler, you can find their release
+ notes [here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
+
+[1811]: https://github.com/enso-org/ide/pull/1811
+
+# Enso 2.0.0-alpha.12 (2021-08-13)
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Visual Environment
+
+- [Improvements to visualization handling][1804]. These improvements are fixing
+ possible performance issues around attaching and detaching visualizations.
+- [GeoMap visualization will ignore points with `null` coordinates][1775]. Now
+ the presence of such points in the dataset will not break initial map
+ positioning.
+
+#### Enso Compiler
+
+- [Updated Enso engine to version 0.2.26][1801]. If you're interested in the
+ enhancements and fixes made to the Enso compiler, you can find their release
+ notes [here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
+
+[1801]: https://github.com/enso-org/ide/pull/1801
+[1775]: https://github.com/enso-org/ide/pull/1775
+[1798]: https://github.com/enso-org/ide/pull/1798
+[1804]: https://github.com/enso-org/ide/pull/1804
+
+# Enso 2.0.0-alpha.11 (2021-08-09)
+
+This update contains major performance improvements and exposes new privacy user
+settings. We will work towards stabilizing it in the next weeks in order to make
+these updates be shipped in a stable release before the end of the year.
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Visual Environment
+
+- [New look of open project dialog][1700]. Now it has a "Open project" title at
+ the top.
+- [Documentation coments are displayed next to the nodes.][1744].
+
+#### Enso Compiler
+
+- [Updated Enso engine to version 0.2.22][1762]. If you are interested in the
+ enhancements and fixes made to the Enso compiler, you can find out more
+ details in
+ [the engine release notes](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
+
+
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
+
+#### Visual Environment
+
+- [Fixed a bug where edited node expression was sometimes altered.][1743] When
+ editing node expression, the changes were occasionally reverted, or the
+ grayed-out parameter names were added to the actual expression.
+
+[1700]: https://github.com/enso-org/ide/pull/1700
+[1742]: https://github.com/enso-org/ide/pull/1742
+[1726]: https://github.com/enso-org/ide/pull/1762
+[1743]: https://github.com/enso-org/ide/pull/1743
+[1744]: https://github.com/enso-org/ide/pull/1744
+
+# Enso 2.0.0-alpha.10 (2021-07-23)
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Enso Compiler
+
+- [Updated Enso engine to version 0.2.15][1710]. If you're interested in the
+ enhancements and fixes made to the Enso compiler, you can find out more
+ details in
+ [the engine release notes](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
+
+
+
+[1710]: https://github.com/enso-org/ide/pull/1710
+
+# Enso 2.0.0-alpha.9 (2021-07-16)
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Visual Environment
+
+- [Improved undo-redo][1653]. Node selection, enabling/disabling visualisations
+ and entering a node are now affected by undo/redo and are restored on project
+ startup.
+
+
+
+[1640]: https://github.com/enso-org/ide/pull/1653
+
+# Enso 2.0.0-alpha.8 (2021-06-09)
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Enso Compiler
+
+- [Updated Enso engine to version 0.2.12][1640]. If you're interested in the
+ enhancements and fixes made to the Enso compiler, you can find out more
+ details in
+ [the engine release notes](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
+
+[1640]: https://github.com/enso-org/ide/pull/1640
+
+
+
+# Enso 2.0.0-alpha.7 (2021-06-06)
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Visual Environment
+
+- [User Authentication][1653]. Users can sign in to Enso using Google, GitHub or
+ email accounts.
+
+
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
+
+#### Visual Environment
+
+- [Fix node selection bug ][1664]. Fix nodes not being deselected correctly in
+ some circumstances. This would lead to nodes moving too fast when dragged
+ [1650] or the internal state of the project being inconsistent [1626].
+
+[1653]: https://github.com/enso-org/ide/pull/1653
+[1664]: https://github.com/enso-org/ide/pull/1664
+
+
+
+# Enso 2.0.0-alpha.6 (2021-06-28)
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Visual Environment
+
+- [Profling mode.][1546] The IDE contains a profiling mode now which can be
+ entered through a button in the top-right corner or through the keybinding
+ ctrl+p. This mode does not display any information yet.
+ In the future, it will display the running times of nodes and maybe more
+ useful statistics.
+- [Area selection][1588]. You can now select multiple nodes at once. Just click
+ and drag on the background of your graph and see the beauty of the area
+ selection appear.
+- [Opening projects in application graphical interface][1587]. Press `cmd`+`o`
+ to bring the list of projects. Select a project on the list to open it.
+- [Initial support for undo-redo][1602]. Press cmd+z to
+ undo last action and cmd+z to redo last undone action.
+ This version of undo redo does not have proper support for text editor and
+ undoing UI changes (like selecting nodes).
+
+#### EnsoGL (rendering engine)
+
+
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
+
+#### Visual Environment
+
+- [Nodes in graph no longer overlap panels][1577]. The Searcher, project name,
+ breadcrumbs and status bar are displayed "above" nodes.
+
+#### Enso Compiler
+
+[1588]: https://github.com/enso-org/ide/pull/1588
+[1577]: https://github.com/enso-org/ide/pull/1577
+[1587]: https://github.com/enso-org/ide/pull/1587
+[1602]: https://github.com/enso-org/ide/pull/1602
+[1602]: https://github.com/enso-org/ide/pull/1664
+[1602]: https://github.com/enso-org/ide/pull/1650
+[1602]: https://github.com/enso-org/ide/pull/1626
+
+# Enso 2.0.0-alpha.5 (2021-05-14)
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Visual Environment
+
+- [Create New Project action in Searcher][1566]. When you bring the searcher
+ with tab having no node selected, a new action will be available next to the
+ examples and code suggestions: `Create New Project`. When you choose it by
+ clicking with mouse or selecting and pressing enter, a new unnamed project
+ will be created and opened in the application. Then you can give a name to
+ this project.
+- [Signed builds.][1366] Our builds are signed and will avoid warnings from the
+ operating system about being untrusted.
+
+#### EnsoGL (rendering engine)
+
+- [Components for picking numbers and ranges.][1524]. We now have some internal
+ re-usable UI components for selecting numbers or a range. Stay tuned for them
+ appearing in the IDE.
+
+
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
+
+#### Visual Environment
+
+- [Delete key will delete selected nodes][1538]. Only the non-intuitive
+ backspace key was assigned to this action before.
+- [It is possible to move around after deleting a node with a selected
+ visualization][1556]. Deleting a node while its attached visualization was
+ selected made it impossible to pan or zoom around the stage afterwards. This
+ error is fixed now.
+- [Fixed an internal error that would make the IDE fail on some browser.][1561].
+ Instead of crashing on browser that don't support the feature we use, we are
+ now just start a little bit slower.
+
+#### Enso Compiler
+
+- [Updated Enso engine to version 0.2.11][1541].
+
+If you're interested in the enhancements and fixes made to the Enso compiler,
+you can find their release notes
+[here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
+
+[1366]: https://github.com/enso-org/ide/pull/1366
+[1541]: https://github.com/enso-org/ide/pull/1541
+[1538]: https://github.com/enso-org/ide/pull/1538
+[1524]: https://github.com/enso-org/ide/pull/1524
+[1556]: https://github.com/enso-org/ide/pull/1556
+[1561]: https://github.com/enso-org/ide/pull/1561
+[1566]: https://github.com/enso-org/ide/pull/1566
+
+
+
+# Enso 2.0.0-alpha.4 (2021-05-04)
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Visual Environment
+
+- [Window management buttons.][1511]. The IDE now has components for
+ "fullscreen" and "close" buttons. They will when running IDE in a cloud
+ environment where no native window buttons are available.
+- [Customizable backend options][1531]. When invoking Enso IDE through command
+ line interface, it is possible to add the `--` argument separator. All
+ arguments following the separator will be passed to the backend.
+- [Added `--verbose` parameter][1531]. If `--verbose` is given as command line
+ argument, the IDE and the backend will produce more detailed logs.
+
+
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
+
+#### Visual Environment
+
+- [Some command line arguments were not applied correctly in the IDE][1536].
+ Some arguments were not passed correctly to the IDE leading to erroneous
+ behavior or appearance of the electron app. This is now fixed.
+
+#### Enso Compiler
+
+If you're interested in the enhancements and fixes made to the Enso compiler,
+you can find their release notes
+[here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
+
+[1511]: https://github.com/enso-org/ide/pull/1511
+[1536]: https://github.com/enso-org/ide/pull/1536
+[1531]: https://github.com/enso-org/ide/pull/1531
+
+
+
+# Enso 2.0.0-alpha.3 (2020-04-13)
+
+
![New Learning Resources](/docs/assets/tags/new_learning_resources.svg)
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Visual Environment
+
+- [The status bar reports connectivity issues][1316]. The IDE maintains a
+ connection to the Enso Language Server. If this connection is lost, any
+ unsaved and further work will be lost. In this build we have added a
+ notification in the status bar to signal that the connection has been lost and
+ that the IDE must be restarted. In future, the IDE will try to automatically
+ reconnect.
+- [Visualizations can now be maximised to fill the screen][1355] by selecting
+ the node and pressing space twice. To quit this view, press space again.
+- [Visualizations are previewed when you hover over an output port.][1363] There
+ is now a quick preview for visualizations and error descriptions. Hovering
+ over a node output will first show a tooltip with the type information and
+ then, after some time, will show the visualization of the node. This preview
+ visualization will be located above other nodes, whereas the normal view, will
+ be shown below nodes. Errors will show the preview visualization immediately.
+ Nodes without type information will also show the visualization immediately.
+ You can enter a quick preview mode by pressing ctrl (or command on macOS),
+ which will show the preview visualization immediately when hovering above a
+ node's output port.
+- [Database Visualizations][1335]. Visualizations for the Database library have
+ been added. The Table visualization now automatically executes the underlying
+ query to display its results as a table. In addition, the SQL Query
+ visualization allows the user to see the query that is going to be run against
+ the database.
+- [Histogram and Scatter Plot now support Dataframes.][1377] The `Table` and
+ `Column` datatypes are properly visualized. Scatter Plot can display points of
+ different colors, shapes and sizes, all as defined by the data within the
+ `Table`.
+- [Many small visual improvements.][1419] See the source issue for more details.
+- The dark theme is officially supported now. You can start the IDE with the
+ `--theme=dark` option to enable it.
+- You can hide the node labels with the `--no-node-labels` option. This is
+ useful when creating demo videos.
+- [Added a Heatmap visualization.][1438] Just as for the Scatter Plot, it
+ supports visualizing `Table`, but also `Vector`.
+- [Add a background to the status bar][1447].
+- [Display breadcrumbs behind nodes and other objects][1471].
+- [Image visualization.][1367]. Visualizations for the Enso Image library. Now
+ you can display the `Image` type and a string with an image encoded in base64.
+ The histogram visualization has been adjusted, allowing you to display the
+ values of the precomputed bins, which is useful when the dataset is relatively
+ big, and it's cheaper to send the precomputed bins rather than the entire
+ dataset.
+- [Output type labels.][1427] The labels, that show the output type of a node on
+ hover, appear now in a fixed position right below the node, instead of a
+ pop-up, as they did before.
+
+
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
+
+#### Visual Environment
+
+- [Not adding spurious imports][1209]. Fixed cases where the IDE was adding
+ unnecessary library imports when selecting hints from the node searcher. This
+ makes the generated textual code much easier to read, and reduces the
+ likelihood of accidental name collisions.
+- [Hovering over an output port shows a pop-up with the result type of a
+ node][1312]. This allows easy discovery of the result type of a node, which
+ can help with both debugging and development.
+- [Visualizations can define the context for preprocessor evaluation][1291].
+ Users can now decide which module's context should be used for visualization
+ preprocessor. This allows providing visualizations with standard library
+ functionalities or defining utilities that are shared between multiple
+ visualizations.
+- [Fixed an issue with multiple instances of the IDE running.][1314] This fixes
+ an issue where multiple instances of the IDE (or even other applications)
+ could lead to the IDE not working.
+- [Allow JS to log arbitrary objects.][1313] Previously using `console.log` in a
+ visualisation or during development would crash the IDE. Now it correctly logs
+ the string representation of the object. This is great for debugging custom
+ visualizations.
+- [Fix the mouse cursor offset on systems with fractional display
+ scaling][1064]. The cursor now works with any display scaling, instead of
+ there being an offset between the visible cursor and the cursor selection.
+- [Disable area selection][1318]. The area selection was visible despite being
+ non-functional. To avoid confusion, area selection has been disabled until it
+ is [correctly implemented][479].
+- [Fix an error after adding a node][1332]. Sometimes, after picking a
+ suggestion, the inserted node was spuriously annotated with "The name could
+ not be found" error.
+- [Handle syntax errors in custom-defined visualizations][1341]. The IDE is now
+ able to run properly, even if some of the custom visualizations inside a
+ project contain syntax errors.
+- [Fix issues with pasting multi-line text into single-line text fields][1348].
+ The line in the copied text will be inserted and all additional lines will be
+ ignored.
+- [Users can opt out of anonymous data gathering.][1328] This can be done with
+ the `--no-data-gathering` command-line flag when starting the IDE.
+- [Provide a theming API for JavaScript visualizations][1358]. It is now
+ possible to use the Enso theming engine while developing custom visualizations
+ in JavaScript. You can query it for all IDE colors, including the colors used
+ to represent types.
+- [You can now start the IDE service without a window again.][1353] The command
+ line argument `--no-window` now starts all the required backend services
+ again, and prints the port on the command line. This allows you to open the
+ IDE in a web browser of your choice.
+- [JS visualizations have gestures consistent with the IDE][1291]. Panning and
+ zooming now works just as expected using both a trackpad and mouse.
+- [Running `watch` command works on first try.][1395]. Running the build command
+ `run watch` would fail if it was run as the first command on a clean
+ repository. This now works.
+- [The `inputType` field of visualizations is actually taken into
+ consideration][1384]. The visualization chooser shows only the entries that
+ work properly for the node's output type.
+- [Fix applying the output of the selected node to the expression of a new
+ node][1385]. For example, having selected a node with `Table` output and
+ adding a new node with expression `at "x" == "y"`, the selected node was
+ applied to the right side of `==`: `at "x" == operator1."y"` instead of
+ `operator1.at "x" == "y"`.
+- [`Enso_Project.data` is visible in the searcher][1393].
+- [The Geo Map visualization recognizes columns regardless of the case of their
+ name][1392]. This allows visualizing tables with columns like `LONGITUDE` or
+ `Longitude`, where previously only `longitude` was recognized.
+- [It is possible now to switch themes][1390]. Additionally, the theme manager
+ was integrated with the FRP event engine, which has been a long-standing issue
+ in the IDE. Themes management was exposed to JavaScript with the
+ `window.theme` variable. It is even possible to change and develop themes live
+ by editing theme variables directly in the Chrome Inspector. Use the following
+ command to give this a go:
+ `theme.snapshot("t1"); theme.get("t1").interactiveMode()`.
+- [The active visualization is highlighted.][1412] Now it is clearly visible
+ when the mouse events are passed to the visualization.
+- [Fixed an issue where projects containing certain language constructs failed
+ to load.][1413]
+- [Fixed a case where IDE could lose connection to the backend after some
+ time.][1428]
+- [Improved the performance of the graph editor, particularly when opening a
+ project for the first time.][1445]
+
+#### EnsoGL (rendering engine)
+
+- [Unified shadow generation][1411]. Added a toolset to create shadows for
+ arbitrary UI components.
+
+#### Enso Compiler
+
+If you're interested in the enhancements and fixes made to the Enso compiler,
+you can find their release notes
+[here](https://github.com/enso-org/enso/blob/develop/RELEASES.md#enso-0210-2021-04-07).
+
+[1064]: https://github.com/enso-org/ide/pull/1064
+[1209]: https://github.com/enso-org/ide/pull/1209
+[1291]: https://github.com/enso-org/ide/pull/1291
+[1311]: https://github.com/enso-org/ide/pull/1311
+[1313]: https://github.com/enso-org/ide/pull/1313
+[1314]: https://github.com/enso-org/ide/pull/1314
+[1316]: https://github.com/enso-org/ide/pull/1316
+[1318]: https://github.com/enso-org/ide/pull/1318
+[1328]: https://github.com/enso-org/ide/pull/1328
+[1355]: https://github.com/enso-org/ide/pull/1355
+[1332]: https://github.com/enso-org/ide/pull/1332
+[1341]: https://github.com/enso-org/ide/pull/1341
+[1341]: https://github.com/enso-org/ide/pull/1341
+[1348]: https://github.com/enso-org/ide/pull/1348
+[1353]: https://github.com/enso-org/ide/pull/1353
+[1395]: https://github.com/enso-org/ide/pull/1395
+[1363]: https://github.com/enso-org/ide/pull/1363
+[1384]: https://github.com/enso-org/ide/pull/1384
+[1385]: https://github.com/enso-org/ide/pull/1385
+[1390]: https://github.com/enso-org/ide/pull/1390
+[1392]: https://github.com/enso-org/ide/pull/1392
+[1393]: https://github.com/enso-org/ide/pull/1393
+[479]: https://github.com/enso-org/ide/issues/479
+[1335]: https://github.com/enso-org/ide/pull/1335
+[1358]: https://github.com/enso-org/ide/pull/1358
+[1377]: https://github.com/enso-org/ide/pull/1377
+[1411]: https://github.com/enso-org/ide/pull/1411
+[1412]: https://github.com/enso-org/ide/pull/1412
+[1419]: https://github.com/enso-org/ide/pull/1419
+[1413]: https://github.com/enso-org/ide/pull/1413
+[1428]: https://github.com/enso-org/ide/pull/1428
+[1438]: https://github.com/enso-org/ide/pull/1438
+[1367]: https://github.com/enso-org/ide/pull/1367
+[1445]: https://github.com/enso-org/ide/pull/1445
+[1447]: https://github.com/enso-org/ide/pull/1447
+[1471]: https://github.com/enso-org/ide/pull/1471
+[1511]: https://github.com/enso-org/ide/pull/1511
+
+
+
+# Enso 2.0.0-alpha.2 (2020-03-04)
+
+This is a release focused on bug-fixing, stability, and performance. It improves
+the performance of workflows and visualizations, and improves the look and feel
+of the graphical interface. In addition, the graphical interface now informs the
+users about errors and where they originate.
+
+
![New Learning Resources](/docs/assets/tags/new_learning_resources.svg)
+
+- [Learn how to define custom data visualizations in
+ Enso][podcast-custom-visualizations].
+- [Learn how to use Java libraries in Enso, to build a
+ webserver][podcast-java-interop].
+- [Learn how to use Javascript libraries in Enso, to build custom server-side
+ website rendering][podcast-http-server].
+- [Discover why Enso Compiler is so fast and how it was built to support a
+ dual-representation language][podcast-compiler-internals].
+- [Learn more about the vision behind Enso and about its planned
+ future][podcast-future-of-enso].
+
+
![New Features](/docs/assets/tags/new_features.svg)
+
+#### Visual Environment
+
+- [Errors in workflows are now displayed in the graphical interface][1215].
+ Previously, these errors were silently skipped, which was non-intuitive and
+ hard to understand. Now, the IDE displays both dataflow errors and panics in a
+ nice and descriptive fashion.
+- [Added geographic map support for Tables (data frames).][1187] Tables that
+ have `latitude`, `longitude`, and optionally `label` columns can now be shown
+ as points on a map.
+- [Added a shortcut for live reloading of visualization files.][1190] This
+ drastically improves how quickly new visualizations can be tested during their
+ development. This is _currently_ limited in that, after reloading
+ visualization definitions, the currently visible visualizations must be
+ switched to another and switched back to refresh their content. See the [video
+ podcast about building custom visualizations][podcast-custom-visualizations]
+ to learn more.
+- [Added a visual indicator of the ongoing standard library compilation][1264].
+ Currently, each time IDE is started, the backend needs to compile the standard
+ library before it can provide IDE with type information and values. Because of
+ that, not all functionalities are ready to work directly after starting the
+ IDE. Now, there is a visible indication of the ongoing background process.
+- [Added the ability to reposition visualisations.][1096] There is now an icon
+ in the visualization action bar that allows dragging the visualization away
+ from a node. Once the visualization has been moved, another icon appears that
+ can pin the visualization back to the node.
+- [There is now an API to show Version Control System (like Git) status for
+ nodes][1160].
+
+
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
+
+#### Visual Environment
+
+- [You can now use the table visualization to display data frames][1181]. Please
+ note, that large tables will get truncated to 2000 entries. This limitation
+ will be lifted in future releases.
+- [Performance improvements during visual workflow][1067]. Nodes added with the
+ searcher will have their values automatically assigned to newly generated
+ variables, which allows the Enso Engine to cache intermediate values and hence
+ improve visualization performance.
+- [Minor documentation rendering fixes][1098]. Fixed cases where text would be
+ misinterpreted as a tag, added support for new tag types, added support for
+ more common characters, properly renders overflowing text.
+- [Improved handling of projects created with other IDE versions][1214]. The IDE
+ is now better at dealing with incompatible metadata in files, which stores
+ node visual position information, the history of chosen searcher suggestions,
+ etc. This will allow IDE to correctly open projects that were created using a
+ different IDE version and prevent unnecessary loss of metadata.
+- Pressing and holding up and down arrow keys make the list view selection move
+ continuously.
+- The shortcuts to close the application and to toggle the developer tools at
+ runtime now work on all supported platforms.
+- [The loading progress indicator remains visible while IDE initializes][1237].
+ Previously the loading progress indicator completed too quickly and stopped
+ spinning before the IDE was ready. Now it stays active, giving a visual
+ indication that the initialization is still in progress.
+- [Fixed visual glitch where a node's text was displayed as white on a white
+ background][1264]. Most notably this occurred with the output node of a
+ function generated using the node collapse refactoring.
+- Many visual glitches were fixed, including small "pixel-like" artifacts
+ appearing on the screen.
+- [Several parser improvements][1274]. The parser used in the IDE has been
+ updated to the latest version. This resolves several issues with language
+ constructs like `import`, lambdas, and parentheses, whereupon typing certain
+ text the edit could be automatically reverted.
+- [The auto-import functionality was improved][1279]. Libraries' `Main` modules
+ are omitted in expressions inserted by the searcher. For example, the `point`
+ method of `Geo` library will be displayed as `Geo.point` and will insert
+ import `Geo` instead of `Geo.Main`.
+- Cursors in text editors behave correctly now (they are not affected by scene
+ pan and zoom). This was possible because of the new multi-camera management
+ system implemented in EnsoGL.
+- [Fixed method names highlighted in pink.][1408] There was a bug introduced
+ after one of the latest Engine updates, that sent `Unresolved_symbol` types,
+ which made all methods pink. This is fixed now.
+
+#### EnsoGL (rendering engine)
+
+- A new multi-camera management system, allowing the same shape systems to be
+ rendered on different layers from different cameras. The implementation
+ automatically caches the same shape system definitions per scene layer in
+ order to minimize the amount of WebGL draw calls and hence improve
+ performance.
+- A new depth-ordering mechanism for symbols and shapes. It is now possible to
+ define depth order dependencies between symbols, shapes, and shape systems.
+- Various performance improvements, especially for the text rendering engine.
+- Display objects handle visibility correctly now. Display objects are not
+ visible by default and need to be attached to a visible parent to be shown on
+ the screen.
+
+#### Enso Compiler
+
+If you're interested in the enhancements and fixes made to the Enso compiler,
+you can find their release notes
+[here](https://github.com/enso-org/enso/blob/develop/RELEASES.md#enso-026-2021-03-02).
+
+[1067]: https://github.com/enso-org/ide/pull/1067
+[1096]: https://github.com/enso-org/ide/pull/1096
+[1098]: https://github.com/enso-org/ide/pull/1098
+[1181]: https://github.com/enso-org/ide/pull/1181
+[1215]: https://github.com/enso-org/ide/pull/1215
+[1160]: https://github.com/enso-org/ide/pull/1160
+[1190]: https://github.com/enso-org/ide/pull/1190
+[1187]: https://github.com/enso-org/ide/pull/1187
+[1068]: https://github.com/enso-org/ide/pull/1068
+[1214]: https://github.com/enso-org/ide/pull/1214
+[1237]: https://github.com/enso-org/ide/pull/1237
+[1264]: https://github.com/enso-org/ide/pull/1264
+[1274]: https://github.com/enso-org/ide/pull/1274
+[1279]: https://github.com/enso-org/ide/pull/1279
+[podcast-java-interop]:
+ https://www.youtube.com/watch?v=bcpOEX1x06I&t=468s&ab_channel=Enso
+[podcast-compiler-internals]:
+ https://www.youtube.com/watch?v=BibjcUjdkO4&ab_channel=Enso
+[podcast-custom-visualizations]:
+ https://www.youtube.com/watch?v=wFkh5LgAZTs&t=5439s&ab_channel=Enso
+[podcast-http-server]:
+ https://www.youtube.com/watch?v=BYUAL4ksEgY&ab_channel=Enso
+[podcast-future-of-enso]:
+ https://www.youtube.com/watch?v=rF8DuJPOfTs&t=1863s&ab_channel=Enso
+[1312]: https://github.com/enso-org/ide/pull/1312
+[1408]: https://github.com/enso-org/ide/pull/1408
+
+
+
+# Enso 2.0.0-alpha.1 (2020-01-26)
+
+This is the first release of Enso, a general-purpose programming language and
+environment for interactive data processing. It is a tool that spans the entire
+stack, going from high-level visualization and communication to the nitty-gritty
+of backend services, all in a single language.
+
+
![Release Notes](/docs/assets/tags/release_notes.svg)
+
+#### Anonymous Data Collection
+
+Please note that this release collects anonymous usage data which will be used
+to improve Enso and prepare it for a stable release. We will switch to opt-in
+data collection in stable version releases. The usage data will not contain your
+code (expressions above nodes), however, reported errors may contain brief
+snippets of out of context code that specifically leads to the error, like "the
+method 'foo' does not exist on Number". The following data will be collected:
+
+- Session length.
+- Graph editing events (node create, dele, position change, connect, disconnect,
+ collapse, edit start, edit end). This will not include any information about
+ node expressions used.
+- Navigation events (camera movement, scope change).
+- Visualization events (visualization open, close, switch). This will not
+ include any information about the displayed data nor the rendered
+ visualization itself.
+- Project management events (project open, close, rename).
+- Errors (IDE crashes, WASM panics, Project Manager errors, Language Server
+ errors, Compiler errors).
+- Performance statistics (minimum, maximum, average GUI refresh rate).
diff --git a/CHANGELOG.md b/CHANGELOG.md
index dbc1e9c620..596792791f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,2035 +1,5 @@
# Next Release
-#### Visual Environment
-
-- [Camera is panned to newly created nodes.][3552]
-- [Long names on the Node Searcher's list are truncated.][3373] The part of the
- name that doesn't fit in the Searcher's window is replaced with an ellipsis
- character ("…").
-- [Magnet Alignment algorithm is used while placing new nodes][3366]. When we
- find an available free space for a new node, the node gets aligned with the
- surrounding nodes horizontally and vertically. This helps to preserve a nice
- grid-like layout for all the nodes.
-- [Nodes created via the TAB key or by clicking the (+) button on the
- screen are now placed below all the selected nodes when more than one node is
- selected.][3361] (Previously, they were placed below the first node that was
- selected.) This makes it easier to achieve a compact, vertical layout of the
- graph.
-- [Nodes created near existing nodes via the TAB key or by dropping a
- connection are now repositioned and aligned to existing nodes.][3301] This is
- to make the resulting graph prettier and avoid overlapping. In such cases,
- created nodes will be placed below an existing node or on the bottom-left
- diagonal if there is no space underneath.
-- [Nodes can be added to the graph by double-clicking the output ports of
- existing nodes (or by clicking them with the right mouse button).][3346]
-- [Node Searcher preserves its zoom factor.][3327] The visible size of the node
- searcher and edited node is now fixed. It simplifies node editing on
- non-standard zoom levels.
-- [Nodes can be added to the graph by clicking (+) button on the screen][3278].
- The button is in the bottom-left corner. Node is added at the center or pushed
- down if the center is already occupied by nodes.
-- [Maximum zoom factor is limited to 1.0x if IDE is not in Debug Mode.][3273]
-- [Debug Mode for Graph Editor can be activated/deactivated using a
- shortcut.][3264] It allows access to a set of restricted features. See
- [debug-shortcuts].
-- [New nodes can be created by dragging and dropping a connection on the
- scene.][3231]
-- [Node connections can be dropped by pressing the Esc key while dragging
- them.][3231]
-- [Added support of source maps for JS-based visualizations.][3208]
-- [Fixed the alignment of newly created nodes to existing nodes with
- visualizations enabled.][3361] When applicable, new nodes are now placed below
- visualizations. (Previously, they were placed to the left of the
- visualizations.)
-- [Fixed histograms coloring and added a color legend.][3153]
-- [Lazy visualization for scatter plot.][3655]
-- [Fixed broken node whose expression contains non-ASCII characters.][3166]
-- [Fixed developer console warnings about views being created but not
- registered.][3181]
-- [Fixed developer console errors related to Language Server (mentioning code
- 3003 and "Invalid version"), occurring during project opening and after new
- node cration.][3186]
-- [Fixed developer console error about failing to decode a notification
- "executionContext/visualisationEvaluationFailed"][3193]
-- [New Version of the Node Searcher - the Component Browser][3530] The available
- methods, atoms and functions are presented in nice, categorized view. The most
- popular tools are available at hand. The panel is unstable, and can be
- disabled with the `--enable-new-component-browser=false` flag.
-- [Fixed error handling during startup.][3648] This prevents entering IDE into a
- "zombie" state, where processes were started but not visible to user. They
- could cause issues with starting further IDE instances.
-- [New nodes are created in the project source when the searcher is opened and a
- new node is created.][3645]
-- [Proper Polyglot Vector and Array Support][3667]
-- [IDE uses new visualization API.][3661]
-- [Visualization of long textual values improved][3665]
-- [Selecting a suggestion from the searcher or component browser now updates the
- visualisation of the edited node to preview the results of applying the
- suggestion.][3691]
-- [Remove here keyword from IDE.][3749]
-- [Shortcut changes:][3823] Pressing `Enter` when no node is edited opens
- Component Browser. Entering node shortcut changed to `cmd` + `Enter`.
-- [Added support for scrolling by pressing and holding a mouse button on a
- scrollbar.][3824]
-- [Added scroll bounce animation][3836] which activates when scrolling past the
- end of scrollable content.
-- [The default text visualisation now loads its content lazily from the
- backend][3910]. This means that the visualisation cannot be overwhelmed by
- large amounts of data.
-- [Added project snapshot saving on shortcut][3923]
-- [The color of the displayed project name indicates whether the project's
- current state is saved in a snapshot.][3950] The project name is darker when
- the project is changed from the last saved snapshot and lighter when the
- snapshot matches the current project state.
-- [Added shortcut to interrupt the program][3967]
-- [Added suggestion dropdown for function arguments][4013]. The dropdown is
- present only when the argument is of type that has a predefined set of values.
-- [Separate component browser navigator sections for modules imported from
- different namespaces][4044]
-- [Internal components (private API) are not displayed in the component
- browser.][4085]
-- [The correct default visualisation for tables is shown on new nodes.][4120]
-- [Added restoring of last project snapshot on shortcut.][4050]
-- [Added contextual suggestions to argument dropdowns][4072]. Dropdowns will now
- contain suggestions which are based on evaluated data.
-- [Added a shortcut to show internal components (private API) in the component
- browser.][5582]
-- [Improved component browser entry filtering and sorting][5645]. The component
- browser will now provide suggestions matching either the component's label or
- the corresponding code.
-- [Improved argument placeholder resolution in more complex expressions][5656].
- It is now possible to drop node connections onto missing arguments of chained
- and nested function calls.
-- [The component browser suggestions take into account entry aliases][5678]. The
- searcher input is now matched to entry aliases too. The alias match is used to
- filter and sort component browser entries.
-- [The Component Browser icons are cached on texture][5779] improving its
- performance on slower machines.
-- [Fixed missing result preview when editing nodes.][5757]
-- [Application retries its initialization after failures][5802], allowing a
- reconnecting after connectivity problems.
-- [Improved Component Browser Filtering][4115]. The best match is always
- selected first, and the groups are rearranged, so the best matches are on the
- bottom.
-- [Named arguments syntax is now recognized in IDE][5774]. Connections to
- function arguments will now use named argument syntax instead of inserting
- wildcards on all preceding arguments.
-- [Added boilerplate React app for authorization via Cognito+AWS Amplify][5798].
- This PR adds a React app that renders the dashboard (which has been ported
- from the cloud. The dashboard displays a list of projects, and allows users to
- open them in the IDE (which is not part of the React app, but can be switched
- to from the dashboard). The PR also adds authentication+authorization (i.e.,
- sign up and sign in for users), via either email/password or GitHub/Google.
-- [New Enso documentation parser][5917]. Smaller and faster; enables planned
- improvements to internal documentation representation.
-- [Dropdown widgets now support custom labels][5705] and automatically generate
- shortened labels for entries with long module paths. When an option is
- selected from the dropdown, the necessary module imports are inserted,
- eliminating the need for fully qualified names.
-- [The IDE now has a new UI element for selecting the execution mode of the
- project][6130].
-- [Added tooltips to icon buttons][6035] for improved usability. Users can now
- quickly understand each button's function.
-- [File associations are created on Windows and macOS][6077]. This allows
- opening Enso files by double-clicking them in the file explorer.
-- [AI-powered code completions][5910]. It is now possible to get AI-powered
- completions when using node searcher with Tables.
-- [Added capability to create node widgets with complex UI][6347]. Node widgets
- such as dropdown can now be placed in the node and affect the code text flow.
-- [The IDE UI element for selecting the execution mode of the project is now
- sending messages to the backend.][6341].
-- [Feedback when renaming a project][6366]. When the user tries to rename the
- project to an invalid name, a helpful error message is shown and the text
- field stays the same as to give the user the opportunity to fix the mistake.
-- [Area selectionof nodes no longer takes into account the visualisation that
- belongs to the node.][6487].
-- [List Editor Widget][6470]. Now you can edit lists by clicking buttons on
- nodes or by dragging the elements.
-- [Visualisations now show a loading spinner while waiting on data.][6512].
-- [Fixed text visualisations which were being cut off at the last line.][6421]
-- [Fixed a bug where, when scrolling or dragging on a full-screen visualization,
- the view of the graph changed as well.][6530]
-- [Changed the shortcut for restoring to the last saved version of a project
- from cmd+r to
- cmd+shift+r][6620] to make it less likely
- that it would be triggered by accident. As a consequence, the program
- execution shortcuts changed from
- cmd+shift+t/r to
- cmd+alt+t/r.
-- [Fixed a bug where selecting a nested breadcrumb would cause the order of
- breadcrumbs to change incorrectly.][6617]
-- [Changed the shortcut to show the full-screen visualization for a node from
- space space to shift+space.][6663]
- so that it doesn't interfere with the shortcut for toggling the small
- visualization.
-- [Cloud dashboard, which supersedes the startup screen][6279]. Features also
- added in various other PRs. The new dashboard includes tables for projects,
- folders, files and secrets, a list of templates from which new projects can be
- created, a user menu, and a search bar.
-- [The Application will try to reload file in backend on synchronization
- failure][6752]. It should make it more resilient to connectivity issues and
- occasional bugs. The reload may be forced by the user with
- cmd+shift+x shortcut.
-- [When selecting a function from the main module through the component browser,
- it is now referenced via the `Main` namespace instead of the project
- namespace,][6719] e.g. `Main.func1` instead of `MyProject.func1`. This makes
- it robust against project name changes.
-- [Added a button to return from an opened project back to the project
- dashboard.][6474]
-- [Keyboard shortcuts for graph editing are now disabled when the full-screen
- visualization is active.][6844]
-- [A loading animation is now shown when opening and creating projects][6827],
- as the previous behaviour of showing a blank screen while the project was
- being loaded was potentially confusing to users.
-- [Error message is displayed in the status bar when the backend reports
- execution failed][6918].
-- [Performance and readability of documentation panel was improved][6893]. The
- documentation is now split into separate pages, which are much smaller.
-- [IDE no longer inserts redundant imports when selecting options from dropdown
- widgets][7028]. The code was unified with the component browser, and it now
- correctly handles reexports and already existing imports.
-- [Fixed cursor position when ctrl-clicking the node][7014]. Sometimes
- ctrl-clicking to edit the node placed the mouse cursor in the wrong position
- in the text. This is fixed now.
-- [Added prototype AI Searcher that can be used to create new nodes from natural
- language input][7146]
-- [Allow visualization resizing][7164]. Now the user can adjust the
- visualization size by dragging its right and bottom borders. Visualization
- width also follows the node's width, and visualizations are aligned to the
- left side of the node.
-- [Component Browser was redesigned][7372]. The three columns of groups turned
- out to be non-practical, as they give too much information to comprehend.
- Also, filtering results was kept in groups making second-best match not easily
- available. Therefore, we introduced a new, impler CB design with single
- column.
-- [Help chat][7151]. The link to the Discord server is replaced with a chat
- bridge to the Discord server. This is intended to have the chat visible at the
- same time as the IDE, so that help can be much more interactive.
-- [New breadcrumbs design][7362]. Breadcrumbs now optionally show the icon of
- the item they represent. They also follow the new design of the component
- browser.
-- [The libraries' authors may put entities to groups by adding GROUP tag in the
- docstring]. It was requested as more convenient way than specifying full names
- in package.yaml.
-- [Graph editor node was redesigned][7311]. Nodes have a color and icon matching
- the selected entry in the component browser. Clear separating lines between
- method arguments were added. The node selection was made easier with
- additional thick interactive selection border.
-- [The shortcut for opening Component Browser was changed to
- enter][7527]
-- [Connections to lamdas are displayed correctly][7550]. It is possible to drag
- a connection to any expression inside the lambda body.
-- [Atom types in dropdowns do not produce redundant imports][#7670]. The
- possibility of imports conflicts is reduced.
-- [Copying and pasting a single node][7618]. Using the common
- cmd+C and cmd+V shortcuts, it is
- now possible to copy a single selected node and paste its code to the graph or
- another program.
-
-[5910]: https://github.com/enso-org/enso/pull/5910
-[6279]: https://github.com/enso-org/enso/pull/6279
-[6421]: https://github.com/enso-org/enso/pull/6421
-[6530]: https://github.com/enso-org/enso/pull/6530
-[6617]: https://github.com/enso-org/enso/pull/6617
-[6620]: https://github.com/enso-org/enso/pull/6620
-[6663]: https://github.com/enso-org/enso/pull/6663
-[6752]: https://github.com/enso-org/enso/pull/6752
-[6719]: https://github.com/enso-org/enso/pull/6719
-[6474]: https://github.com/enso-org/enso/pull/6474
-[6844]: https://github.com/enso-org/enso/pull/6844
-[6827]: https://github.com/enso-org/enso/pull/6827
-[6918]: https://github.com/enso-org/enso/pull/6918
-[6893]: https://github.com/enso-org/enso/pull/6893
-[7028]: https://github.com/enso-org/enso/pull/7028
-[7014]: https://github.com/enso-org/enso/pull/7014
-[7146]: https://github.com/enso-org/enso/pull/7146
-[7151]: https://github.com/enso-org/enso/pull/7151
-[7164]: https://github.com/enso-org/enso/pull/7164
-[7362]: https://github.com/enso-org/enso/pull/7362
-[7372]: https://github.com/enso-org/enso/pull/7372
-[7337]: https://github.com/enso-org/enso/pull/7337
-[7311]: https://github.com/enso-org/enso/pull/7311
-[7527]: https://github.com/enso-org/enso/pull/7527
-[7550]: https://github.com/enso-org/enso/pull/7550
-[7670]: https://github.com/enso-org/enso/pull/7670
-[7618]: https://github.com/enso-org/enso/pull/7618
-
-#### EnsoGL (rendering engine)
-
-- [You can change font and set letters bold in the text::Area
- component][3385]. Use the set_font
and
- set_bold_bytes
respectively.
-- [Fixed a text rendering issue in nested sublayer][3486].
-- [Added a new component: Grid View.][3588] It's parametrized by Entry object,
- display them arranged in a Grid. It does not instantiate all entries, only
- those visible, and re-use created entries during scrolling thus achieving
- great performance. There are variants of grid view with selection and
- highlight, scrollbars, and both.
-- [Massive improvements of text rendering performance][3776]. Different text
- instances are now reusing the shape shaders and the same sprite system under
- the hood. This drastically reduces the amount of required draw calls for
- scenes with a lot of text.
-- [Text rendering quality improvements][3855]. Glyphs are now hinted in a better
- way. Also, additional fine-tuning is performed per font and per host operating
- system.
-- [Display objects can now emit and receive events in the same style as
- JavaScript DOM events][3863]. The events system implements very similar
- behavior to the one described here:
- https://javascript.info/bubbling-and-capturing.
-- [Added a new component: Slider][3852]. It allows adjusting a numeric value
- with the mouse. The precision of these adjustments can be increased or
- decreased.
-- [Slider component functionality improvements][3885]. The slider component now
- supports multiple ways to handle out-of-range values. The slider's value can
- be edited as text, and a new vertical slider layout is available.
-- [Added ProjectsGrid view for Cloud Dashboard][3857]. It provides the first
- steps towards migrating the Cloud Dashboard from the existing React (web-only)
- implementation towards a shared structure that can be used in both the Desktop
- and Web versions of the IDE.
-- [Removed Cloud Dashboard][4047]. The Cloud Dashboard was being rewritten in
- EnsoGL but after internal discussion we've decided to rewrite it in React,
- with a shared implementation between the Desktop and Web versions of the IDE.
-- [Added a new component: Dropdown][3985]. A list of selectable labeled entries,
- suitable for single and multi-select scenarios.
-- [Compile-time shader optimizer was implemented][4003]. It is capable of
- extracting non-optimized shaders from the compiled WASM artifacts, running
- stand-alone optimization toolchain (glslc, spirv-opt, spirv-cross), and
- injecting optimized shaders back to WASM during its initialization process.
- Unfortunately, it caused our theme system to stop working correctly, because
- generated shaders differ per theme (only light theme is available, the dark
- theme has been disabled). We will support multiple themes in the future, but
- this is not on our priority list right now.
-- [Performance monitor was extended with the ability to print details of actions
- performed in a given frame][5895]. In particular, you can now inspect names of
- all symbols rendered in a given frame. You can also pause the performance
- monitor and inspect results recorded in the past.
-- [ToggleButtons can now have tooltips][6035].
-- [Rendering of tooltips was improved.][6097] Their text is now more vertically
- centered and the delay before showing them was extended.
-- [Accurate GPU performance measurements have been implemented][6595]. It is
- possible now to track both the time spent on both the CPU and the GPU sides.
-- [Support recovery from GL context loss][7662]. This allows the application to
- continue after an interruption to rendering, such as hibernation or movement
- of the application window to a display rendered by a different GPU.
-
-[3857]: https://github.com/enso-org/enso/pull/3857
-[3985]: https://github.com/enso-org/enso/pull/3985
-[4003]: https://github.com/enso-org/enso/pull/4003
-[4047]: https://github.com/enso-org/enso/pull/4047
-[5895]: https://github.com/enso-org/enso/pull/5895
-[6035]: https://github.com/enso-org/enso/pull/6035
-[6097]: https://github.com/enso-org/enso/pull/6097
-[6130]: https://github.com/enso-org/enso/pull/6130
-[6366]: https://github.com/enso-org/enso/pull/6366
-[6341]: https://github.com/enso-org/enso/pull/6341
-[6470]: https://github.com/enso-org/enso/pull/6470
-[6595]: https://github.com/enso-org/enso/pull/6595
-[6487]: https://github.com/enso-org/enso/pull/6487
-[6512]: https://github.com/enso-org/enso/pull/6512
-[7662]: https://github.com/enso-org/enso/pull/7662
-
-#### Enso Standard Library
-
-- [Implemented `Vector.distinct` allowing to remove duplicate elements from a
- Vector][3224]
-- [Implemented `Duration.time_execution` allowing timing of the execution of an
- expression within the UI][3229]
-- [Improved performance of `Vector.filter` and `Vector.each`; implemented
- `Vector.filter_with_index`. Made `Vector.at` accept negative indices and
- ensured it fails with a dataflow error on out of bounds access instead of an
- internal Java exception.][3232]
-- [Implemented the `Table.select_columns` operation.][3230]
-- [Implemented the `Table.remove_columns` and `Table.reorder_columns`
- operations.][3240]
-- [Implemented the `Table.sort_columns` operation.][3250]
-- [Fixed `Vector.sort` to handle tail-recursive comparators][3256]
-- [Implemented `Range.find`, `Table.rename_columns` and
- `Table.use_first_row_as_names` operations][3249]
-- [Implemented `Text.at` and `Text.is_digit` methods][3269]
-- [Implemented `Runtime.get_stack_trace` together with some utilities to process
- stack traces and code locations][3271]
-- [Implemented `Vector.flatten`][3259]
-- [Significant performance improvement in `Natural_Order` and new `Faker`
- methods added to `Standard.Test`][3276]
-- [Implemented `Integer.parse`][3283]
-- [Made `Text.compare_to` correctly handle Unicode normalization][3282]
-- [Extend `Text.contains` API to support regex and case insensitive
- search.][3285]
-- [Implemented new `Text.take` and `Text.drop` functions, replacing existing
- functions][3287]
-- [Implemented new `Text.starts_with` and `Text.ends_with` functions, replacing
- existing functions][3292]
-- [Implemented `Text.to_case`, replacing `Text.to_lower_case` and
- `Text.to_upper_case`][3302]
-- [Implemented initial `Table.group_by` function on Standard.Table][3305]
-- [Implemented `Text.pad` and `Text.trim`][3309]
-- [Updated `Text.repeat` and added `*` operator shorthand][3310]
-- [General improved Vector performance and new `Vector.each_with_index`,
- `Vector.fold_with_index` and `Vector.take` methods.][3236]
-- [Implemented new `Text.insert` method][3311]
-- [Implemented `Bool.compare_to` method][3317]
-- [Implemented `Map.first`, `Map.last` functions. Expanded `Table.group_by` to
- also compute mode, percentile, minimum, maximum.][3318]
-- [Implemented `Text.location_of` and `Text.location_of_all` methods.][3324]
-- [Replaced `Table.group_by` with `Table.aggregate`][3339]
-- [Implemented `Panic.catch` and helper functions for handling errors. Added a
- type parameter to `Panic.recover` to recover specific types of errors.][3344]
-- [Added warning handling to `Table.aggregate`][3349]
-- [Improved performance of `Table.aggregate` and full warnings
- implementation][3364]
-- [Implemented `Text.reverse`][3377]
-- [Implemented support for most Table aggregations in the Database
- backend.][3383]
-- [Update `Text.replace` to new API.][3393]
-- [Add encoding support to `Text.bytes` and `Text.from_bytes`. Renamed and added
- encoding to `File.read_text`. New `File.read` API.][3390]
-- [Improved the `Range` type. Added a `down_to` counterpart to `up_to` and
- `with_step` allowing to change the range step.][3408]
-- [Aligned `Text.split` API with other methods and added `Text.lines`.][3415]
-- [Implemented a basic reader for the `Delimited` file format.][3424]
-- [Implemented a reader for the `Excel` file format.][3425]
-- [Added custom encoding support to the `Delimited` file format reader.][3430]
-- [Implemented `compute` method on `Vector` for statistics calculations.][3442]
-- [Promote get and put to be methods of Ref type rather than of Ref
- module][3457]
-- [Implemented `Table.parse_values`, parsing text columns according to a
- specified type.][3455]
-- [Promote with, take, finalize to be methods of Managed_Resource
- instance][3460]
-- [Implemented automatic type detection for `Table.parse_values`.][3462]
-- [Integrated value parsing with the `Delimited` file reader.][3463]
-- [Implemented the `Infer` setting for headers in the `Delimited` file format
- and made it the default.][3472]
-- [Implemented a `Table.from Text` conversion allowing to parse strings
- representing `Delimited` files without storing them on the filesystem.][3478]
-- [Added rank data, correlation and covariance statistics for `Vector`][3484]
-- [Implemented `Table.order_by` for the SQLite backend.][3502]
-- [Implemented `Table.order_by` for the PostgreSQL backend.][3514]
-- [Implemented `Table.order_by` for the in-memory table.][3515]
-- [Renamed `File_Format.Text` to `Plain_Text`, updated `File_Format.Delimited`
- API and added builders for customizing less common settings.][3516]
-- [Allow control of sort direction in `First` and `Last` aggregations.][3517]
-- [Implemented `Text.write`, replacing `File.write_text`.][3518]
-- [Removed obsolete `select`, `group`, `sort` and releated types from
- tables.][3519]
-- [Removed obsolete `from_xls` and `from_xlsx` functions. Added support for
- reading column names from first row in `File_Format.Excel`][3523]
-- [Added `File_Format.Delimited` support to `Table.write` for new files.][3528]
-- [Adjusted `Database.connect` API to new design.][3542]
-- [Added `File_Format.Excel` support to `Table.write` for new files.][3551]
-- [identity,const,flip,curry,uncurry functions][3554]
-- [Added append support for `File_Format.Excel`.][3558]
-- [Added support for custom encodings in `File_Format.Delimited` writing.][3564]
-- [Allow filtering caught error type in `Error.catch`.][3574]
-- [Implemented `Append` mode for `File_Format.Delimited`.][3573]
-- [Added `Vector.write_bytes` function and removed old `File.write_bytes`][3583]
-- [Added `line_endings` and `comment_character` options to
- `File_Format.Delimited`.][3581]
-- [Fixed the case of various type names and library paths][3590]
-- [Added support for parsing `.pgpass` file and `PG*` environment variables for
- the Postgres connection][3593]
-- [Added `Regression` to the `Standard.Base` library and removed legacy `Model`
- type from `Standard.Table`.][3601]
-- [Created `Index_Sub_Range` type and updated `Text.take` and
- `Text.drop`.][3617]
-- [Added `Vector.from_polyglot_array` to make `Vector`s backed by polyglot
- Arrays][3628]
-- [Updated `Vector.take` and `Vector.drop` and removed their obsolete
- counterparts.][3629]
-- [Short-hand syntax for `order_by` added.][3643]
-- [Expanded `Table.at` to support index access and added `Table.column_count`
- method.][3644]
-- [Removed `Array.set_at`.][3634]
-- [Added various date part functions to `Date` and `Date_Time`.][3669]
-- [Implemented `Table.take` and `Table.drop` for the in-memory backend.][3647]
-- [Implemented specialized storage for the in-memory Table.][3673]
-- [Implemented `Table.distinct` for the in-memory backend.][3684]
-- [Added `databases`, `schemas`, `tables` support to database Connection.][3632]
-- [Implemented `start_of` and `end_of` methods for date/time types allowing to
- find start and end of a period of time containing the provided time.][3695]
-- [Implemented `type_of` and `is_of_type` methods for getting the type of a
- value and comparing types, respectively.][3722]
-- [Implemented `work_days_until` for counting work dys between dates and
- `add_work_days` which allows to shift a date by a number of work days.][3726]
-- [Added `query` and `read` functions to Database connections.][3727]
-- [Added `Date_Period.Week` to `start_of` and `end_of` methods.][3733]
-- [Replaced `Table.where` with a new API relying on `Table.filter`.][3750]
-- [Added `Filter_Condition` to `Vector`, `Range` and `List`.][3770]
-- [Extended `Filter_Condition` with `Is_Empty`, `Not_Empty`, `Like` and
- `Not_Like`.][3775]
-- [Reimplemented `Duration` as a built-in type.][3759]
-- [Implemented `Table.replace_text` for in-memory table.][3793]
-- [Extended `Filter_Condition` with `Is_In` and `Not_In`.][3790]
-- [Replaced `Table.drop_missing_rows` with `filter_blank_rows` with an updated
- API.][3805]
-- [Replaced `Table.drop_missing_columns` with
- `Table.remove_columns Column_Selector.Blank_Columns` by adding the new column
- selector variant.][3812]
-- [Implemented `Table.rows` giving access to a vector of rows.][3827]
-- [Define Enso epoch start as 15th October 1582][3804]
-- [Implemented `Period` type][3818]
-- [Implemented new functions on Column and added expression syntax support to
- create derived Columns.][3782]
-- [Added support for milli and micro seconds, new short form for rename_columns
- and fixed issue with compare_to versus Nothing][3874]
-- [Aligned `Text.match`/`Text.locate` API][3841]
-- [There is a new API to lazily feed visualisation information to the
- IDE.][3910]
-- [Added `transpose` and `cross_tab` to the In-Memory Table.][3919]
-- [Improvements to JSON, Pair, Statistics and other minor tweaks.][3964]
-- [Overhauled the JSON support (now based of JavaScript), `Data.fetch` and other
- minor tweaks][3987]
-- [Enable Date, Time and DateTime to be read and written to Excel.][3997]
-- [Aligning core APIs for Vector, List and Range. Adding some missing functions
- to the types.][4026]
-- [Implemented `Table.distinct` for Database backends.][4027]
-- [Implemented `Table.union` for the in-memory backend.][4052]
-- [Implemented `Table.cross_join` and `Table.zip` for the in-memory
- backend.][4063]
-- [Updated `Text.starts_with`, `Text.ends_with` and `Text.contains` to new
- simpler API.][4078]
-- [Updated `Table.set` to new API. New `Column.parse` function and added case
- sensitivity to `Filter_Condition` and column functions.][4097]
-- [Updated column selector APIs and new `Excel_Workbook` type.][5646]
-- [Moved regex functionality out of `Text.locate` and `Text.locate_all` into
- `Text.match` and `Text.match_all`.][5679]
-- [`File.parent` may return `Nothing`.][5699]
-- [Removed non-regex functionality from `is_match`, `match`, and `match_all`,
- and renamed them to `match`, `find`, `find_all` (respectively).][5721]
-- [Updated `rename_columns` to new API. Added `first_row`, `second_row` and
- `last_row` to Table types][5719]
-- [Introducing `Meta.Type`.][5768]
-- [Remove many regex compile flags; separated `match` into `match` and
- `match_all`.][5785]
-- [Aligned names of columns created by column operations.][5850]
-- [Improved `cross_tab`. Renamed `fill_missing` and `is_missing` to
- `fill_nothing` and `is_nothing`. Added `fill_empty`.][5863]
-- [Removed many regex compile flags from `replace`; added `only_first` and
- `use_regex` flag.][5959]
-- [Implemented proper support for Value Types in the Table library.][6073]
-- [Removed many regex compile flags from `split`; added `only_first` and
- `use_regex` flag.][6116]
-- [Added `Text.tokenize`][6150]
-- [Added support for Date/Time columns in the Postgres backend and added
- `year`/`month`/`day` operations to Table columns.][6153]
-- [`Text.split` can now take a vector of delimiters.][6156]
-- [Add `has_warnings`, `remove_warnings` and `throw_on_warning` extension
- methods.][6176]
-- [Implemented `Table.union` for the Database backend.][6204]
-- [Array & Vector have the same methods & behavior][6218]
-- [Implemented `Table.split` and `Table.tokenize` for in-memory tables.][6233]
-- [Added `trim` and `replace` to `Column`. Enhanced number parsing with support
- for thousands and decimal point automatic detection.][6253]
-- [Implemented `Table.parse_text_to_table`.][6294]
-- [Added `Table.parse_to_columns`.][6383]
-- [Added parsing methods for `Integer`, `Decimal`, `Json`, `Date`, `Date_Time`,
- `Time_Of_Day`, `Time_Zone`, and `URI` to `Text`.][6404]
-- [Implemented `create_database_table` allowing upload of in-memory
- tables.][6429]
-- [Added execution context control to writing files and dry run capabilities to
- `Text.write`.][6459]
-- [Implemented `create_database_table` allowing saving queries as database
- tables.][6467]
-- [Implemented `Column.format` for in-memory `Column`s.][6538]
-- [Added `at_least_one` flag to `Table.tokenize_to_rows`.][6539]
-- [Moved `Redshift` connector into a separate `AWS` library.][6550]
-- [Added `Date_Range`.][6621]
-- [Implemented the `cast` operation for `Table` and `Column`.][6711]
-- [Added `.round` and `.int` to `Integer` and `Decimal`.][6743]
-- [Added `.round`, `.truncate`, `.ceil`, and `.floor` to `Column`.][6817]
-- [Added execution control to `Table.write` and various bug fixes.][6835]
-- [Implemented `Table.add_row_number`.][6890]
-- [Handling edge cases in rounding.][6922]
-- [Split `Table.create_database_table` into `Connection.create_table` and
- `Table.select_into_database_table`.][6925]
-- [Speed improvements to `Column` `.truncate`, `.ceil`, and `.floor`.][6941]
-- [Implemented addition and subtraction for `Date_Period` and
- `Time_Period`.][6956]
-- [Added AWS credential support and initial S3 list buckets API.][6973]
-- [Added `round`, `ceil`, `floor`, `truncate` to the In-Database Column type]
- [6988]
-- [Implemented `Table.update_database_table`.][7035]
-- [Removed `module` argument from `enso_project` and other minor tweaks.][7052]
-- [Integrated Database write operations with Execution Contexts.][7072]
-- [`Column.fill_nothing` and `.fill_empty` no longer rename the column. Added
- `Table.fill_nothing` and `.fill_empty`.][7166]
-- [Implemented `add_row_number` for Database tables.][7174]
-- [Added `replace` to in-memory table. Changed replace for `Text`, in-memory
- `Column`, and in-memory `Table` to take a `Regex` in addition to a `Text`.]
- [7223]
-- [Added `cross_join` support to database tables.][7234]
-- [Improving date/time support in Table - added `date_diff`, `date_add`,
- `date_part` and some shorthands. Extended `Time_Period` with milli-, micro-
- and nanosecond periods.][7221]
-- [Implemented `replace` on database columns.][7275]
-- [Retire `Column_Selector` and allow regex based selection of columns.][7295]
-- [`Text.parse_to_table` can take a `Regex`.][7297]
-- [Expose `Text.normalize`.][7425]
-- [Implemented new value types (various sizes of `Integer` type, fixed-length
- and length-limited `Char` type) for the in-memory `Table` backend.][7557]
-- [Introducing generic `Any.to` conversion method][7704]
-- [Added `take` and `drop` to database tables.][7615]
-- [Added ability to specify expected value type in `Column.from_vector`,
- `Column.map` and `Column.zip`.][7637]
-- [Added `delete_rows` method to Database Table, changed the
- `update_database_table` API into `update_rows`.][7709]
-- [Added `Data.post` method to write to HTTP endpoints.][7700]
-- [Added support for S3. Using `Input_Stream` more for reading.][7776]
-- [Renamed `Decimal` to `Float`.][7807]
-- [Implemented `Date_Time_Formatter` for more user-friendly date/time format
- parsing.][7826]
-- [Added `Table.expand_column` and improved JSON deserialization.][7859]
-- [Implemented `Table.auto_value_types` for in-memory tables.][7908]
-- [Implemented Text.substring to easily select part of a Text field][7913]
-- [Implemented new selector for when parameter in `filter_blank_rows`,
- `select_blank_columns`, `remove_blank_columns`][7935]
-- [Implemented basic XML support][7947]
-- [Implemented `Table.lookup_and_replace` for the in-memory backend.][7979]
-- [Added `Column_Operation` to `Table.set` allowing for more streamlined flow of
- deriving column values in the GUI.][8005]
-- [Implemented `Table.expand_to_rows` for the in-memory backend.][8029]
-- [Added XML support for `.to Table` and `.expand_column`.][8083]
-- [Added `Previous_Value` option to `fill_nothing` and `fill_empty`.][8105]
-- [Added `Table.format` for the in-memory backend.][8150]
-- [Implemented truncate `Date_Time` for database backend (Postgres only).][8235]
-- [Initial Enso Cloud APIs.][8006]
-- [Renamed `replace` to `text_replace` and renamed `lookup_and_replace` to
- `merge` on `Table`.][8564]
-- [Errors thrown inside `map` are wrapped in `Map_Error`.][8307]
-- [Support for loading big Excel files.][8403]
-- [Added new `Filter_Condition`s - `Equal_Ignore_Case`, `Is_Nan`, `Is_Infinite`
- and `Is_Finite`.][8539]
-- [Support `on_problems=Problem_Behavior.Report_Warning` in `Vector.map`.][8595]
-- [Added text_length to Column][8606]
-- [Added none delimiter option for Data.Read][8627]
-- [Added text_left and text_right to Column][8691]
-- [Implement relational `NULL` semantics for `Nothing` for in-memory `Column`
- operations.][8816]
-- [Implement relational `NULL` semantics for `Nothing` for in-memory `Table`
- join operations.][8849]
-- [Attach a warning when Nothing is used as a value in a comparison or `is_in`
- `Filter_Condition`.][8865]
-- [Added `File_By_Line` type allowing processing a file line by line. New faster
- JSON parser based off Jackson.][8719]
-- [Implemented `Table.replace` for the in-memory backend.][8935]
-- [Allow removing rows using a Filter_Condition.][8861]
-- [Added `Table.to_xml`.][8979]
-- [Implemented Write support for `S3_File`.][8921]
-- [Implemented `Table.replace` for the database backend.][8986]
-- [Separate `Group_By` from `columns` into new argument on `aggregate`.][9027]
-- [Allow `copy_to` and `move_to` to work between local and S3 files.][9054]
-- [Adjusted expression handling and new `Simple_Expression` type.][9128]
-- [Allow reading Data Links configured locally or in the Cloud.][9215]
-- [Allow using `enso://` paths in `Data.read` and other places.][9225]
-- [Update the XML methods and add more capabilities to document.][9233]
-- [Added `Data.download` and a few other changes.][9249]
-- [Implement Data Links to Postgres (accessing a DB connection or a table
- directly)][9269]
-- [Added `Xml_Document.write`][9299]
-- [Added `select_by_type` and `remove_by_type` to `Table` and `DB_Table`][9334]
-- [Make File./ only accept Text][9330]
-- [Implemented Excel Data Link][9346]
-- [Added Table.running][9346]
-- [Added Google_Analytics.Read][9239]
-- [Added `Table.from_union` to allow expanding a vector of tables in one
- step][9343]
-- [Implemented constructors, comparisons, and arithmetic for a `Decimal`
- type.][9272]
-- [Allow `Table.replace` to take mutiple target columns.][9406]
-- [Initial Snowflake Support - ability to read and query, not a completed
- dialect yet.][9435]
-- [Make expand_to_rows, expand_column support Rows, Tables, Column data
- types][9533]
-- [Data Link for `Enso_File`.][9525]
-- [Added `pow`, `remainder`, and `div` to `Decimal`.][9566]
-- [Implemented `.to_integer`, `.to_float`, and `from` conversions for
- `Decimal`][9462]
-- [Made `Integer.%` consistent across all `Integer` values.][9589]
-- [Added `Decimal.parse` and `.format`.][9637]
-- [Added `Decimal.abs`, `.negate` and `.signum`.][9641]
-- [Added `Decimal.min` and `.max`.][9663]
-- [Added `Decimal.round`.][9672]
-- [Implemented write support for Enso Cloud files.][9686]
-- [Added `Integer.to_decimal` and `Float.to_decimal`.][9716]
-- [Added `Decimal.floor`, `.ceil`, and `.trunc`.][9694]
-- [Added `recursive` option to `File.delete`.][9719]
-- [Added `Vector.build`.][9725]
-- [Added `Table.running` method][9577]
-- [Added `Excel_Workbook.read_many` allowing reading more than one sheet at a
- time.][9759]
-- [Added ability to write to Data Links.][9750]
-- [Added `Vector.build_multiple`, and better for support for errors and warnings
- inside `Vector.build` and `Vector.build_multiple`.][9766]
-- [Added `Vector.duplicates`.][9917]
-- [Log operations performed on a Postgres database connection obtained through a
- Data Link.][9873]
-- [Added `Text.cleanse` `Column.Text_Cleanse` and `Table.Text_Cleanse`][9879]
-- [Added ability to save an existing Postgres connection as a Data Link in Enso
- Cloud.][9957]
-- [Improved `Table.union`.][9968]
-- [Add `day_of_week` and `day_of_year` to `Column`.][10081]
-
-[debug-shortcuts]:
- https://github.com/enso-org/enso/blob/develop/app/gui/docs/product/shortcuts.md#debug
-[3153]: https://github.com/enso-org/enso/pull/3153
-[3655]: https://github.com/enso-org/enso/pull/3655
-[3166]: https://github.com/enso-org/enso/pull/3166
-[3181]: https://github.com/enso-org/enso/pull/3181
-[3186]: https://github.com/enso-org/enso/pull/3186
-[3193]: https://github.com/enso-org/enso/pull/3193
-[3208]: https://github.com/enso-org/enso/pull/3208
-[3224]: https://github.com/enso-org/enso/pull/3224
-[3229]: https://github.com/enso-org/enso/pull/3229
-[3231]: https://github.com/enso-org/enso/pull/3231
-[3232]: https://github.com/enso-org/enso/pull/3232
-[3230]: https://github.com/enso-org/enso/pull/3230
-[3240]: https://github.com/enso-org/enso/pull/3240
-[3250]: https://github.com/enso-org/enso/pull/3250
-[3256]: https://github.com/enso-org/enso/pull/3256
-[3249]: https://github.com/enso-org/enso/pull/3249
-[3264]: https://github.com/enso-org/enso/pull/3264
-[3269]: https://github.com/enso-org/enso/pull/3269
-[3271]: https://github.com/enso-org/enso/pull/3271
-[3259]: https://github.com/enso-org/enso/pull/3259
-[3273]: https://github.com/enso-org/enso/pull/3273
-[3276]: https://github.com/enso-org/enso/pull/3276
-[3278]: https://github.com/enso-org/enso/pull/3278
-[3283]: https://github.com/enso-org/enso/pull/3283
-[3282]: https://github.com/enso-org/enso/pull/3282
-[3285]: https://github.com/enso-org/enso/pull/3285
-[3287]: https://github.com/enso-org/enso/pull/3287
-[3292]: https://github.com/enso-org/enso/pull/3292
-[3301]: https://github.com/enso-org/enso/pull/3301
-[3302]: https://github.com/enso-org/enso/pull/3302
-[3305]: https://github.com/enso-org/enso/pull/3305
-[3309]: https://github.com/enso-org/enso/pull/3309
-[3310]: https://github.com/enso-org/enso/pull/3310
-[3316]: https://github.com/enso-org/enso/pull/3316
-[3236]: https://github.com/enso-org/enso/pull/3236
-[3311]: https://github.com/enso-org/enso/pull/3311
-[3317]: https://github.com/enso-org/enso/pull/3317
-[3318]: https://github.com/enso-org/enso/pull/3318
-[3324]: https://github.com/enso-org/enso/pull/3324
-[3327]: https://github.com/enso-org/enso/pull/3327
-[3339]: https://github.com/enso-org/enso/pull/3339
-[3344]: https://github.com/enso-org/enso/pull/3344
-[3346]: https://github.com/enso-org/enso/pull/3346
-[3349]: https://github.com/enso-org/enso/pull/3349
-[3361]: https://github.com/enso-org/enso/pull/3361
-[3364]: https://github.com/enso-org/enso/pull/3364
-[3373]: https://github.com/enso-org/enso/pull/3373
-[3377]: https://github.com/enso-org/enso/pull/3377
-[3366]: https://github.com/enso-org/enso/pull/3366
-[3379]: https://github.com/enso-org/enso/pull/3379
-[3381]: https://github.com/enso-org/enso/pull/3381
-[3391]: https://github.com/enso-org/enso/pull/3391
-[3383]: https://github.com/enso-org/enso/pull/3383
-[3385]: https://github.com/enso-org/enso/pull/3385
-[3392]: https://github.com/enso-org/enso/pull/3392
-[3393]: https://github.com/enso-org/enso/pull/3393
-[3390]: https://github.com/enso-org/enso/pull/3390
-[3408]: https://github.com/enso-org/enso/pull/3408
-[3415]: https://github.com/enso-org/enso/pull/3415
-[3424]: https://github.com/enso-org/enso/pull/3424
-[3425]: https://github.com/enso-org/enso/pull/3425
-[3430]: https://github.com/enso-org/enso/pull/3430
-[3442]: https://github.com/enso-org/enso/pull/3442
-[3457]: https://github.com/enso-org/enso/pull/3457
-[3455]: https://github.com/enso-org/enso/pull/3455
-[3460]: https://github.com/enso-org/enso/pull/3460
-[3462]: https://github.com/enso-org/enso/pull/3462
-[3463]: https://github.com/enso-org/enso/pull/3463
-[3472]: https://github.com/enso-org/enso/pull/3472
-[3486]: https://github.com/enso-org/enso/pull/3486
-[3478]: https://github.com/enso-org/enso/pull/3478
-[3484]: https://github.com/enso-org/enso/pull/3484
-[3502]: https://github.com/enso-org/enso/pull/3502
-[3514]: https://github.com/enso-org/enso/pull/3514
-[3515]: https://github.com/enso-org/enso/pull/3515
-[3516]: https://github.com/enso-org/enso/pull/3516
-[3517]: https://github.com/enso-org/enso/pull/3517
-[3518]: https://github.com/enso-org/enso/pull/3518
-[3519]: https://github.com/enso-org/enso/pull/3519
-[3523]: https://github.com/enso-org/enso/pull/3523
-[3528]: https://github.com/enso-org/enso/pull/3528
-[3530]: https://github.com/enso-org/enso/pull/3530
-[3542]: https://github.com/enso-org/enso/pull/3542
-[3551]: https://github.com/enso-org/enso/pull/3551
-[3552]: https://github.com/enso-org/enso/pull/3552
-[3554]: https://github.com/enso-org/enso/pull/3554
-[3558]: https://github.com/enso-org/enso/pull/3558
-[3564]: https://github.com/enso-org/enso/pull/3564
-[3574]: https://github.com/enso-org/enso/pull/3574
-[3573]: https://github.com/enso-org/enso/pull/3573
-[3583]: https://github.com/enso-org/enso/pull/3583
-[3581]: https://github.com/enso-org/enso/pull/3581
-[3588]: https://github.com/enso-org/enso/pull/3588
-[3590]: https://github.com/enso-org/enso/pull/3590
-[3593]: https://github.com/enso-org/enso/pull/3593
-[3601]: https://github.com/enso-org/enso/pull/3601
-[3617]: https://github.com/enso-org/enso/pull/3617
-[3628]: https://github.com/enso-org/enso/pull/3628
-[3629]: https://github.com/enso-org/enso/pull/3629
-[3632]: https://github.com/enso-org/enso/pull/3632
-[3641]: https://github.com/enso-org/enso/pull/3641
-[3643]: https://github.com/enso-org/enso/pull/3643
-[3644]: https://github.com/enso-org/enso/pull/3644
-[3645]: https://github.com/enso-org/enso/pull/3645
-[3648]: https://github.com/enso-org/enso/pull/3648
-[3661]: https://github.com/enso-org/enso/pull/3661
-[3665]: https://github.com/enso-org/enso/pull/3665
-[3634]: https://github.com/enso-org/enso/pull/3634
-[3667]: https://github.com/enso-org/enso/pull/3667
-[3669]: https://github.com/enso-org/enso/pull/3669
-[3647]: https://github.com/enso-org/enso/pull/3647
-[3673]: https://github.com/enso-org/enso/pull/3673
-[3684]: https://github.com/enso-org/enso/pull/3684
-[3691]: https://github.com/enso-org/enso/pull/3691
-[3695]: https://github.com/enso-org/enso/pull/3695
-[3722]: https://github.com/enso-org/enso/pull/3722
-[3726]: https://github.com/enso-org/enso/pull/3726
-[3727]: https://github.com/enso-org/enso/pull/3727
-[3733]: https://github.com/enso-org/enso/pull/3733
-[3749]: https://github.com/enso-org/enso/pull/3749
-[3750]: https://github.com/enso-org/enso/pull/3750
-[3770]: https://github.com/enso-org/enso/pull/3770
-[3775]: https://github.com/enso-org/enso/pull/3775
-[3759]: https://github.com/enso-org/enso/pull/3759
-[3793]: https://github.com/enso-org/enso/pull/3793
-[3790]: https://github.com/enso-org/enso/pull/3790
-[3805]: https://github.com/enso-org/enso/pull/3805
-[3812]: https://github.com/enso-org/enso/pull/3812
-[3823]: https://github.com/enso-org/enso/pull/3823
-[3827]: https://github.com/enso-org/enso/pull/3827
-[3824]: https://github.com/enso-org/enso/pull/3824
-[3804]: https://github.com/enso-org/enso/pull/3804
-[3818]: https://github.com/enso-org/enso/pull/3818
-[3776]: https://github.com/enso-org/enso/pull/3776
-[3855]: https://github.com/enso-org/enso/pull/3855
-[3836]: https://github.com/enso-org/enso/pull/3836
-[3782]: https://github.com/enso-org/enso/pull/3782
-[3863]: https://github.com/enso-org/enso/pull/3863
-[3874]: https://github.com/enso-org/enso/pull/3874
-[3852]: https://github.com/enso-org/enso/pull/3852
-[3841]: https://github.com/enso-org/enso/pull/3841
-[3885]: https://github.com/enso-org/enso/pull/3885
-[3910]: https://github.com/enso-org/enso/pull/3910
-[3919]: https://github.com/enso-org/enso/pull/3919
-[3923]: https://github.com/enso-org/enso/pull/3923
-[3950]: https://github.com/enso-org/enso/pull/3950
-[3964]: https://github.com/enso-org/enso/pull/3964
-[3967]: https://github.com/enso-org/enso/pull/3967
-[3987]: https://github.com/enso-org/enso/pull/3987
-[3878]: https://github.com/enso-org/enso/pull/3878
-[3997]: https://github.com/enso-org/enso/pull/3997
-[4013]: https://github.com/enso-org/enso/pull/4013
-[4026]: https://github.com/enso-org/enso/pull/4026
-[4027]: https://github.com/enso-org/enso/pull/4027
-[4044]: https://github.com/enso-org/enso/pull/4044
-[4052]: https://github.com/enso-org/enso/pull/4052
-[4063]: https://github.com/enso-org/enso/pull/4063
-[4078]: https://github.com/enso-org/enso/pull/4078
-[4085]: https://github.com/enso-org/enso/pull/4085
-[4097]: https://github.com/enso-org/enso/pull/4097
-[4115]: https://github.com/enso-org/enso/pull/4115
-[4120]: https://github.com/enso-org/enso/pull/4120
-[4050]: https://github.com/enso-org/enso/pull/4050
-[4072]: https://github.com/enso-org/enso/pull/4072
-[5582]: https://github.com/enso-org/enso/pull/5582
-[5645]: https://github.com/enso-org/enso/pull/5645
-[5646]: https://github.com/enso-org/enso/pull/5646
-[5656]: https://github.com/enso-org/enso/pull/5656
-[5678]: https://github.com/enso-org/enso/pull/5678
-[5679]: https://github.com/enso-org/enso/pull/5679
-[5699]: https://github.com/enso-org/enso/pull/5699
-[5719]: https://github.com/enso-org/enso/pull/5719
-[5721]: https://github.com/enso-org/enso/pull/5721
-[5757]: https://github.com/enso-org/enso/pull/5757
-[5768]: https://github.com/enso-org/enso/pull/5768
-[5774]: https://github.com/enso-org/enso/pull/5774
-[5779]: https://github.com/enso-org/enso/pull/5779
-[5785]: https://github.com/enso-org/enso/pull/5785
-[5798]: https://github.com/enso-org/enso/pull/5798
-[5802]: https://github.com/enso-org/enso/pull/5802
-[5850]: https://github.com/enso-org/enso/pull/5850
-[5863]: https://github.com/enso-org/enso/pull/5863
-[5917]: https://github.com/enso-org/enso/pull/5917
-[5705]: https://github.com/enso-org/enso/pull/5705
-[5959]: https://github.com/enso-org/enso/pull/5959
-[6073]: https://github.com/enso-org/enso/pull/6073
-[6116]: https://github.com/enso-org/enso/pull/6116
-[6150]: https://github.com/enso-org/enso/pull/6150
-[6153]: https://github.com/enso-org/enso/pull/6153
-[6156]: https://github.com/enso-org/enso/pull/6156
-[6176]: https://github.com/enso-org/enso/pull/6176
-[6204]: https://github.com/enso-org/enso/pull/6204
-[6077]: https://github.com/enso-org/enso/pull/6077
-[6218]: https://github.com/enso-org/enso/pull/6218
-[6233]: https://github.com/enso-org/enso/pull/6233
-[6253]: https://github.com/enso-org/enso/pull/6253
-[6294]: https://github.com/enso-org/enso/pull/6294
-[6383]: https://github.com/enso-org/enso/pull/6383
-[6404]: https://github.com/enso-org/enso/pull/6404
-[6347]: https://github.com/enso-org/enso/pull/6347
-[6429]: https://github.com/enso-org/enso/pull/6429
-[6459]: https://github.com/enso-org/enso/pull/6459
-[6467]: https://github.com/enso-org/enso/pull/6467
-[6538]: https://github.com/enso-org/enso/pull/6538
-[6539]: https://github.com/enso-org/enso/pull/6539
-[6550]: https://github.com/enso-org/enso/pull/6550
-[6621]: https://github.com/enso-org/enso/pull/6621
-[6711]: https://github.com/enso-org/enso/pull/6711
-[6743]: https://github.com/enso-org/enso/pull/6743
-[6817]: https://github.com/enso-org/enso/pull/6817
-[6835]: https://github.com/enso-org/enso/pull/6835
-[6890]: https://github.com/enso-org/enso/pull/6890
-[6922]: https://github.com/enso-org/enso/pull/6922
-[6925]: https://github.com/enso-org/enso/pull/6925
-[6941]: https://github.com/enso-org/enso/pull/6941
-[6956]: https://github.com/enso-org/enso/pull/6956
-[6973]: https://github.com/enso-org/enso/pull/6973
-[6988]: https://github.com/enso-org/enso/pull/6988
-[7035]: https://github.com/enso-org/enso/pull/7035
-[7052]: https://github.com/enso-org/enso/pull/7052
-[7072]: https://github.com/enso-org/enso/pull/7072
-[7166]: https://github.com/enso-org/enso/pull/7166
-[7174]: https://github.com/enso-org/enso/pull/7174
-[7223]: https://github.com/enso-org/enso/pull/7223
-[7234]: https://github.com/enso-org/enso/pull/7234
-[7221]: https://github.com/enso-org/enso/pull/7221
-[7275]: https://github.com/enso-org/enso/pull/7275
-[7295]: https://github.com/enso-org/enso/pull/7295
-[7297]: https://github.com/enso-org/enso/pull/7297
-[7425]: https://github.com/enso-org/enso/pull/7425
-[7557]: https://github.com/enso-org/enso/pull/7557
-[7704]: https://github.com/enso-org/enso/pull/7704
-[7615]: https://github.com/enso-org/enso/pull/7615
-[7637]: https://github.com/enso-org/enso/pull/7637
-[7700]: https://github.com/enso-org/enso/pull/7700
-[7709]: https://github.com/enso-org/enso/pull/7709
-[7776]: https://github.com/enso-org/enso/pull/7776
-[7807]: https://github.com/enso-org/enso/pull/7807
-[7826]: https://github.com/enso-org/enso/pull/7826
-[7859]: https://github.com/enso-org/enso/pull/7859
-[7908]: https://github.com/enso-org/enso/pull/7908
-[7913]: https://github.com/enso-org/enso/pull/7913
-[7935]: https://github.com/enso-org/enso/pull/7935
-[7947]: https://github.com/enso-org/enso/pull/7947
-[7979]: https://github.com/enso-org/enso/pull/7979
-[8005]: https://github.com/enso-org/enso/pull/8005
-[8006]: https://github.com/enso-org/enso/pull/8006
-[8029]: https://github.com/enso-org/enso/pull/8029
-[8083]: https://github.com/enso-org/enso/pull/8083
-[8105]: https://github.com/enso-org/enso/pull/8105
-[8150]: https://github.com/enso-org/enso/pull/8150
-[8235]: https://github.com/enso-org/enso/pull/8235
-[8307]: https://github.com/enso-org/enso/pull/8307
-[8403]: https://github.com/enso-org/enso/pull/8403
-[8539]: https://github.com/enso-org/enso/pull/8539
-[8564]: https://github.com/enso-org/enso/pull/8564
-[8595]: https://github.com/enso-org/enso/pull/8595
-[8606]: https://github.com/enso-org/enso/pull/8606
-[8627]: https://github.com/enso-org/enso/pull/8627
-[8691]: https://github.com/enso-org/enso/pull/8691
-[8719]: https://github.com/enso-org/enso/pull/8719
-[8816]: https://github.com/enso-org/enso/pull/8816
-[8849]: https://github.com/enso-org/enso/pull/8849
-[8865]: https://github.com/enso-org/enso/pull/8865
-[8935]: https://github.com/enso-org/enso/pull/8935
-[8861]: https://github.com/enso-org/enso/pull/8861
-[8921]: https://github.com/enso-org/enso/pull/8921
-[8979]: https://github.com/enso-org/enso/pull/8979
-[8986]: https://github.com/enso-org/enso/pull/8986
-[9027]: https://github.com/enso-org/enso/pull/9027
-[9054]: https://github.com/enso-org/enso/pull/9054
-[9128]: https://github.com/enso-org/enso/pull/9128
-[9215]: https://github.com/enso-org/enso/pull/9215
-[9225]: https://github.com/enso-org/enso/pull/9225
-[9233]: https://github.com/enso-org/enso/pull/9233
-[9239]: https://github.com/enso-org/enso/pull/9239
-[9249]: https://github.com/enso-org/enso/pull/9249
-[9269]: https://github.com/enso-org/enso/pull/9269
-[9272]: https://github.com/enso-org/enso/pull/9272
-[9299]: https://github.com/enso-org/enso/pull/9299
-[9330]: https://github.com/enso-org/enso/pull/9330
-[9334]: https://github.com/enso-org/enso/pull/9334
-[9346]: https://github.com/enso-org/enso/pull/9346
-[9382]: https://github.com/enso-org/enso/pull/9382
-[9343]: https://github.com/enso-org/enso/pull/9343
-[9406]: https://github.com/enso-org/enso/pull/9406
-[9435]: https://github.com/enso-org/enso/pull/9435
-[9462]: https://github.com/enso-org/enso/pull/9462
-[9533]: https://github.com/enso-org/enso/pull/9533
-[9525]: https://github.com/enso-org/enso/pull/9525
-[9566]: https://github.com/enso-org/enso/pull/9566
-[9589]: https://github.com/enso-org/enso/pull/9589
-[9637]: https://github.com/enso-org/enso/pull/9637
-[9641]: https://github.com/enso-org/enso/pull/9641
-[9663]: https://github.com/enso-org/enso/pull/9663
-[9672]: https://github.com/enso-org/enso/pull/9672
-[9686]: https://github.com/enso-org/enso/pull/9686
-[9694]: https://github.com/enso-org/enso/pull/9694
-[9716]: https://github.com/enso-org/enso/pull/9716
-[9719]: https://github.com/enso-org/enso/pull/9719
-[9725]: https://github.com/enso-org/enso/pull/9725
-[9759]: https://github.com/enso-org/enso/pull/9759
-[9577]: https://github.com/enso-org/enso/pull/9577
-[9750]: https://github.com/enso-org/enso/pull/9750
-[9766]: https://github.com/enso-org/enso/pull/9766
-[9917]: https://github.com/enso-org/enso/pull/9917
-[9873]: https://github.com/enso-org/enso/pull/9873
-[9879]: https://github.com/enso-org/enso/pull/9879
-[9957]: https://github.com/enso-org/enso/pull/9957
-[9968]: https://github.com/enso-org/enso/pull/9968
-[10081]: https://github.com/enso-org/enso/pull/10081
-
-#### Enso Compiler
-
-- [Added overloaded `from` conversions.][3227]
-- [Upgraded to Graal VM 21.3.0][3258]
-- [Added the ability to decorate values with warnings.][3248]
-- [Fixed issues related to constructors' default arguments][3330]
-- [Fixed compiler issue related to module cache.][3367]
-- [Fixed execution of defaulted arguments of Atom Constructors][3358]
-- [Converting Enso Date to java.time.LocalDate and back][3559]
-- [Incremental Reparsing of a Simple Edits][3508]
-- [Functions with all-defaulted arguments now execute automatically][3414]
-- [Provide `tagValues` for function arguments in the language server][3422]
-- [Delay construction of Truffle nodes to speed initialization][3429]
-- [Frgaal compiler integration to allow for latest Java constructs][3421]
-- [Support for Chrome developer tools --inspect option][3432]
-- [Move Builtin Types and Methods definitions to stdlib][3363]
-- [Reduce boilerplate by generating BuiltinMethod nodes from simple method
- signatures][3444]
-- [Generate boilerplate classes related to error handling and varargs in
- builtins from method signatures][3454]
-- [Avoid needless concatenations of warning/error messages][3465]
-- [Added a full-blown DSL for builtins][3471]
-- [Integration of Enso with Ideal Graph Visualizer][3533]
-- [Lazy evaluation of RHS argument for || and &&][3492]
-- [Drop Core implementation of IR][3512]
-- [Replace `this` with `self`][3524]
-- [Introduce a smaller version of the standard library, just for testing][3531]
-- [Remove `here` and make method name resolution case-sensitive][3531]
-- [Explicit `self`][3569]
-- [Added benchmarking tool for the language server][3578]
-- [Support module imports using a qualified name][3608]
-- [Using parser written in Rust.][3611]
-- [Enable caching in visualisation functions][3618]
-- [Update Scala compiler and libraries][3631]
-- [Support importing module methods][3633]
-- [Support Autosave for open buffers][3637]
-- [Generate native-image for engine-runner][3638]
-- [Support pattern matching on constants][3641]
-- [Builtin Date_Time, Time_Of_Day and Zone types for better polyglot
- support][3658]
-- [Implement new specification of data types: `type` has a runtime
- representation, every atom has a type][3671]
-- [main = "Hello World!" is valid Enso sample][3696]
-- [Invalidate module's IR cache if imported module changed][3703]
-- [Don't rename imported Main module that only imports names][3710]
-- [Notify node status to the IDE][3729]
-- [Make instance methods callable like statics][3764]
-- [Distinguish static and instance methods][3740]
-- [By-type pattern matching][3742]
-- [Fix performance of method calls on polyglot arrays][3781]
-- [Improved support for static and non-static builtins][3791]
-- [Missing foreign language generates proper Enso error][3798]
-- [Connecting IGV 4 Enso with Engine sources][3810]
-- [Made Vector performance to be on par with Array][3811]
-- [Introduced IO Permission Contexts][3828]
-- [Accept Array-like object seamlessly in builtins][3817]
-- [Initialize Builtins at Native Image build time][3821]
-- [Split Atom suggestion entry to Type and Constructor][3835]
-- [Any number can be converted to double][3865]
-- [Update to GraalVM 22.3.0][3663]
-- [Connecting IGV 4 Enso with Engine sources][3810]
-- [Add the `Self` keyword referring to current type][3844]
-- [Support VCS for projects in Language Server][3851]
-- [Support multiple exports of the same module][3897]
-- [Import modules' extension methods only with unqualified imports][3906]
-- [Support expression evaluation in chromeinspector console][3941]
-- [Don't export polyglot symbols][3915]
-- [From/all import must not include module in name resolution][3931]
-- [Vector returns warnings of individual elements][3938]
-- [Enso.getMetaObject, Type.isMetaInstance and Meta.is_a consolidation][3949]
-- [Add executionContext/interrupt API command][3952]
-- [Any.== is a builtin method][3956]
-- [Simplify exception handling for polyglot exceptions][3981]
-- [Simplify compilation of nested patterns][4005]
-- [IGV can jump to JMH sources & more][4008]
-- [Basic support of VSCode integration][4014]
-- [Sync language server with file system after VCS restore][4020]
-- [`ArrayOverBuffer` behaves like an `Array` and `Array.sort` no longer sorts in
- place][4022]
-- [Implement hashing functionality for all objects][3878]
-- [Introducing Meta.atom_with_hole][4023]
-- [Report failures in name resolution in type signatures][4030]
-- [Attach visualizations to sub-expressions][4048]
-- [Add Meta.get_annotation method][4049]
-- [Resolve Fully Qualified Names][4056]
-- [Optimize Atom storage layouts][3862]
-- [Make instance methods callable like statics for builtin types][4077]
-- [Convert large longs to doubles, safely, for host calls][4099]
-- [Consistent ordering with comparators][4067]
-- [Profile engine startup][4110]
-- [Report type of polyglot values][4111]
-- [Engine can now recover from serialization failures][5591]
-- [Use sbt runEngineDistribution][5609]
-- [Update to GraalVM 22.3.1][5602]
-- [Cache library bindings to optimize import/export resolution][5700]
-- [Comparators support partial ordering][5778]
-- [Merge ordered and unordered comparators][5845]
-- [Use SHA-1 for calculating hashes of modules' IR and bindings][5791]
-- [Don't install Python component on Windows][5900]
-- [Detect potential name conflicts between exported types and FQNs][5966]
-- [Ensure calls involving warnings remain instrumented][6067]
-- [One can define lazy atom fields][6151]
-- [Replace IOContexts with Execution Environment and generic Context][6171]
-- [Vector.sort handles incomparable types][5998]
-- [Removing need for asynchronous thread to execute ResourceManager
- finalizers][6335]
-- [Warning.get_all returns only unique warnings][6372]
-- [Reimplement `enso_project` as a proper builtin][6352]
-- [Limit number of reported warnings per value][6577]
-- [Experimental support for Espresso Java interpreter][6966]
-- [Suggestions are updated only when the type of the expression changes][6755]
-- [Add project creation time to project metadata][6780]
-- [Upgrade GraalVM to 22.3.1 JDK17][6750]
-- [Ascribed types are checked during runtime][6790]
-- [Add compiler pass that discovers ambiguous and duplicated symbols][6868]
-- [Improve and colorize compiler's diagnostic messages][6931]
-- [Execute some runtime commands synchronously to avoid race conditions][6998]
-- [Automatic conversion for runtime checked arguments][7009]
-- [Scala 2.13.11 update][7010]
-- [Add special handling for static method calls on Any][7033]
-- [Improve parallel execution of commands and jobs in Language Server][7042]
-- [Added retries when executing GraalVM updater][7079]
-- [Add method call info for infix operators][7090]
-- [`executionComplete` response is sent on successful execution only][7143]
-- [Send info about function values][7168]
-- [Cache dataflow errors][7193]
-- [Add endpoint for downloading a project][7291]
-- [Update to GraalVM 23.0.0][7176]
-- [Using official BigInteger support][7420]
-- [Allow users to give a project other than Upper_Snake_Case name][7397]
-- [Support renaming variable or function][7515]
-- [Replace custom logging service with off the shelf library][7559]
-- [Only use types as State keys][7585]
-- [Allow Java Enums in case of branches][7607]
-- [Notification about the project rename action][7613]
-- [Use `numpy` & co. from Enso!][7678]
-- [Changed layout of local libraries directory, making it easier to reference
- projects next to each other][7634]
-- [Support runtime checks of intersection types][7769]
-- [Merge `Small_Integer` and `Big_Integer` types][7636]
-- [Inline type ascriptions][7796]
-- [Always persist `TRACE` level logs to a file][7825]
-- [Meta.instrument & Instrumentor API][7833]
-- [Downloadable VSCode extension][7861]
-- [New `project/status` route for reporting LS state][7801]
-- [Add Enso-specific assertions][7883]
-- [Modules can be `private`][7840]
-- [HTTPS and WSS support in Language Server][7937]
-- [Export of non-existing symbols results in error][7960]
-- [Upgrade GraalVM to 23.1.0 JDK21][7991]
-- [Added opt-in type checks of return type][8502]
-- [Introduce Arrow language][8512]
-- [DataflowError.withoutTrace doesn't store stacktrace][8608]
-- [Derive --in-project from --run source location][8775]
-- [Binary operator resolution based on that value][8779]
-- [Add run_google_report method][8907]
-- [Execute and debug individual Enso files in VSCode extension][8923]
-- [Check type of `self` when calling a method using the static syntax][8867]
-- [Autoscoped constructors][9190]
-- [Allow Oracle GraalVM JDK][9322]
-- [`Table.join` can access its `right` argument][9410]
-- [Atom constructors can be project-private][9692]
-
-[3227]: https://github.com/enso-org/enso/pull/3227
-[3248]: https://github.com/enso-org/enso/pull/3248
-[3258]: https://github.com/enso-org/enso/pull/3258
-[3330]: https://github.com/enso-org/enso/pull/3330
-[3358]: https://github.com/enso-org/enso/pull/3358
-[3360]: https://github.com/enso-org/enso/pull/3360
-[3367]: https://github.com/enso-org/enso/pull/3367
-[3559]: https://github.com/enso-org/enso/pull/3559
-[3508]: https://github.com/enso-org/enso/pull/3508
-[3412]: https://github.com/enso-org/enso/pull/3412
-[3414]: https://github.com/enso-org/enso/pull/3414
-[3417]: https://github.com/enso-org/enso/pull/3417
-[3422]: https://github.com/enso-org/enso/pull/3422
-[3429]: https://github.com/enso-org/enso/pull/3429
-[3421]: https://github.com/enso-org/enso/pull/3421
-[3432]: https://github.com/enso-org/enso/pull/3432
-[3363]: https://github.com/enso-org/enso/pull/3363
-[3444]: https://github.com/enso-org/enso/pull/3444
-[3453]: https://github.com/enso-org/enso/pull/3453
-[3454]: https://github.com/enso-org/enso/pull/3454
-[3461]: https://github.com/enso-org/enso/pull/3461
-[3465]: https://github.com/enso-org/enso/pull/3465
-[3471]: https://github.com/enso-org/enso/pull/3471
-[3533]: https://github.com/enso-org/enso/pull/3533
-[3492]: https://github.com/enso-org/enso/pull/3492
-[3493]: https://github.com/enso-org/enso/pull/3493
-[3505]: https://github.com/enso-org/enso/pull/3505
-[3512]: https://github.com/enso-org/enso/pull/3512
-[3524]: https://github.com/enso-org/enso/pull/3524
-[3531]: https://github.com/enso-org/enso/pull/3531
-[3562]: https://github.com/enso-org/enso/pull/3562
-[3538]: https://github.com/enso-org/enso/pull/3538
-[3569]: https://github.com/enso-org/enso/pull/3569
-[3578]: https://github.com/enso-org/enso/pull/3578
-[3611]: https://github.com/enso-org/enso/pull/3611
-[3618]: https://github.com/enso-org/enso/pull/3618
-[3608]: https://github.com/enso-org/enso/pull/3608
-[3608]: https://github.com/enso-org/enso/pull/3608
-[3631]: https://github.com/enso-org/enso/pull/3631
-[3633]: https://github.com/enso-org/enso/pull/3633
-[3637]: https://github.com/enso-org/enso/pull/3637
-[3638]: https://github.com/enso-org/enso/pull/3638
-[3641]: https://github.com/enso-org/enso/pull/3641
-[3658]: https://github.com/enso-org/enso/pull/3658
-[3671]: https://github.com/enso-org/enso/pull/3671
-[3696]: https://github.com/enso-org/enso/pull/3696
-[3703]: https://github.com/enso-org/enso/pull/3703
-[3710]: https://github.com/enso-org/enso/pull/3710
-[3729]: https://github.com/enso-org/enso/pull/3729
-[3740]: https://github.com/enso-org/enso/pull/3740
-[3764]: https://github.com/enso-org/enso/pull/3764
-[3742]: https://github.com/enso-org/enso/pull/3742
-[3781]: https://github.com/enso-org/enso/pull/3781
-[3791]: https://github.com/enso-org/enso/pull/3791
-[3798]: https://github.com/enso-org/enso/pull/3798
-[3810]: https://github.com/enso-org/enso/pull/3810
-[3811]: https://github.com/enso-org/enso/pull/3811
-[3817]: https://github.com/enso-org/enso/pull/3817
-[3821]: https://github.com/enso-org/enso/pull/3821
-[3828]: https://github.com/enso-org/enso/pull/3828
-[3835]: https://github.com/enso-org/enso/pull/3835
-[3865]: https://github.com/enso-org/enso/pull/3865
-[3663]: https://github.com/enso-org/enso/pull/3663
-[3810]: https://github.com/enso-org/enso/pull/3810
-[3844]: https://github.com/enso-org/enso/pull/3844
-[3851]: https://github.com/enso-org/enso/pull/3851
-[3862]: https://github.com/enso-org/enso/pull/3862
-[3897]: https://github.com/enso-org/enso/pull/3897
-[3906]: https://github.com/enso-org/enso/pull/3906
-[3941]: https://github.com/enso-org/enso/pull/3941
-[3915]: https://github.com/enso-org/enso/pull/3915
-[3931]: https://github.com/enso-org/enso/pull/3931
-[3938]: https://github.com/enso-org/enso/pull/3938
-[3949]: https://github.com/enso-org/enso/pull/3949
-[3952]: https://github.com/enso-org/enso/pull/3952
-[3956]: https://github.com/enso-org/enso/pull/3956
-[3981]: https://github.com/enso-org/enso/pull/3981
-[4005]: https://github.com/enso-org/enso/pull/4005
-[4008]: https://github.com/enso-org/enso/pull/4008
-[4014]: https://github.com/enso-org/enso/pull/4014
-[4020]: https://github.com/enso-org/enso/pull/4020
-[4022]: https://github.com/enso-org/enso/pull/4022
-[4023]: https://github.com/enso-org/enso/pull/4023
-[4030]: https://github.com/enso-org/enso/pull/4030
-[4048]: https://github.com/enso-org/enso/pull/4048
-[4049]: https://github.com/enso-org/enso/pull/4049
-[4056]: https://github.com/enso-org/enso/pull/4056
-[4067]: https://github.com/enso-org/enso/pull/4067
-[4077]: https://github.com/enso-org/enso/pull/4077
-[4099]: https://github.com/enso-org/enso/pull/4099
-[4110]: https://github.com/enso-org/enso/pull/4110
-[4111]: https://github.com/enso-org/enso/pull/4111
-[5591]: https://github.com/enso-org/enso/pull/5591
-[5609]: https://github.com/enso-org/enso/pull/5609
-[5602]: https://github.com/enso-org/enso/pull/5602
-[5700]: https://github.com/enso-org/enso/pull/5700
-[5778]: https://github.com/enso-org/enso/pull/5778
-[5845]: https://github.com/enso-org/enso/pull/5845
-[5791]: https://github.com/enso-org/enso/pull/5791
-[5900]: https://github.com/enso-org/enso/pull/5900
-[5966]: https://github.com/enso-org/enso/pull/5966
-[5998]: https://github.com/enso-org/enso/pull/5998
-[6067]: https://github.com/enso-org/enso/pull/6067
-[6151]: https://github.com/enso-org/enso/pull/6151
-[6171]: https://github.com/enso-org/enso/pull/6171
-[6335]: https://github.com/enso-org/enso/pull/6335
-[6372]: https://github.com/enso-org/enso/pull/6372
-[6352]: https://github.com/enso-org/enso/pull/6352
-[6577]: https://github.com/enso-org/enso/pull/6577
-[6966]: https://github.com/enso-org/enso/pull/6966
-[6750]: https://github.com/enso-org/enso/pull/6750
-[6755]: https://github.com/enso-org/enso/pull/6755
-[6780]: https://github.com/enso-org/enso/pull/6780
-[6790]: https://github.com/enso-org/enso/pull/6790
-[6868]: https://github.com/enso-org/enso/pull/6868
-[6931]: https://github.com/enso-org/enso/pull/6931
-[6998]: https://github.com/enso-org/enso/pull/6998
-[7009]: https://github.com/enso-org/enso/pull/7009
-[7010]: https://github.com/enso-org/enso/pull/7010
-[7033]: https://github.com/enso-org/enso/pull/7033
-[7042]: https://github.com/enso-org/enso/pull/7042
-[7079]: https://github.com/enso-org/enso/pull/7079
-[7090]: https://github.com/enso-org/enso/pull/7090
-[7143]: https://github.com/enso-org/enso/pull/7143
-[7168]: https://github.com/enso-org/enso/pull/7168
-[7176]: https://github.com/enso-org/enso/pull/7176
-[7193]: https://github.com/enso-org/enso/pull/7193
-[7291]: https://github.com/enso-org/enso/pull/7291
-[7420]: https://github.com/enso-org/enso/pull/7420
-[7397]: https://github.com/enso-org/enso/pull/7397
-[7515]: https://github.com/enso-org/enso/pull/7515
-[7559]: https://github.com/enso-org/enso/pull/7559
-[7585]: https://github.com/enso-org/enso/pull/7585
-[7607]: https://github.com/enso-org/enso/pull/7607
-[7613]: https://github.com/enso-org/enso/pull/7613
-[7678]: https://github.com/enso-org/enso/pull/7678
-[7634]: https://github.com/enso-org/enso/pull/7634
-[7769]: https://github.com/enso-org/enso/pull/7769
-[7636]: https://github.com/enso-org/enso/pull/7636
-[7796]: https://github.com/enso-org/enso/pull/7796
-[7801]: https://github.com/enso-org/enso/pull/7801
-[7825]: https://github.com/enso-org/enso/pull/7825
-[7833]: https://github.com/enso-org/enso/pull/7833
-[7861]: https://github.com/enso-org/enso/pull/7861
-[7883]: https://github.com/enso-org/enso/pull/7883
-[7840]: https://github.com/enso-org/enso/pull/7840
-[7937]: https://github.com/enso-org/enso/pull/7937
-[7960]: https://github.com/enso-org/enso/pull/7960
-[7991]: https://github.com/enso-org/enso/pull/7991
-[8502]: https://github.com/enso-org/enso/pull/8502
-[8512]: https://github.com/enso-org/enso/pull/8512
-[8608]: https://github.com/enso-org/enso/pull/8608
-[8775]: https://github.com/enso-org/enso/pull/8775
-[8779]: https://github.com/enso-org/enso/pull/8779
-[8907]: https://github.com/enso-org/enso/pull/8907
-[8923]: https://github.com/enso-org/enso/pull/8923
-[8867]: https://github.com/enso-org/enso/pull/8867
-[9190]: https://github.com/enso-org/enso/pull/9190
-[9322]: https://github.com/enso-org/enso/pull/9322
-[9692]: https://github.com/enso-org/enso/pull/9692
-[9410]: https://github.com/enso-org/enso/pull/9410
-
-# Enso 2.0.0-alpha.18 (2021-10-12)
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Enso Compiler
-
-- [Updated Enso engine to version 0.2.30][engine-0.2.31]. If you're interested
- in the enhancements and fixes made to the Enso compiler, you can find their
- release notes
- [here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
-
-
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
-
-#### Visual Environment
-
-- [Fixed freezing after inactivity.][1776] When the IDE window was minimized or
- covered by other windows or invisible for any other reason for a duration
- around one minute or longer then it would often be frozen for some seconds on
- return. Now it is possible to interact with the IDE instantly, no matter how
- long it had been inactive.
-
-
-
-[1776]: https://github.com/enso-org/ide/pull/1776
-
-# Enso 2.0.0-alpha.17 (2021-09-23)
-
-
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
-
-#### Visual Environment
-
-- [Correct handling of command-line flags.][1815] Command line arguments of the
- form `--backend=false` or `--backend false` are now handled as expected and
- turn off the "backend" option. The same fix has been applied to all other
- boolean command-line options as well.
-- [Visualizations will be attached after project is ready.][1825] This addresses
- a rare issue when initially opened visualizations were automatically closed
- rather than filled with data.
-
-
-
-[1815]: https://github.com/enso-org/ide/pull/1815
-[1825]: https://github.com/enso-org/ide/pull/1825
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Enso Compiler
-
-- [Updated Enso engine to version 0.2.30][engine-0.2.30]. If you're interested
- in the enhancements and fixes made to the Enso compiler, you can find their
- release notes
- [here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
-
-[engine-0.2.30]: https://github.com/enso-org/enso/blob/develop/RELEASES.md
-
-# Enso 2.0.0-alpha.16 (2021-09-16)
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Visual Environment
-
-- [Auto-layout for new nodes.][1755] When a node is selected and a new node gets
- created below using Tab then the new node is automatically
- positioned far enough to the right to find sufficient space and avoid
- overlapping with existing nodes.
-
-[1755]: https://github.com/enso-org/ide/pull/1755
-
-#### Enso Compiler
-
-- [Updated Enso engine to version 0.2.29][engine-0.2.29]. If you're interested
- in the enhancements and fixes made to the Enso compiler, you can find their
- release notes
- [here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
-
-[engine-0.2.29]: https://github.com/enso-org/enso/blob/develop/RELEASES.md
-
-
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
-
-#### Visual Environment
-
-- [Sharp rendering on screens with fractional pixel ratios.][1820]
-
-[1820]: https://github.com/enso-org/ide/pull/1820
-
-
-
-# Enso 2.0.0-alpha.15 (2021-09-09)
-
-
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
-
-#### Visual Environment
-
-- [Fixed parsing of the `--no-data-gathering` command line option.][1831] Flag's
- name has been changed to `--data-gathering`, so now `--data-gathering=false`
- and `--data-gathering=true` are supported as well.
-
-[1831]: https://github.com/enso-org/ide/pull/1831
-
-# Enso 2.0.0-alpha.14 (2021-09-02)
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Visual Environment
-
-- [Visualization previews are disabled.][1817] Previously, hovering over a
- node's output port for more than four seconds would temporarily reveal the
- node's visualization. This behavior is disabled now.
-
-[1817]: https://github.com/enso-org/ide/pull/1817
-
-#### Enso Compiler
-
-- [Updated Enso engine to version 0.2.28][1829]. If you're interested in the
- enhancements and fixes made to the Enso compiler, you can find their release
- notes [here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
-
-[1829]: https://github.com/enso-org/ide/pull/1829
-
-# Enso 2.0.0-alpha.13 (2021-08-27)
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Enso Compiler
-
-- [Updated Enso engine to version 0.2.27][1811]. If you're interested in the
- enhancements and fixes made to the Enso compiler, you can find their release
- notes [here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
-
-[1811]: https://github.com/enso-org/ide/pull/1811
-
-# Enso 2.0.0-alpha.12 (2021-08-13)
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Visual Environment
-
-- [Improvements to visualization handling][1804]. These improvements are fixing
- possible performance issues around attaching and detaching visualizations.
-- [GeoMap visualization will ignore points with `null` coordinates][1775]. Now
- the presence of such points in the dataset will not break initial map
- positioning.
-
-#### Enso Compiler
-
-- [Updated Enso engine to version 0.2.26][1801]. If you're interested in the
- enhancements and fixes made to the Enso compiler, you can find their release
- notes [here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
-
-[1801]: https://github.com/enso-org/ide/pull/1801
-[1775]: https://github.com/enso-org/ide/pull/1775
-[1798]: https://github.com/enso-org/ide/pull/1798
-[1804]: https://github.com/enso-org/ide/pull/1804
-
-# Enso 2.0.0-alpha.11 (2021-08-09)
-
-This update contains major performance improvements and exposes new privacy user
-settings. We will work towards stabilizing it in the next weeks in order to make
-these updates be shipped in a stable release before the end of the year.
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Visual Environment
-
-- [New look of open project dialog][1700]. Now it has a "Open project" title at
- the top.
-- [Documentation coments are displayed next to the nodes.][1744].
-
-#### Enso Compiler
-
-- [Updated Enso engine to version 0.2.22][1762]. If you are interested in the
- enhancements and fixes made to the Enso compiler, you can find out more
- details in
- [the engine release notes](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
-
-
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
-
-#### Visual Environment
-
-- [Fixed a bug where edited node expression was sometimes altered.][1743] When
- editing node expression, the changes were occasionally reverted, or the
- grayed-out parameter names were added to the actual expression.
-
-[1700]: https://github.com/enso-org/ide/pull/1700
-[1742]: https://github.com/enso-org/ide/pull/1742
-[1726]: https://github.com/enso-org/ide/pull/1762
-[1743]: https://github.com/enso-org/ide/pull/1743
-[1744]: https://github.com/enso-org/ide/pull/1744
-
-# Enso 2.0.0-alpha.10 (2021-07-23)
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Enso Compiler
-
-- [Updated Enso engine to version 0.2.15][1710]. If you're interested in the
- enhancements and fixes made to the Enso compiler, you can find out more
- details in
- [the engine release notes](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
-
-
-
-[1710]: https://github.com/enso-org/ide/pull/1710
-
-# Enso 2.0.0-alpha.9 (2021-07-16)
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Visual Environment
-
-- [Improved undo-redo][1653]. Node selection, enabling/disabling visualisations
- and entering a node are now affected by undo/redo and are restored on project
- startup.
-
-
-
-[1640]: https://github.com/enso-org/ide/pull/1653
-
-# Enso 2.0.0-alpha.8 (2021-06-09)
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Enso Compiler
-
-- [Updated Enso engine to version 0.2.12][1640]. If you're interested in the
- enhancements and fixes made to the Enso compiler, you can find out more
- details in
- [the engine release notes](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
-
-[1640]: https://github.com/enso-org/ide/pull/1640
-
-
-
-# Enso 2.0.0-alpha.7 (2021-06-06)
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Visual Environment
-
-- [User Authentication][1653]. Users can sign in to Enso using Google, GitHub or
- email accounts.
-
-
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
-
-#### Visual Environment
-
-- [Fix node selection bug ][1664]. Fix nodes not being deselected correctly in
- some circumstances. This would lead to nodes moving too fast when dragged
- [1650] or the internal state of the project being inconsistent [1626].
-
-[1653]: https://github.com/enso-org/ide/pull/1653
-[1664]: https://github.com/enso-org/ide/pull/1664
-
-
-
-# Enso 2.0.0-alpha.6 (2021-06-28)
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Visual Environment
-
-- [Profling mode.][1546] The IDE contains a profiling mode now which can be
- entered through a button in the top-right corner or through the keybinding
- ctrl+p. This mode does not display any information yet.
- In the future, it will display the running times of nodes and maybe more
- useful statistics.
-- [Area selection][1588]. You can now select multiple nodes at once. Just click
- and drag on the background of your graph and see the beauty of the area
- selection appear.
-- [Opening projects in application graphical interface][1587]. Press `cmd`+`o`
- to bring the list of projects. Select a project on the list to open it.
-- [Initial support for undo-redo][1602]. Press cmd+z to
- undo last action and cmd+z to redo last undone action.
- This version of undo redo does not have proper support for text editor and
- undoing UI changes (like selecting nodes).
-
-#### EnsoGL (rendering engine)
-
-
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
-
-#### Visual Environment
-
-- [Nodes in graph no longer overlap panels][1577]. The Searcher, project name,
- breadcrumbs and status bar are displayed "above" nodes.
-
-#### Enso Compiler
-
-[1588]: https://github.com/enso-org/ide/pull/1588
-[1577]: https://github.com/enso-org/ide/pull/1577
-[1587]: https://github.com/enso-org/ide/pull/1587
-[1602]: https://github.com/enso-org/ide/pull/1602
-[1602]: https://github.com/enso-org/ide/pull/1664
-[1602]: https://github.com/enso-org/ide/pull/1650
-[1602]: https://github.com/enso-org/ide/pull/1626
-
-# Enso 2.0.0-alpha.5 (2021-05-14)
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Visual Environment
-
-- [Create New Project action in Searcher][1566]. When you bring the searcher
- with tab having no node selected, a new action will be available next to the
- examples and code suggestions: `Create New Project`. When you choose it by
- clicking with mouse or selecting and pressing enter, a new unnamed project
- will be created and opened in the application. Then you can give a name to
- this project.
-- [Signed builds.][1366] Our builds are signed and will avoid warnings from the
- operating system about being untrusted.
-
-#### EnsoGL (rendering engine)
-
-- [Components for picking numbers and ranges.][1524]. We now have some internal
- re-usable UI components for selecting numbers or a range. Stay tuned for them
- appearing in the IDE.
-
-
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
-
-#### Visual Environment
-
-- [Delete key will delete selected nodes][1538]. Only the non-intuitive
- backspace key was assigned to this action before.
-- [It is possible to move around after deleting a node with a selected
- visualization][1556]. Deleting a node while its attached visualization was
- selected made it impossible to pan or zoom around the stage afterwards. This
- error is fixed now.
-- [Fixed an internal error that would make the IDE fail on some browser.][1561].
- Instead of crashing on browser that don't support the feature we use, we are
- now just start a little bit slower.
-
-#### Enso Compiler
-
-- [Updated Enso engine to version 0.2.11][1541].
-
-If you're interested in the enhancements and fixes made to the Enso compiler,
-you can find their release notes
-[here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
-
-[1366]: https://github.com/enso-org/ide/pull/1366
-[1541]: https://github.com/enso-org/ide/pull/1541
-[1538]: https://github.com/enso-org/ide/pull/1538
-[1524]: https://github.com/enso-org/ide/pull/1524
-[1556]: https://github.com/enso-org/ide/pull/1556
-[1561]: https://github.com/enso-org/ide/pull/1561
-[1566]: https://github.com/enso-org/ide/pull/1566
-
-
-
-# Enso 2.0.0-alpha.4 (2021-05-04)
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Visual Environment
-
-- [Window management buttons.][1511]. The IDE now has components for
- "fullscreen" and "close" buttons. They will when running IDE in a cloud
- environment where no native window buttons are available.
-- [Customizable backend options][1531]. When invoking Enso IDE through command
- line interface, it is possible to add the `--` argument separator. All
- arguments following the separator will be passed to the backend.
-- [Added `--verbose` parameter][1531]. If `--verbose` is given as command line
- argument, the IDE and the backend will produce more detailed logs.
-
-
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
-
-#### Visual Environment
-
-- [Some command line arguments were not applied correctly in the IDE][1536].
- Some arguments were not passed correctly to the IDE leading to erroneous
- behavior or appearance of the electron app. This is now fixed.
-
-#### Enso Compiler
-
-If you're interested in the enhancements and fixes made to the Enso compiler,
-you can find their release notes
-[here](https://github.com/enso-org/enso/blob/develop/RELEASES.md).
-
-[1511]: https://github.com/enso-org/ide/pull/1511
-[1536]: https://github.com/enso-org/ide/pull/1536
-[1531]: https://github.com/enso-org/ide/pull/1531
-
-
-
-# Enso 2.0.0-alpha.3 (2020-04-13)
-
-
![New Learning Resources](/docs/assets/tags/new_learning_resources.svg)
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Visual Environment
-
-- [The status bar reports connectivity issues][1316]. The IDE maintains a
- connection to the Enso Language Server. If this connection is lost, any
- unsaved and further work will be lost. In this build we have added a
- notification in the status bar to signal that the connection has been lost and
- that the IDE must be restarted. In future, the IDE will try to automatically
- reconnect.
-- [Visualizations can now be maximised to fill the screen][1355] by selecting
- the node and pressing space twice. To quit this view, press space again.
-- [Visualizations are previewed when you hover over an output port.][1363] There
- is now a quick preview for visualizations and error descriptions. Hovering
- over a node output will first show a tooltip with the type information and
- then, after some time, will show the visualization of the node. This preview
- visualization will be located above other nodes, whereas the normal view, will
- be shown below nodes. Errors will show the preview visualization immediately.
- Nodes without type information will also show the visualization immediately.
- You can enter a quick preview mode by pressing ctrl (or command on macOS),
- which will show the preview visualization immediately when hovering above a
- node's output port.
-- [Database Visualizations][1335]. Visualizations for the Database library have
- been added. The Table visualization now automatically executes the underlying
- query to display its results as a table. In addition, the SQL Query
- visualization allows the user to see the query that is going to be run against
- the database.
-- [Histogram and Scatter Plot now support Dataframes.][1377] The `Table` and
- `Column` datatypes are properly visualized. Scatter Plot can display points of
- different colors, shapes and sizes, all as defined by the data within the
- `Table`.
-- [Many small visual improvements.][1419] See the source issue for more details.
-- The dark theme is officially supported now. You can start the IDE with the
- `--theme=dark` option to enable it.
-- You can hide the node labels with the `--no-node-labels` option. This is
- useful when creating demo videos.
-- [Added a Heatmap visualization.][1438] Just as for the Scatter Plot, it
- supports visualizing `Table`, but also `Vector`.
-- [Add a background to the status bar][1447].
-- [Display breadcrumbs behind nodes and other objects][1471].
-- [Image visualization.][1367]. Visualizations for the Enso Image library. Now
- you can display the `Image` type and a string with an image encoded in base64.
- The histogram visualization has been adjusted, allowing you to display the
- values of the precomputed bins, which is useful when the dataset is relatively
- big, and it's cheaper to send the precomputed bins rather than the entire
- dataset.
-- [Output type labels.][1427] The labels, that show the output type of a node on
- hover, appear now in a fixed position right below the node, instead of a
- pop-up, as they did before.
-
-
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
-
-#### Visual Environment
-
-- [Not adding spurious imports][1209]. Fixed cases where the IDE was adding
- unnecessary library imports when selecting hints from the node searcher. This
- makes the generated textual code much easier to read, and reduces the
- likelihood of accidental name collisions.
-- [Hovering over an output port shows a pop-up with the result type of a
- node][1312]. This allows easy discovery of the result type of a node, which
- can help with both debugging and development.
-- [Visualizations can define the context for preprocessor evaluation][1291].
- Users can now decide which module's context should be used for visualization
- preprocessor. This allows providing visualizations with standard library
- functionalities or defining utilities that are shared between multiple
- visualizations.
-- [Fixed an issue with multiple instances of the IDE running.][1314] This fixes
- an issue where multiple instances of the IDE (or even other applications)
- could lead to the IDE not working.
-- [Allow JS to log arbitrary objects.][1313] Previously using `console.log` in a
- visualisation or during development would crash the IDE. Now it correctly logs
- the string representation of the object. This is great for debugging custom
- visualizations.
-- [Fix the mouse cursor offset on systems with fractional display
- scaling][1064]. The cursor now works with any display scaling, instead of
- there being an offset between the visible cursor and the cursor selection.
-- [Disable area selection][1318]. The area selection was visible despite being
- non-functional. To avoid confusion, area selection has been disabled until it
- is [correctly implemented][479].
-- [Fix an error after adding a node][1332]. Sometimes, after picking a
- suggestion, the inserted node was spuriously annotated with "The name could
- not be found" error.
-- [Handle syntax errors in custom-defined visualizations][1341]. The IDE is now
- able to run properly, even if some of the custom visualizations inside a
- project contain syntax errors.
-- [Fix issues with pasting multi-line text into single-line text fields][1348].
- The line in the copied text will be inserted and all additional lines will be
- ignored.
-- [Users can opt out of anonymous data gathering.][1328] This can be done with
- the `--no-data-gathering` command-line flag when starting the IDE.
-- [Provide a theming API for JavaScript visualizations][1358]. It is now
- possible to use the Enso theming engine while developing custom visualizations
- in JavaScript. You can query it for all IDE colors, including the colors used
- to represent types.
-- [You can now start the IDE service without a window again.][1353] The command
- line argument `--no-window` now starts all the required backend services
- again, and prints the port on the command line. This allows you to open the
- IDE in a web browser of your choice.
-- [JS visualizations have gestures consistent with the IDE][1291]. Panning and
- zooming now works just as expected using both a trackpad and mouse.
-- [Running `watch` command works on first try.][1395]. Running the build command
- `run watch` would fail if it was run as the first command on a clean
- repository. This now works.
-- [The `inputType` field of visualizations is actually taken into
- consideration][1384]. The visualization chooser shows only the entries that
- work properly for the node's output type.
-- [Fix applying the output of the selected node to the expression of a new
- node][1385]. For example, having selected a node with `Table` output and
- adding a new node with expression `at "x" == "y"`, the selected node was
- applied to the right side of `==`: `at "x" == operator1."y"` instead of
- `operator1.at "x" == "y"`.
-- [`Enso_Project.data` is visible in the searcher][1393].
-- [The Geo Map visualization recognizes columns regardless of the case of their
- name][1392]. This allows visualizing tables with columns like `LONGITUDE` or
- `Longitude`, where previously only `longitude` was recognized.
-- [It is possible now to switch themes][1390]. Additionally, the theme manager
- was integrated with the FRP event engine, which has been a long-standing issue
- in the IDE. Themes management was exposed to JavaScript with the
- `window.theme` variable. It is even possible to change and develop themes live
- by editing theme variables directly in the Chrome Inspector. Use the following
- command to give this a go:
- `theme.snapshot("t1"); theme.get("t1").interactiveMode()`.
-- [The active visualization is highlighted.][1412] Now it is clearly visible
- when the mouse events are passed to the visualization.
-- [Fixed an issue where projects containing certain language constructs failed
- to load.][1413]
-- [Fixed a case where IDE could lose connection to the backend after some
- time.][1428]
-- [Improved the performance of the graph editor, particularly when opening a
- project for the first time.][1445]
-
-#### EnsoGL (rendering engine)
-
-- [Unified shadow generation][1411]. Added a toolset to create shadows for
- arbitrary UI components.
-
-#### Enso Compiler
-
-If you're interested in the enhancements and fixes made to the Enso compiler,
-you can find their release notes
-[here](https://github.com/enso-org/enso/blob/develop/RELEASES.md#enso-0210-2021-04-07).
-
-[1064]: https://github.com/enso-org/ide/pull/1064
-[1209]: https://github.com/enso-org/ide/pull/1209
-[1291]: https://github.com/enso-org/ide/pull/1291
-[1311]: https://github.com/enso-org/ide/pull/1311
-[1313]: https://github.com/enso-org/ide/pull/1313
-[1314]: https://github.com/enso-org/ide/pull/1314
-[1316]: https://github.com/enso-org/ide/pull/1316
-[1318]: https://github.com/enso-org/ide/pull/1318
-[1328]: https://github.com/enso-org/ide/pull/1328
-[1355]: https://github.com/enso-org/ide/pull/1355
-[1332]: https://github.com/enso-org/ide/pull/1332
-[1341]: https://github.com/enso-org/ide/pull/1341
-[1341]: https://github.com/enso-org/ide/pull/1341
-[1348]: https://github.com/enso-org/ide/pull/1348
-[1353]: https://github.com/enso-org/ide/pull/1353
-[1395]: https://github.com/enso-org/ide/pull/1395
-[1363]: https://github.com/enso-org/ide/pull/1363
-[1384]: https://github.com/enso-org/ide/pull/1384
-[1385]: https://github.com/enso-org/ide/pull/1385
-[1390]: https://github.com/enso-org/ide/pull/1390
-[1392]: https://github.com/enso-org/ide/pull/1392
-[1393]: https://github.com/enso-org/ide/pull/1393
-[479]: https://github.com/enso-org/ide/issues/479
-[1335]: https://github.com/enso-org/ide/pull/1335
-[1358]: https://github.com/enso-org/ide/pull/1358
-[1377]: https://github.com/enso-org/ide/pull/1377
-[1411]: https://github.com/enso-org/ide/pull/1411
-[1412]: https://github.com/enso-org/ide/pull/1412
-[1419]: https://github.com/enso-org/ide/pull/1419
-[1413]: https://github.com/enso-org/ide/pull/1413
-[1428]: https://github.com/enso-org/ide/pull/1428
-[1438]: https://github.com/enso-org/ide/pull/1438
-[1367]: https://github.com/enso-org/ide/pull/1367
-[1445]: https://github.com/enso-org/ide/pull/1445
-[1447]: https://github.com/enso-org/ide/pull/1447
-[1471]: https://github.com/enso-org/ide/pull/1471
-[1511]: https://github.com/enso-org/ide/pull/1511
-
-
-
-# Enso 2.0.0-alpha.2 (2020-03-04)
-
-This is a release focused on bug-fixing, stability, and performance. It improves
-the performance of workflows and visualizations, and improves the look and feel
-of the graphical interface. In addition, the graphical interface now informs the
-users about errors and where they originate.
-
-
![New Learning Resources](/docs/assets/tags/new_learning_resources.svg)
-
-- [Learn how to define custom data visualizations in
- Enso][podcast-custom-visualizations].
-- [Learn how to use Java libraries in Enso, to build a
- webserver][podcast-java-interop].
-- [Learn how to use Javascript libraries in Enso, to build custom server-side
- website rendering][podcast-http-server].
-- [Discover why Enso Compiler is so fast and how it was built to support a
- dual-representation language][podcast-compiler-internals].
-- [Learn more about the vision behind Enso and about its planned
- future][podcast-future-of-enso].
-
-
![New Features](/docs/assets/tags/new_features.svg)
-
-#### Visual Environment
-
-- [Errors in workflows are now displayed in the graphical interface][1215].
- Previously, these errors were silently skipped, which was non-intuitive and
- hard to understand. Now, the IDE displays both dataflow errors and panics in a
- nice and descriptive fashion.
-- [Added geographic map support for Tables (data frames).][1187] Tables that
- have `latitude`, `longitude`, and optionally `label` columns can now be shown
- as points on a map.
-- [Added a shortcut for live reloading of visualization files.][1190] This
- drastically improves how quickly new visualizations can be tested during their
- development. This is _currently_ limited in that, after reloading
- visualization definitions, the currently visible visualizations must be
- switched to another and switched back to refresh their content. See the [video
- podcast about building custom visualizations][podcast-custom-visualizations]
- to learn more.
-- [Added a visual indicator of the ongoing standard library compilation][1264].
- Currently, each time IDE is started, the backend needs to compile the standard
- library before it can provide IDE with type information and values. Because of
- that, not all functionalities are ready to work directly after starting the
- IDE. Now, there is a visible indication of the ongoing background process.
-- [Added the ability to reposition visualisations.][1096] There is now an icon
- in the visualization action bar that allows dragging the visualization away
- from a node. Once the visualization has been moved, another icon appears that
- can pin the visualization back to the node.
-- [There is now an API to show Version Control System (like Git) status for
- nodes][1160].
-
-
![Bug Fixes](/docs/assets/tags/bug_fixes.svg)
-
-#### Visual Environment
-
-- [You can now use the table visualization to display data frames][1181]. Please
- note, that large tables will get truncated to 2000 entries. This limitation
- will be lifted in future releases.
-- [Performance improvements during visual workflow][1067]. Nodes added with the
- searcher will have their values automatically assigned to newly generated
- variables, which allows the Enso Engine to cache intermediate values and hence
- improve visualization performance.
-- [Minor documentation rendering fixes][1098]. Fixed cases where text would be
- misinterpreted as a tag, added support for new tag types, added support for
- more common characters, properly renders overflowing text.
-- [Improved handling of projects created with other IDE versions][1214]. The IDE
- is now better at dealing with incompatible metadata in files, which stores
- node visual position information, the history of chosen searcher suggestions,
- etc. This will allow IDE to correctly open projects that were created using a
- different IDE version and prevent unnecessary loss of metadata.
-- Pressing and holding up and down arrow keys make the list view selection move
- continuously.
-- The shortcuts to close the application and to toggle the developer tools at
- runtime now work on all supported platforms.
-- [The loading progress indicator remains visible while IDE initializes][1237].
- Previously the loading progress indicator completed too quickly and stopped
- spinning before the IDE was ready. Now it stays active, giving a visual
- indication that the initialization is still in progress.
-- [Fixed visual glitch where a node's text was displayed as white on a white
- background][1264]. Most notably this occurred with the output node of a
- function generated using the node collapse refactoring.
-- Many visual glitches were fixed, including small "pixel-like" artifacts
- appearing on the screen.
-- [Several parser improvements][1274]. The parser used in the IDE has been
- updated to the latest version. This resolves several issues with language
- constructs like `import`, lambdas, and parentheses, whereupon typing certain
- text the edit could be automatically reverted.
-- [The auto-import functionality was improved][1279]. Libraries' `Main` modules
- are omitted in expressions inserted by the searcher. For example, the `point`
- method of `Geo` library will be displayed as `Geo.point` and will insert
- import `Geo` instead of `Geo.Main`.
-- Cursors in text editors behave correctly now (they are not affected by scene
- pan and zoom). This was possible because of the new multi-camera management
- system implemented in EnsoGL.
-- [Fixed method names highlighted in pink.][1408] There was a bug introduced
- after one of the latest Engine updates, that sent `Unresolved_symbol` types,
- which made all methods pink. This is fixed now.
-
-#### EnsoGL (rendering engine)
-
-- A new multi-camera management system, allowing the same shape systems to be
- rendered on different layers from different cameras. The implementation
- automatically caches the same shape system definitions per scene layer in
- order to minimize the amount of WebGL draw calls and hence improve
- performance.
-- A new depth-ordering mechanism for symbols and shapes. It is now possible to
- define depth order dependencies between symbols, shapes, and shape systems.
-- Various performance improvements, especially for the text rendering engine.
-- Display objects handle visibility correctly now. Display objects are not
- visible by default and need to be attached to a visible parent to be shown on
- the screen.
-
-#### Enso Compiler
-
-If you're interested in the enhancements and fixes made to the Enso compiler,
-you can find their release notes
-[here](https://github.com/enso-org/enso/blob/develop/RELEASES.md#enso-026-2021-03-02).
-
-[1067]: https://github.com/enso-org/ide/pull/1067
-[1096]: https://github.com/enso-org/ide/pull/1096
-[1098]: https://github.com/enso-org/ide/pull/1098
-[1181]: https://github.com/enso-org/ide/pull/1181
-[1215]: https://github.com/enso-org/ide/pull/1215
-[1160]: https://github.com/enso-org/ide/pull/1160
-[1190]: https://github.com/enso-org/ide/pull/1190
-[1187]: https://github.com/enso-org/ide/pull/1187
-[1068]: https://github.com/enso-org/ide/pull/1068
-[1214]: https://github.com/enso-org/ide/pull/1214
-[1237]: https://github.com/enso-org/ide/pull/1237
-[1264]: https://github.com/enso-org/ide/pull/1264
-[1274]: https://github.com/enso-org/ide/pull/1274
-[1279]: https://github.com/enso-org/ide/pull/1279
-[podcast-java-interop]:
- https://www.youtube.com/watch?v=bcpOEX1x06I&t=468s&ab_channel=Enso
-[podcast-compiler-internals]:
- https://www.youtube.com/watch?v=BibjcUjdkO4&ab_channel=Enso
-[podcast-custom-visualizations]:
- https://www.youtube.com/watch?v=wFkh5LgAZTs&t=5439s&ab_channel=Enso
-[podcast-http-server]:
- https://www.youtube.com/watch?v=BYUAL4ksEgY&ab_channel=Enso
-[podcast-future-of-enso]:
- https://www.youtube.com/watch?v=rF8DuJPOfTs&t=1863s&ab_channel=Enso
-[1312]: https://github.com/enso-org/ide/pull/1312
-[1408]: https://github.com/enso-org/ide/pull/1408
-
-
-
-# Enso 2.0.0-alpha.1 (2020-01-26)
-
-This is the first release of Enso, a general-purpose programming language and
-environment for interactive data processing. It is a tool that spans the entire
-stack, going from high-level visualization and communication to the nitty-gritty
-of backend services, all in a single language.
-
![Release Notes](/docs/assets/tags/release_notes.svg)
#### Anonymous Data Collection
@@ -2042,14 +12,6 @@ snippets of out of context code that specifically leads to the error, like "the
method 'foo' does not exist on Number". The following data will be collected:
- Session length.
-- Graph editing events (node create, dele, position change, connect, disconnect,
- collapse, edit start, edit end). This will not include any information about
- node expressions used.
-- Navigation events (camera movement, scope change).
-- Visualization events (visualization open, close, switch). This will not
- include any information about the displayed data nor the rendered
- visualization itself.
- Project management events (project open, close, rename).
-- Errors (IDE crashes, WASM panics, Project Manager errors, Language Server
- errors, Compiler errors).
-- Performance statistics (minimum, maximum, average GUI refresh rate).
+- Errors (IDE crashes, Project Manager errors, Language Server errors, Compiler
+ errors).