Skip to content

Releases: ballerina-platform/ballerina-lang

Ballerina 0.94.0-M1 Released!

22 Oct 15:27
Compare
Choose a tag to compare
Pre-release

What’s new in Ballerina 0.94.0-M1

Ballerina language improvements

  • Allow binding functions to structs
  • Syncing connector declaration with the graphical view
    • Restricting Connector declaration to the top of an invocation unit
  • Improved worker semantics
    • Removed the ability to mix the default worker with other named workers
  • Introduction of “public” keyword for functions, connectors, struts, annotations and global variables
  • Introduction of “ballerina.builtin” package
    • Now error is a builtin struct and removed “ballerina.lang.errors” package

Ballerina APIs

  • Improved standard math API

Ballerina compiler improvements

  • Improved error and warning diagnostics

Ballerina connector improvements

  • Improved HTTPS support in both Server and Client connector
    • Allow configuring protocol version and cipher-suites
    • Support mutual SSL
  • Improved HTTP client connector to handle redirect responses
  • Introduce HTTP Request/Response structs to better handle HTTP
  • Includes Server connector configurations for Secure WebSockets (WSS)
  • WebSockets support for binary messages
  • WebSockets support for handshaking with subprotocols
  • WebSockets support for configuring and capturing idle connection timeout

Ballerina Composer improvements

  • Split-View editing with design and source
  • Revamped and improved layout with resizable panels
  • Remember user preferences across sessions
    • Panel Sizes
    • Active Panels
    • Last browsed folder in open/save wizards
  • New pluggable API for Composer front-end components
  • View semantic errors in source view
  • Embedded wizards in design view for configuring protocol specific annotation attributes
  • Embedded wizards for connector parameter configuration
  • Improved visual feedback for drag drop
    • Possible drop zones will be highlighted while dragging
  • Custom connector icons
  • Improved try-it console
  • Simplified target connector selection for connector action invocations
  • Transform statement
    • Unary, binary and ternary operator support in transformer
    • Collapsible view for operators, functions, source and target variables
    • Declaring target variables
    • Multiple output mapping from functions and operators with temporary variable assignment
    • Auto scrollable view for creating mapping connections
  • Introducing service types as top level tools in tool palette

Getting started

The Ballerina distributions and "Ballerina by Example" can be found at the GitHub release page. Ballerina API documentation will be included in the docs directory in ballerina-tools-0.94.0-M1.zip.

Ballerina 0.93 Released!

23 Aug 18:33
Compare
Choose a tag to compare
Pre-release

What’s new in Ballerina 0.93

Ballerina Runtime improvements

  • Introducing HTTP trace logs which dumps inbound and outbound requests at wire level.
  • Introducing HTTP OPTIONS verb support
  • Introducing server side HTTP access control (CORS) support.

Ballerina Composer improvements.

  • Context aware suggestions on design view. ( provided by language server )
  • Annotation view improvements.
    • Reduce the overall annotation height.
    • Collapsible annotations.
  • Toolbar.
  • Introducing multiple diagram views.
    • Default view.
    • Compact view.
    • Action VIew.
  • Transform.
    • Type lattice for type conversion and casting.
    • Add transform scope variables.
    • Collapsed view for source/target.
  • Improved debugger variable view.
    • Structured view for JSON and XML typed variables.

Getting started
You can download the Ballerina distributions, try samples, and read the documentation at http://ballerinalang.org.

Ballerina 0.92 Released!

13 Aug 04:17
Compare
Choose a tag to compare
Pre-release

What’s new in Ballerina 0.92

