Light Table 0.8.0
10 Dec 2015 - Gabriel Horner
We are excited to announce an 0.8.0 release of LightTable! Many thanks to our contributors including Chris and Mike for the move to Electron. We are also fortunate to have added Kenny Evitt and Magnus Rundberget to the core team, both of whom have been critical in helping users and getting this release out. This release finalizes an important transition from LightTable being a Kodowa managed project to a community managed one.
Changelog
If we could give a theme for this release, we’d say it’s transition and maintainability. We have made major changes: switching to Electron, upgrading CodeMirror, revamping how LightTable is built from source, and revamping how plugins are distributed (hint: it’s all just data in this repository). For maintainability, we have gotten off forked dependencies and added significant documentation. This release has the following major changes:
- CHANGED: We have switched to Electron from NW.js
- CHANGED: LT’s releases and self-updating processes are completely in the open on Github
- ADDED: LT can be built from source with provided scripts across supported platforms
- ADDED: Most of LT’s node libraries are installed as npm dependencies instead of as forked libraries
- ADDED: Significant documentation. See more below
- FIX: Major usability issues on >= OSX 10.10
- CHANGED: 32-bit linux is no longer an official download. Building from source will still be supported
- FIX: ClojureScript eval for modern versions of ClojureScript
For more, see the full changelog.
Notes for plugin authors:
lt.objs.app/window-number
numbering now starts on 1 instead of 0. We encourage you to uselt.objs.app/first-window
- Use
lt.objs.platform/electron
set to true if your plugin needs to detect for behavior specific to LT versions before or after 0.8.0 (and electron). - The following fns have been removed:
lt.objs.thread/node-exe
andlt.objs.app/extract!
Documentation
While LightTable has a documentation site, there has been a concern around LightTable not having enough documentation, both for those who want to understand its internals and for those who want to become power users. We have heard those concerns and done the following to address them:
- For users, there is an active and growing wiki. See the FAQ for a number of common questions and answers.
- There are user guides for users coming from Emacs, coming from Vim, interested in contributing for the first time and better understanding configuration.
- For plugin authors, we have API docs which document the most common namespaces and functions. There is still more documentation to be done here but this is a good first step to supporting plugins with a public API.
- For plugins authors and contributors, there is a FAQ, a guide on understanding LT as an Electron app and documentation on running LightTable from source.
As we continue to improve documentation, we look forward to it enabling the community to better use, understand, and develop LightTable.
Next Steps
LightTable is built on two amazing communities, ClojureScript and CodeMirror. LightTable is primarily written in ClojureScript, which allows us to use immutable data instead of mutable objects, explicit state management, functional programming and much more. CodeMirror is the underlying editor which provides a 100+ language modes, dozens of addons and powerful vim and emacs keybindings. Unfortunately, LightTable has been running on old versions of both of these and it is time we fixed this. As part of our 0.9.0 milestone, we will be upgrading them to recent versions. We want to enable these communities to use their latest libraries and creations in LightTable. Aside from upgrades, we will continue to expand the community with more documentation, clean up LightTable internals and empower plugin authors with a powerful API and possibly even tools. Looking forward to what we can build together!
-Gabriel