This repository has been archived by the owner on Jan 17, 2025. It is now read-only.
Releases: ibm-functions/composer
Releases · ibm-functions/composer
Composer.lower
- The composition json is now just the AST with no implicit lowering.
composer.lower(composition, [combinators])
is now exposed and gives control over the lowering (if desired).- The
compose
command has two new options:--lower
and--version
. - The combinators are now automatically derived from spec, e.g,
if: { args: [{ _: 'test' }, { _: 'consequent' }, { _: 'alternate', optional: true }], since: '0.4.0' }
. - The spec for the combinators is now exposed as well (
composer.combinators
). - The core language has shrunk thanks to
composer.mask
and a more aggressive use of lowering. - The fsm has fewer states.
- The code is now split into three components: 1 compiler component available client-side and server-side, 2 client-side composer, and 3 server-side conductor.
Composer.mask
Add composer.mask
combinator.
Usability and documentation
- Improve compose command messages
- Support defining actions from functions with names other than main
- Add a lot of documentation
- Update CLA recipient
Bug fixes
Use conductor actions to implement compositions and remove Redis dependency
- Composer generates conductor actions to implement compositions. This resolves double billing and restores substitution. Compositions support blocking invocations and may be exposed as web actions.
- Redis is no longer required to run compositions.
- The JSON serialization format has evolved to retain the original code structure (sequences, conditionals...). The compilation to finite state machines now happens when the action container is initialized.
- The scheduling code is stitched to the composition JSON to produce a self-contained action that implements the composition, resolving possible versioning or dangling reference issues.
- New constructs have been added including
finally
anddowhile
. - A composition may include the definition of component actions and compositions.
- A compose shell script is provided to serialize compositions to the JSON format and deploy them. An extension of the Javascript client for OpenWhisk can do the same. Deployment takes care of nested actions and compositions.
- The composer module regroups the client-side and server-side code in one file.
Initial release
v0.1.1 Initial commit