[openstack-dev] [murano] [mistral] [yaql] Prepare to Yaql 1.0 release

Dmitri Zimine dzimine at stackstorm.com
Tue Aug 4 18:57:22 UTC 2015


This is great news Alex, was looking forward to it, will be happy to migrate Mistral. 

Some heads-up on what syntactically changed would be much appreciated to pass on to our users; 
we likely will catch much of them with Mistral tests, but some may bubble up. 

DZ. 

On Jul 27, 2015, at 2:04 AM, Alexander Tivelkov <ativelkov at mirantis.com> wrote:

> Hi folks,
> 
> We are finally ready to release the 1.0.0 version of YAQL. It is a
> huge milestone: the language finally looks the way we initially wanted
> it to look. The engine got completely rewritten, tons of new
> capabilities have been added. Here is a brief (and incomplete) list of
> new features and improvements:
> 
> * Support for kwargs and keyword-only args (Py3)
> * Optional function arguments
> * Smart algorithm to find matching function overload without side effects
> * Ability to organize functions into layers
> * Configurable list of operators (left/right associative binary,
> prefix/suffix unary with precedence)
> * No global variables. There can be  more than one parser with
> different set of operators simultaneously
> * List literals ([a, b])
> * Dictionary literals ({ a => b})
> * Handling of escape characters in string literals
> * Verbatim strings (`...`) and double-quotes ("...")
> * =~ and !~ operators in default configuration (similar to Perl)
> * -> operator to pass context
> * Alternate operator names (for example '*equal' instead of '#operator_=')
>  so that it will be possible to have different symbol for particular operator
>  without breaking standard library that expects operator to have well
> known names
> * Set operations
> * Support for lists and dictionaries as a dictionary keys and set elements
> * New framework to decorate functions
> * Ability to distinguish between functions and methods
> * Switchable naming conventions
> * Unicode support
> * Execution options available to all invoked functions
> * Iterators limitation
> * Ability to limit memory consumption
> * Can work with custom context classes
> * It is possible to extend both parser and set of expression classes
> on user-side
> * It is possible to create user-defined types (also can be used for
> dependency injection)
> * Legacy yaql 0.2.x backward compatibility mode
> * Comprehensive standard library of functions
> * High unit test coverage
> * Delegate and lambda support, including higher order lambdas
> 
> etc, etc.
> 
> So, this is a big change.
> 
> And as it always happens when moving from 0.something to 1.x the
> breaking changes are inevitable. We have included the "backwards
> compatibility mode", but it may not address all the possible concerns.
> 
> So.
> We have released a release candidate 1 of yaql 1.0.0 on pypi: [1]
> It includes all the new functionality and is likely to be identical to
> final release (that's why it is RC after all) and we strongly
> encourage all the yaql users (Murano and Mistral first of all) to try
> it and prepare "migration patches" to use it. When the final release
> is out, we'll update the global requirements to yaql >= 1.0.0, which
> is likely to break all your gate checks unless you quickly land a
> migrating patch.
> 
> Please email us any concerns or contact me (ativelkov) or Stan Lagun
> (slagun) directly in IRC (#murano) if you need some quick help on yaql
> 1.0 or migrating from 0.2.x
> 
> Happy yaqling!
> 
> 
> [1] https://pypi.python.org/pypi/yaql/1.0.0.0rc1
> 
> 
> --
> Regards,
> Alexander Tivelkov
> 
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




More information about the OpenStack-dev mailing list