github stencila/stencila 0.23
Stencila 0.23

latest releases: v1.1.0, v1.0.5, v1.0.4...
pre-release7 years ago

This release includes a bit of maintenance and a bit of feature newness. There's a video about it if that's more your thing.

node module

We've introduced the node module which makes the Stencila components available from within Node.js. This allows you to write stencils and sheets using Javascript. It's still in initial development and pretty buggy but if you're interested in using Stencila from Node.js we'd appreciate your feedback. See the node/README.md and the video for more details.

meta module

The node module is built upon the new meta module. This module consists of YAML specifications of each Stencila component class (e.g. below). This allows use to generate consistent wrappers and documentation across target environments (e.g. Python, R, Node.js, Web API) whilst staying DRY. Again, it's still initial and is likely to change as we apply it to other modules.

name: Stencil
bases: [Component]

attrs:

  - name: cila
    type: property
    return: std::string
    brief: Get or set the content of this stencil as a Cila string

  - name: html
    type: property
    return: std::string
    brief: Get or set the content of this stencil as a HTML string

...

Module decoupling

The Stencila repo has a number of modules, cpp for the core C++ library, r for the R package, py for the Python package etc. These modules are coupled in that they all use the cpp module for the implementation of core functionality (which means that a lot of code does not have to be re-implemented in each language).

Previously, we had one gigantic Makefile that was used for building module packages and which dealt with the dependencies between modules. But it was cumbersome and unfamiliar to people used to non-make workflows specific to particular languages (e.g. using python setup.py install). So, with this release we have started decoupling the modules. They still rely on the C++ code but the humongous root Makefile is gone. Instead each module uses 'native' build and packaging tooling more.

We didn't get as far as was hoped in this release with decoupling and there is still quite a bit to do. Most of this is now targeted for release 0.25.

Mac OS X and Windows builds

Some progress has been made on builds for Mac OS X and Windows. Importantly, both are now a part of the continuous integration builds on Travis and Appveyor. There is a summary of the status of each OS build in the README.

Again, not as much progress as was hoped on this and we're hoping to get these completed for release 0.25.

Code coverage reporting

Code coverage statistics for each module are now getting reported for Travis builds to https://codecov.io/gh/stencila/stencila. Plenty of work to do in improving those stats!

Don't miss a new stencila release

NewReleases is sending notifications on new releases.