- Extending
Boolean,Nothing,Textvia extension methods - Avoid exposing
Runtime.current_execution_environment& co.
- Add component alignment options.
- Components have Expanded/Collapsed modes. The effect is visible in Table.input components.
- Text widgets have a fixed maximum size in collapsed mode
- Fixed uploading corrupted projects to the cloud storage
- Drive is now a separate panel instead of tab.
- Fixed Ctrl-clicking enso:// links
- Opened project's Language Server process is restarted after a crash.
- Geo Map Visualization may display GeoSpatial data
- Component height can be resized
- Add right click menu for multiple components.
- Execution can be scheduled for the specific version tag
- Add component spacing options
- [A comment can be attached to the asset version][14923]
- New tabular view of session log with filtering
- Input ports no longer highlight on hover unless being connected to
- Fix duplicated entries in Component Browser. The overshadowed methods from parent types are no longer displayed.
- AI mode in Component Browser now uses underlying claude agent. The user has to have authorized Claude CLI executable in path.
- Usage page with cloud executions statistics available for Team users in Settings
- Minimum supported macOS version is now 12 (Monterey); Electron 41 no longer runs on Big Sur.
- Multiline if_then_else.
- Using dual JVM mode for
Standard.Microsoft. - Standard.Test pending field is lazy.
- Using dual JVM mode for
Standard.AWS. - Running
Standard.Tableauin dual JVM mode. - Polishing Standard.Test API.
- Add Amazon SES email provider
- Support for reading Alteryx YXDB files.
- Salesforce OAuth support.
- Launching another Enso process via
Process_Builder - Redshift schema support.
Process_Builder.set_env.- Expanded S3 API with versions and signed uri
- Support for reading JSON data from database connections.
- Support for Salesforce reporting API
- Add Redshift bulk loading
- JSON functions on Table and Column. XML and Hashset fixes.
- Add last_index_of
- Add pad_left and pad_right
- More control over when in write operation for post and process.
- Improve database write performance
- Hiding
Prim_Text_Helperfrom the API - Add reverse
- Support for Spatial aggregates and making lines and polygons.
Panic.rethrowkeeps original location- Use
State.get if_missingto avoid too frequentPanic.throw - [Lazily initialized local variables with
Ref.new lazy=True][14554]. - Flush system caches via
Runtime.gc - Removing
catch_primitivefrom the API polyglot java importloads classes from HotSpot JVM- Require opt-in to prefer local libraries
- One log file per execution
- Opt-in to get more detailed logs
- Automatically apply tail call optimizations
from Xyz import to_textcan import extension methods
- Resizing the right panel no longer causes content reflow.
- Allow selecting target type for Any.to method.
- Command Palette to search for arbitrary actions
- Fix mouse interactions with JSON visualization
- There is no need for adding
--no-sandboxflag in Ubuntu anymore. - The documentation panel opens to the scroll position at last close
- Autocompletion for Column methods in table expressions
- Autocompletion for Column names in table expressions
- When connecting to port a value with additional type, a necessary type cast is included
- Function docs in autocomplete in table expressions
- Many CLI arguments removed
- Support opening project by clicking on link in documentation
- Images may be added to assets descriptions
- Dragging edges from plus button on nodes is now possible
- JSON and SQL visualizations' content may be now selected and copied
- SQL visualization displays interpolated parameters properly
- Added immediate rename of user created components
- Multiple opened projects' tabs are now allowed
- Required arguments now have an arrow displayed on top of the port
- Connections between components may be selected with click and deleted with Delete key.
- Improved visuals of high components. Their contents is aligned to top.
- Context menu for connections.
- Warnings and Errors no longer become transparent
--headlessflag to run a project without the User Interface- "Delete and Connect Around" option in node's menu
- GeoMap visualization is now working without need of Mapbox Token in environment
- Fix non-visible button and wrong layout in GeoMap Visualization
- Added additonal file and site options for MS365 credentials
- Maximum height of the file browser is slightly reduced
- Fix mispositioned bottom panel
- "Paste component" option in graph menu
- Fix bug where Table Expressions weren't saved after finishing edit by mouse click
- Fix "What's new", "Documentation" and similar buttons opening external page twice
- Add
Date_Time_Column.set_time_zoneand.at_time_zoneto in-memory tables. - Fixed copying projects from Team directory to Local
- Implement
Text_Columnfor in-memory backend. - Implement
Text_Column.to_casefor in-memory backend. - Add support for gzip encoded return from web APIs.
- Fixes for JDBC connection and schema support for SQL Server.
- Change Column.length to Column.row_count.
- Add Text_Column.length and Text_Column.char_length.
- Add EDI_Format and support for reading ANSI X12 EDI files.
- Add support for reading xlsb Excel file format
- Add Text_Column.upper and Text_Column.lower.
- Microsoft 365 OAuth support.
- Add Text_Column.proper and Rename Case.Title->Case.Proper.
- Snowflake stage support for reading and writing files.
- Snowflake file format and copy into support.
- Snowflake bulk load API.
- Add error_on_missing_columns to more methods.
- Add
OneDrive_Fileto Microsoft 365 implementation. - Progress of
Runtime.sleepvisualized. - Add
Email.send - Full DuckDB Dialect.
- Initial Spatial support within DuckDB.
- Add email SMTP support.
- Read files into DuckDB both spatial and not.
- Implement Text_Column to_case for DB backends.
- Implement bulk loading to DuckDB.
- Implement
Text_Column.text_midfor in-memory and database backends. - Initial file writing from DuckDB.
- Parquet file reading and writing, DuckDB formats.
- Add Text_Column.index_of
- Trigonometry and other maths function on Column.
- Implement
Text_Column.left, right, and midfor in-memory and database backends. - Support for reading JSON lines files.
- Add Custom SQL to in database aggregates.
- Add spatial functions and
write_spatial_fileto DuckDB. - Add spatial function support to expressions.
- Add
Date_Columnclass, andfirst_of_monthandend_of_month. - Add
OneDrive.writeallowing a first API to write to OneDrive. - Add
Grouping_Method.Equal_Sumfor database backends. - Add
Grouping_Method.Standard_Deviationfor database backends. - Default
Data.fetchauto-detect to plain text or XML in certain cases - Add
Date_Time_Column.to_utc. - Add
Date_Column.first_of_week.
- Special handling of if ... then ... else construct
- Enso is "conversion and equality oriented" language
- Moving >, >=, <, <= to types where such operators make sense
- Moving warning releated methods outside of
Any - Moving error relelated methods outside of
Any - Defining to_text & co. as extension methods
- Register and
lookup_servicesin package.yaml - Open type check
Type&Anylets all visible types thru - Removal of --no-global-cache option
- Launching ydoc-server together with language-server
- Autocompletion for table expression builtin functions in table expressions
- Autocompletion for table expression operators and operands
- Update to GraalVM 25.0.1
- Apply block argument to non-application expression
- Add syntax highlighting for Table expressions
- Allow adding and reordering component group arguments
- Display component evaluation progress
- Editing multiline text literals is now supported
- Type annotations are now visible in the graph editor
- Component Browser shows methods with respect to possible type casts
- Add option to browse cloud for secret values
- Add option to create a new secret in the graph editor's cloud browser
- Allow editing grouped component argument names.
- Add ability to inspect column, row and value from right click on table viz
- Add option to browse cloud for folders
- File Browser Widget: Add ability to filter files by extension
- Add keyboard shortcuts for formatting documentation
- New right-side panel, unified between tabs.
- Allow selecting expected types for arguments of grouped components.
- Component documentation now uses Markdown instead of a custom Markdown-like format
- Methods for ‘intersection’ types are now visible in Component Browser.
- Allow marking grouped component arguments as required or providing a default value.
- New Right Panel Tab with Markdown Description Editor
- Panic on unresolved type checks in the IDE
- Fixed a bug, where "Free plan" user was redirected to Cloud directory, resulting in an Error page without option of returning back to Local.
- "Grouped Components" are renamed to "User Defined Components"
- Allow displaying cloud images using enso:// url in documentation
- File Browser Widget is used when editing file paths to datalinks
- When creating a node using the button on the port, the button can be dragged to set its location
- Graph is not moved when showing/resizing side panels.
- Add "Invite" button to the top bar when using a team or higher plan
- "Welcome Project" is automatically opened for new users
- Project and Setting tab may be now closed with shortcut. On Windows/Linux Ctrl+W or Ctrl + F4; on macOS: ⌘ + W.
- Improved Graph Editor's Top Bar responsiveness to width change.
- Changed animation of tabs highlight.
- Fixed hybrid project progress being lost in some circumstances
- Add rand, uuid, tomorrow, yesterday and randbetween
- Support for reading fixed-width-column data files.
- Added
row_limitparameter to theFixed_Widthformat. - Add Tableau Hyper write support
- Support character encodings when reading fixed-width files.
- Initial Microsoft Azure support
- Column inference for fixed-width files.
- Specify fixed-width file layout with a
VectororColumnof widths. - Use
Filter_Condition.Predicateto provide custom condition. - Support
skip_rowsandon_empty_fieldfor fixed-width files. - Add Google_Sheets.read
- Align the Generic JDBC Connection with the main Connection type
- Add
execute_queryto theConnectiontypes. Meta.metarecognizes functions asMeta.FunctionMeta.Unresolved_Symbolrenamed toMeta.Unresolved- Remane Google_Api library to Google
- Data.read_many now returns the read path as a char field
- Add prototype
find_group_numberfunction to Table - [Add support for custom and empty line endings to the fixed-width file format] 13554
- In-memory table
add_group_numbersupportsEqual_Sum. - In-memory table
add_group_numbersupportsStandard_Deviation. - Added
Data.fetch_manyto allow throttle fetching of APIs.
- Allow optional path for
--jvmoption ofproject-manager - Prevent
Metaaccess to private constructors and private fields - Encapsulating Private_Access constructor
- Upgrading Truffle (including its
JavaScript and
Python) to version
24.2.0. - Upgrade GraalVM from JDK 21 to JDK 24
- Use JAVA_TOOL_OPTIONS env variable to alter JVM arguments
- Check private access at resolution, not on invocation
- ENSO_IDE_MAPBOX_API_TOKEN environment variable should be provided to enable GeoMap visualization.
- Round ‘Add component’ button under the component menu replaced by a small button protruding from the output port..
- Quick Fix Import Button.
- Fixed nodes being selected after deleting other nodes or connections.
- Redo stack is no longer lost when interacting with text literals.
- Copy button on error message is fixed.
- Tooltips are hidden when clicking on a button.
- Fixed bug when clicking header in Table Editor Widget didn't start editing it
- When editing cells or header names in Table Editor Widget,
tabandenterkeys jumps to next cell/ next row respectively. - Fixed bugs occurring after renaming project from within graph editor.
- Users having "Team" plan or above may now access shared directories in Cloud File Browser
- Added support for rendering numbered and nested lists.
- Added buttons for editing top-level markdown elements in the documentation panel.
- Removed
#from default colum name - Cloud File Browser will display input for file name in components writing to (new) files.
- Cloud File Browser allows adding new directory in "writing" components
- In the documentation panel, text can now be made bold or italic using buttons
- Cloud File Browser allows renaming existing directories in "writing" components
- New Component Browser displaying list of groups
- "Insert link" button added to documentation panel
- Cloud File Browser, when opened first time after opening project, shows and highlights the currently set file
- It's easier to write numeric/text nodes in Component Browser. When typing digits only, any names containing digits are not the best match anymore. Also unclosed text literals will be automatically closed.
- Use server side filtering and sorting in table viz. Table viz rows are lazly loaded and filtering/sorting is done serverside improving experience for large datasets.
- Disable heatmap and histogram viz.
- Component Browser displays short summary of component's documentation
- Fixed color picker for selected nodes
- Updated Top Bar actions menu and made zoom controls always visible.
- Warning and Error messages does not obstruct output port - they become semi-transparent on port hover and pass all mouse interactions.
- For some types, Component Browser display special "suggestions" group
- Nested dropdowns are supported for Selection widget.
- Native Image mode is now on by default
- join_kind dropdown has icons to show how joins work
- Output port ‘plus’ button is hidden if there are existing outgoing connections
- Navigate up button for file browser and collapsed components
- Resizing visualization in Table.input component resizes the table widget too
- File Browser Widget warns when trying to override an existing file
- Add right-click context menu to the graph editor background
- Fixed appearance of Cloud Browser scrollbars
- Allow using
/to access files inside a directory reached through a data link. - Reducing helper methods in
Standard.Base.Meta. - Added Table.offset
- Implemented Generic JDBC connections.
- Added Column.offset
- Progress API
- When reading a Delimited file, if a row with more columns than expected is
encountered, extra columns can be added to the result.
- In
Delimitedformat, thekeep_invalid_rowssetting has been renamed toon_invalid_rows. The default behaviour was also changed to add any extra columns instead of discarding them.
- In
- Added DB_Table.offset for SQLServer
- Added DB_Table.offset for Snowflake, Postgres, SQLite
- Support for key-pair authentication in Snowflake connector.
- Support for generic JDBC connections through external drivers.
- Support for basic arithmetic operations as numbers in Expressions.
- Support for Regular Expressions in Enso Expressions.
- Support for pi() and e() in Enso Expressions.
- xlsx reader now does not read empty rows from the end of a worksheet
- Generic JDBC connections can be created with
Database.connect. - Added Table.generate_rows
- Added Regex_match to filter. Added Column.regex_match. Support for regex_match in the expression language
- Added
add_group_numberfor Postgres and SQLite. - Added
add_group_numberfor Snowflake and SQLServer. - Added
skip_nothingandreport_unmatchedarguments toVector.zip - Changed in-memory
Column.zipto matchTable.zip, removing thefunctionparameter - Added Regex_match for Postgres
- Added Regex_match for Snowflake
- Replace
use_bankersflag withRounding_Modein allroundmethods
- Promote broken values instead of ignoring them.
- Intersection types & type checks
- A constructor or type definition with a single inline argument definition was previously allowed to use spaces in the argument definition without parentheses. This is now a syntax error.
- Native libraries of projects can be added to
polyglot/libdirectory - Prefer module methods over
Anyinstance ones - Keep intersection type's self when dispatching Any instance methods
- Types without constructors can be public
- Symetric, transitive and reflexive equality for intersection types
- IR definitions are generated by an annotation processor
- Use fn... to reference any module function
- Improve error message for mismatched named argument application
- Registering a value as multiple managed resources is now an error.
- An operator block now applies to the whole preceding expression, rather than the last term on the line.
- Rows and Columns may be now removed in Table Input Widget. The option is available in right-click context menu.
- Rows and Columns may be now reordered by dragging in Table Input Widget
- Copying and pasting in Table Editor Widget now works properly
- Fix invisible selection in Table Input Widget
- Enable cloud file browser in local projects
- Changed the way of adding new column in Table Input Widget. The "virtual column" is replaced with an explicit (+) button.
- New dropdown-based component menu.
- Methods defined on Standard.Base.Any type are now visible on all components.
- Undo/redo buttons in the top bar.
- Size of Table Input Widget is preserved and restored after project re-opening
- Added application version to the title bar.
- Added "open grouped components" action to the context menu.
- Table Input Widget has now a limit of 256 cells.
- Added an error message screen displayed when viewing a deleted component.
- New documentation editor provides improved Markdown editing experience, and paves the way for new documentation features.
- You can now add images to documentation panel by pasting them from clipboard or by drag'n'dropping image files.
- "Write" button in component menu allows to evaluate it separately from the rest of the workflow.
- The documentation editor can now display tables
- The documentation editor supports the Markdown URL syntax, and uses it to render pasted URLs as links
- Table Input Widget is now matched for Table.input method instead of Table.new. Values must be string literals, and their content is parsed to the suitable type.
- Added dedicated function signature viewer and editor in the right-side panel.
- Visualizations on components are slightly transparent when not focused.
- New design for vector-editing widget
- The component menu can be opened by right-click; supports operations on multiple components; has a 'Copy Component' button
- New design for vector-editing widget.
- Default values on widgets are displayed in italic.
- Fixed bug causing Table Visualization to show wrong data.
- Pasting tabular data now creates Table.input expressions.
- No halo is displayed around components when hovering.
- The hover area of the component output port extended twice its size.
- The documentation editor and comment documentation support opening links with a key pressed, or via a popup when editing.
- Fixed a rare bug where the component position wasn't persisted after closing project
- In the table visualization and table widget, the table context menu can now be opened on OS X.
- Fix some UI elements drawing on top of visualization toolbar dropdown menus.
- Edges are now colored based on their source component.
- Highlight missing required arguments.
- Arrows in some drop-down buttons are now clearly visible
- The
enso://~path now resolves to user's home directory in the cloud. - The user may set description and labels of an Enso Cloud asset programmatically.
- DB_Table may be saved as a Data Link.
- Support for dates before 1900 in Excel and signed AWS requests.
- Added
Data.read_manythat allows to read a list of files in a single operation. - Added
Table.inputallowing creation of typed tables from vectors of data, including auto parsing text columns. - Enhance Managed_Resource to allow implementation of in-memory caches
- [Added
add_group_numberto the in-memory database.11818 - The reload button clears the HTTP cache.
- SQL Server Support for Aggregate
- Added
Download_Modeparameter toData.download. - Added
Table.geo_distanceto calculate the distance between two points. - The reload button clears the Enso Cloud request cache.
- The reload button clears the AuthenticationProvider, EnsoSecretReader and AuditLog caches.
- Arguments in constructor definitions may now be on their own lines
- The
:type operator can now be chained.
- Table Editor Widget displayed in
Table.newcomponent. - New design of Component Browser - the component list is under the input and shown only in the initial "component browsing" mode - in this mode the entire input is a filtering pattern (it is not interpreted as parts of code). After picking any suggestion with Tab or new button the mode is switched to "code editing", where visualization preview is displayed instead. Also the component browser help is now displayed in the right-side dock panel.
- Drilldown for XML
- Fixed issue where switching edited widget with tab key did not updated actual code
- Added fullscreen modes to documentation editor and code editor
- Fixed issue with node name assignment when uploading multiple files.
- Cloud file browser inserts
enso:paths - Fixed issue where drag'n'dropped files were not uploaded in cloud projects.
- Fixed files associations not properly registered on Windows
- Input components corresponding to function arguments are now displayed.
- Fixed "rename project" button being broken after not changing project name
- Numbers starting with dot (
.5) are accepted in Numeric Widget - Add support for interacting with graph editor using touch devices.
- Implemented in-memory and database mixed
Decimalcolumn comparisons. - Relative paths are now resolved relative to the project location, also in the Cloud.
- Added Newline option to Text_Cleanse/Text_Replace.
- Support for reading from Tableau Hyper files.
- Mixed Decimal/Float arithmetic now throws an error; mixed comparisons now attach warnings.
- Support for creating Atoms in expressions.
- IO.print without new line
- Add
Text.to_decimal. - Added
floor,ceil,truncto the in-memoryDecimalcolumn. - Added vectorized .round to the in-memory
Decimalcolumn. select_into_database_tableno longer defaults the primary key to the first column.- Extend the range of
floor,ceil,truncto values outside theLongrange. - Added
formatparameter toDecimal.parse. - Added
formatparameter toFloat.parse. - Implemented a cache for HTTP data requests, as well as a per-file response size limit.
- Overhauled Google Analytics APIs.
- Enforce conversion method return type
- Renaming launcher executable to ensoup
- Space-precedence does not apply to value-level operators
- Must specify
--replto enable debug server - Improved parser error reporting and performance
- "Add node" button is not obscured by output port
- Numeric Widget does not accept non-numeric input. This is to prevent node being completely altered by accidental code put to the widget.
- Redesigned "record control" panel. Now it contains more intuitive "refresh" and "write all" buttons.
- Warning messages do not obscure visualization buttons.
- Output component in collapsed function changed. It cannot be deleted anymore, except by directily editing the code.
- Improved handling of spacing around rounded node widgets, added support for widgets of arbitrary sizes.
- Multiselect drop-down widget visuals are improved.
- Text displayed in monospace and whitespace rendered as symbols.
- Renamed
Data.list_directorytoData.list. Removed list support from read methods. - Renamed
Location.StarttoLocation.LeftandLocation.EndtoLocation.Right. - Renamed
Postgres_Details.PostgrestoPostgres.Server. - Remove
FirstandLastfrom namespace, use auto-scoped. - Rename
MaptoDictionaryandSettoHashset. - Compare two objects with
Ordering.compareand define comparator withComparable.new - Added
decconstruction function for creatingDecimals. - Added initial read support for SQLServer
- Upgraded SQLite to version 3.46.1.
- Arrows navigation selected nodes may be moved around, or entire scene if no node is selected.
- Added a limit for dropdown width, implemented ellipsis and scrolling for long labels when hovered.
- Copy-pasting multiple nodes.
- The documentation editor has formatting toolbars.
- The documentation editor supports rendering images.
- Project may be renamed in Project View
- Fixed a bug where drop-down were not displayed for some arguments.
For example,
localeparameter ofEqual_Ignore_Casekind in join component. - Node previews: Node may be previewed by hovering output port while pressing Ctrl key (Cmd on macOS).
- Google Sheets clipboard support: Create a Table component when cells are pasted from Google Sheets.
- Fixed issue with two arrows being visible at once in drop-down widget.
- Fixed issue where picking "" variant in some ports disallowed changing it again.
- Added click through on table and vector visualisation clicking on index column will select row or value in seperate node
- Copied table-viz range pastes as Table component
- Added support for links in documentation panels.
- Added support for opening documentation in an external browser.
- Added a cloud file browser.
- Support for explicit --jvm option when launching
ensoCLI
- Added Statistic.Product
- Added Encoding.Default that tries to detect UTF-8 or UTF-16 encoding based on BOM
- Added
Decimalcolumn to the in-memory database, with some arithmetic operations. - Implemented
.castto and fromDecimalcolumns for the in-memory database. - Implemented fallback to Windows-1252 encoding for
Encoding.Default. - Added Table.duplicates component
- Renamed
Table.order_bytoTable.sort - Implemented
Decimalsupport for Postgres backend.
[debug-shortcuts]:
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.
- Project management events (project open, close, rename).
- Errors (IDE crashes, Project Manager errors, Language Server errors, Compiler errors).