June 8th, 2015
by Alexander Wilden

Having just released LaxarJS v1.0.0, we’ve already been thinking about the next steps for LaxarJS. The main objective of the upcoming version is making it even easier to share widgets, controls and themes across projects:

  • We want developers to be able to install widgets using Bower. This is already possible for controls, and makes it much simpler to share and discover third-party widgets, as well as to manage widget dependencies. For this, we need to make sure that widgets can be referenced using AMD-paths, in addition to the current method of using a file system path relative to the widget root (laxar#129).

  • Currently, asset paths for the directory listings and for the release-bundle creation have to be configured for each project, using the Gruntfile. However, it is easy to forget making the necessary configuration changes after adding new widgets or controls. Instead, LaxarJS should detect the various artifacts (widgets, controls, layouts) by their descriptor file (widget.json, control.json and a new layout.json) and automatically list and/or embed the correct assets (the descriptor itself as well as HTML and CSS). Also, developers should be able to specify additional assets on a per-artifact basis (grunt-laxar#41).

  • LaxarJS already offers a so-called test bed that helps to load and instrument widgets in order to write spec tests. However, many of the testing idioms are not obvious for newcomers to LaxarJS. To alleviate this, we’d like to provide a new package laxar-testing with its own documentation (laxar#127, laxar#78).

  • Integration technologies should be used to load controls, just like they are being used to instantiate widgets. Currently, only AngularJS controls are supported. Also, we should check that integration technologies of controls and widgets are compatible (laxar#210).

  • Developers should be able to add nested layouts to their pages, by putting them into widget areas, just like widgets (laxar#193).

  • The (generated) documentation should be included into the dist-* packages (dist-laxar#1).

  • We need to make sure that AngularJS 1.4.x works with LaxarJS. We’re pretty sure that it already works, but we should upgrade our demo apps just to be safe (laxar#211).

Note that we follow semantic versioning guidelines, so we will implement all of these features without breaking existing behavior. In some cases, we may deprecate existing APIs, adding log messages accordingly.