August 23, 2022

Lightning July 2022 Release

The Lightning project is moving towards a Quarterly release schedule. Our previous release was composed in July and our next release window will be end of October. If you want to get features, non-critical changes (i.e. non-blocking bug fixes) in everything that is submitted to the dev branch will be part of the quarterly release.
Lightning Quarterly release schedule

We will continue to make small patch releases on the release versions below. Major features or otherwise impactful changes will be made part of the next release in October.

How to contribute
  • Create your own fork of the Lightning repository.
  • Make your changes, push them to your local fork
  • Create a pull request against the dev branch.
  • Handle review comments, make changes if needed. Make sure the contributor license agreement is signed.
  • Once the pull request is merged, it will be part of the next release.

  • Easy like that, for more information on how to contribute to open source projects on github please see the workflow description here.


    Release information

    Lightning core: v2.7.0 changelog

    Lightning SDK: v5.0.1 changelog

    Lightning CLI: v2.8.1 changelog

    Lightning UI: v1.3.0 changelog



    Highlights

    TypeScript Support

    Long anticipated and much asked for, Lightning core now has support for TypeScript! Providing our TypeScript brothers & sisters with the definitions they need in order to be able to work with Lightning.

    You want an example do you? Say no more, you can find it here.

    TypeScript is a stricter superset of JavaScript, bringing a stricter syntactical language with optional static types. It transpiles down to JavaScript so any JavaScript program is inherently also a TypeScript program and vice versa. What does this mean for Lightning? It means that Lightning comes with a set typed definitions of its interfaces. Allowing a TypeScript project that imports Lightning to see what the interfaces are like, what kind of parameters they require and support. Including an extra layer of interface documentation through TSDoc.

    For more information please see a write up on TypeScript here.

    ColorShift support

    Lightning now supports color shifting the rendered screens and/or individual elements! This helps with certain types of color blindness, by slightly adjusting the color output thus "shifting" the colors along the color spectrum it allows for people who can not distinquish certain colors (e.g. brown and green) to still see difference in color that normally would be too close in the color spectrum. The color shifting effect can be done across the entire screen or an individual element. Color shifting within Lightning is entirely executed on the GPU and comes with little to no performance drawbacks. Providing color shifting accessibility features without making any changes to the application. Color shifta can be adjusted per individual application instance to meet the user's needs!

    ColorShift support

    Lightning provides support for the following color shifts:

    • Deuteranopia
    • Protanopia
    • Tritanopia
    • Monochromacy

    Please see our color shifting demo's here:

    Other notable changes

    • Fixes for Screen flickering issue by allowing the GL pipeline to be set into synchronous using `glReadPixels`
    • Flag to enable RAF idle usage using `pauseRafLoopOnIdle` flag
    • Incomplete text upload by adding an option to force canvas element as tx source using the `forceTxCanvasSource` flag