Ballerina Language improvements

  • String template literals, a new language feature which allows embedding expressions inside string literals. String template literals are enclosed by the ‘string’ keyword and back-quote characters. Expressions can be placed inside two curly braces ‘{{‘ within string template literals. E.g string Hello World {{name}}
  • Improved transaction semantics with ‘failed’ block and ‘retry’ statement. Ballerina has builtin support for transactional behaviour with ‘transaction’ statement. It has two blocks called ‘committed’ which is executed when a transaction is successfully committed and ‘aborted’ which is executed when a transaction is rolled back. The ‘failed’ block which is introduced in this release will be executed every time when a failures happens within the transaction block. Once the maximum retry count is reached, aborted block is executed.
  • Ability to use constants for annotation attribute values
  • Action invocation syntax changes.
  • SQL Connector API changes
  • Improved JSON/struct/map conversion
  • Improved HTTP resource configuration annotation

Ballerina Composer improvements.

  • Language Changes Support.
    • Filter Connector support in source view.
    • Transaction Failed / Retry Support.
    • Action invocation syntax change.
    • Support “returns” keyword in function definitions.
  • Design View Improvements.
    • Arrow conflict resolution.
    • Design view for lambda functions.
    • Connector Scoping support.
      • Connector support inside block statements. ( ie connectors can be declared inside if conditions )
      • Worker level connector isolation.
  • Transform Improvements.
    • Using language server to identify in scope variables and arguments.
    • Refactored transform UI with design improvements.
    • Support temporary variables as targets in function invocations.

Getting started
You can download the Ballerina distributions, try samples, and read the documentation at http://ballerinalang.org.

Ballerina 0.91 Released!

27 Jul 03:33
Compare
Choose a tag to compare
Pre-release

What’s new in Ballerina 0.91

Ballerina Language improvements

  • Filter connector framework for decorating connectors with additional capabilities.
  • Language support for XML Literals. Ballerina now allows you to define XML literals and validate them before the runtime. It also has support for XML attributes, namespaces.
  • HTTP service configuration annotation changes.
  • Function pointer type support. Allows passing function pointers as variables, arguments to functions and also as function return values.
  • Lambda (Anonymous Functions) support. Allows defining functions inline.
  • Introducing the ‘lengthof’ unary operator. It returns the length of an array.
  • Introducing ‘typeof’ unary operator. It returns the type of a variable.
  • Support for having expressions in constant declarations.
  • HTTP default resource support and produces/consumes dispatching annotations.

Ballerina Runtime improvements

  • Ballerina now supports serializing the compiled program. ‘ballerina build’ command produces the executable program file with the “balx” extension.
  • Introducing Ballerina User Repository.

Built-in APIs

  • XML to JSON and JSON to XML conversion support. Gives more flexibility to control the conversion with additional parameters.
    Connectors
  • FTP Server and Client Connectors. Allow listening to remote directories and performing I/O operations on remote files.
  • File System Server Connector. Allows listening to local file system directories.
  • Websocket client connector. Allows communicating with back-end services via ws:// and wss://

Ballerina Composer improvements.

  • Language Server improvements.
    • Resolve import items.
    • Suggestion of completion items while typing.
    • Resolve variables and symbols based on the scope.
    • Resolve the actions and functions of a certain package.
    • Resolve Parameter Context suggestions (Mainly the Types).
    • Resolve the Basic constructs like while, if, transformer, etc..
    • Code snippet suggestion and template insertion on select.
    • Sorted completion item list based on the scope.
  • Support for new language changes.
    • Function Pointers.
    • Continue Statement.
  • Diagram Export ( now supports png ).
  • Transform Statement improvements.
    • Parameter indexing to support mapping functions with multiple arguments.
    • Complex struct types support in intermediate functions.
    • Support mapping json variable fields that are constrained by a struct.
    • Improved user experience.
  • Try It for services based on swagger UI.
  • Annotation support for parameters.

Getting started
You can download the Ballerina distributions, try samples, and read the documentation at http://ballerinalang.org.

Ballerina 0.89 Released!

30 Jun 14:55
Compare
Choose a tag to compare
Pre-release

What’s new in Ballerina 0.89

Ballerina Runtime improvements

  • Introduction of ‘var’ keyword for declaration of assignment statements
  • Add support for 'continue' statement within ‘while’ loop
  • Redesign of ‘service’ declaration with protocol binding
  • New log API for logging messages within ballerina programs
  • New Date time API for manipulating date/time within ballerina programs
  • Add support for service interceptors
  • Improve HTTP transport performance and connection handling

Ballerina Composer improvements.

  • Language Server implementation. - With this you would get context aware suggestions in source view.
  • New service configuration UI.
  • Diagram export ( Currently support svg export. )
  • Transform Statement
    • Custom tool palette for transform which filters functions that can be used for mapping.
    • Support drawing nested function invocations for mappings.
    • UX improvements in the transform view.
    • Listing inscope variables and arguments to be used in the mappings.
  • Docerina Integration. - Will allow you to view API docs of packages from the composer.
  • New Undo/Redo Implementation - With this implementation undo/redo will work across design and source view.

Getting started
You can download the Ballerina distributions, try samples, and read the documentation at http://ballerinalang.org.

Ballerina 0.88 Released!

12 Jun 08:21
Compare
Choose a tag to compare
Pre-release

What’s new in Ballerina 0.88

Ballerina Language improvements

  • Blob type, a new value type, has been introduced in this release. Blob represents a sequence of bytes. It is similar to the string type which represents a sequence of characters.

  • Type cast and conversion expressions. Ballerina now clearly separates the type conversions from casts. Type casting allows you to look at a value as being of a different type than it’s original type. Type conversion transforms the value so that it can be interpreted as belonging to another type. There are safe and unsafe casts and conversions. For unsafe casts and conversions, Ballerina compiler will enforce you to use multi-return cast and conversion expression.

  • Improved XML type, now having the capability of representing a sequence of zero or more XML items where a single XML item can be an element, a text item, a comment or a processing instruction.

  • Transaction improvements - Support for the committed block is added, which get executed if the transaction is successfully committed. Both the aborted and committed blocks are optional with this release.

  • Ballerina function and action overloading has been removed from this release.

  • Fork-Join improvements. Now join and timeout blocks receives a map of any type array from the workers within fork-join block. Workers can send multiple values to the join/timeout block and within those blocks, user can identify which return values are received from which workers by using the returned map.

Built-in APIs

  • Datatable API redesign - The new API provides the ability to access the data in the result datatable in a more convenient way using the struct and type conversion support in Ballerina. Each data row of the datatable can be represented by a struct where the struct fields are matched with the column names/types in the datatable.This will eliminate the use of functions in the datatables package.

  • File API - Introduced built-in functions to perform basic file operations. They are available in the ballerina.lang.files package.

  • XML API - A new set of built-in functions have been introduced to the existing ballerina.lang.xmls package to support the improved XML type.

Ballerina Runtime improvements

  • Compiler and bytecode interpreter - with this release, Ballerina source files get compiled into platform-neutral Ballerina bytecodes and the new bytecode interpreter executes them. This is an internal change and it does not affect how you run and build services and main programs.

  • HTTP resource dispatching logic - with this release, HTTP resource dispatching searches for the most specific match when there is more than one candidate for a given request URI. Plus, query-parameters are not used to uniquely identify resources. These changes are done according to JAX-RS specification. In addition to that, service dispatching now supports default values for service, resource, path-param and query-param. Lastly, improved error messages related to dispatching to be concise and precise.

Ballerina Composer improvements.

  • Preserving existing formatting while editing a bal file. When editing a source file, white-spaces are preserved with the content and will not be altered during modifications in design view and when switching between source and design view.

  • Fork/Join support - From this release onwards, Ballerina Composer will provide users, the capability to add fork/ join statement.

  • Transaction support - With this release we introduce users, the capability of designing the transactions via the ballerina composer

  • Else If blocks - Now you can dynamically add else if blocks from design view. Else block is also made optional and can be added if needed.

  • Now you can search in the tool palette for constructs, functions, connectors and connector actions by typing in the search box. This will filter the constructs that can then be added to the diagram

  • Re-deploy option in launcher - allows to redeploy a already running ballerina program without having to stop and start again after making changes in the program.

  • Annotation Design - From this release onwards, users will be provided with an enhanced and interactive annotation design view to add, delete and edit the annotations.

  • Composer comes with a new package exploring functionality. Now the program directory will be used instead of a single .bal file to resolve functions, connectors etc. With this feature, users can explore other packages in the program directory and use them.

  • Transform statement now can use all the variables that are defined in the parent scope for mapping. Multiple input and output variables can also be used for the mapping. You can drag functions from tool palette to the transform statement and input variables and output variables can be mapped as function arguments and returns as the mapping. Structs with inner structs (complex types) can also be used for the mapping.

Ballerina 0.86

17 Apr 03:45
Compare
Choose a tag to compare
Ballerina 0.86 Pre-release
Pre-release

We are pleased to announce the 0.86 release of Ballerina.

This release contains following improvements.

  • Ability to use null literal and perform null checks in Ballerina
  • Remove long and double data types from Ballerina type system.
  • Now int data type in Ballerina is a 64-bit two's complement integer and the float data type is a double-precision 64-bit IEEE 754 floating point.
  • Default value support in Struct definitions
  • Concurrent consumer support in JMS Server connector.

Getting started

You can download the Ballerina distributions, try samples, and read the documentation at http://ballerinalang.org.

Thanks,
Ballerina Team

Ballerina 0.85

31 Mar 09:04
Compare
Choose a tag to compare
Ballerina 0.85 Pre-release
Pre-release

We are pleased to announce the 0.85 release of Ballerina.

This release contains following improvements.

  • Array of arrays support
  • Any type support
  • Ability to define Ballerina Annotations
  • Annotation attachment syntax change
  • Improve Ballerina Map semantics

More details on the improvements and bug fixes can be found on below location.

https://github.com/ballerinalang/ballerina/milestone-0.85

Getting started

You can download the Ballerina distributions, try samples, and read the documentation at http://ballerinalang.org.

Thanks,
Ballerina Team

Ballerina 0.84

30 Mar 09:22
Compare
Choose a tag to compare
Ballerina 0.84 Pre-release
Pre-release

We are pleased to announce the 0.84 release of Ballerina.

This release fixes the following issues.

https://github.com/ballerinalang/ballerina/issues_v0.84

Getting started

You can download the Ballerina distributions, try samples, and read the documentation at http://ballerinalang.org.

Thanks,
Ballerina Team

Ballerina 0.8.1

24 Feb 17:23
Compare
Choose a tag to compare
Ballerina 0.8.1 Pre-release
Pre-release

We are pleased to announce the 0.8.1 release of Ballerina Runtime. This release includes the following bug fixes.

https://github.com/ballerinalang/ballerina/milestone/6?closed=1

How to get Ballerina

You can download the ballerina 0.8.1 distribution from [1] or build from the source as mentioned in [2].

[1] https://github.com/ballerinalang/ballerina/tree/v0.8.1
[2] https://github.com/ballerinalang/ballerina#build-from-the-source

Open issues and reporting bugs

You can find the known issues in the following link and report any bugs in the same link: Known Issues

https://github.com/ballerinalang/ballerina/issues

How to contribute to ballerina

You can contribute to the ballerina development by forking the github repository and sending your pull requests to https://github.com/ballerinalang/ballerina