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 use lt.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 and lt.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:

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

Light Table Hack Night

13 Jan 2015 - Rob Attorri

Back in November we released v0.7.0 and made some big announcements about our new committers and turning Light Table and its documentation over to the community, but we left a couple things still up in the air that I’m happy to announce today - our new hire who will be spending part of his time working on Light Table, and also the inaugural Light Table Hack Night at our new office.

Meet the new guy

I’m extremely pleased to announce that we’ve brought on one of our commiters, Josh Cole, as our next hire. We named him as one of the new committers in the last blog post but he was still finishing up a project at his previous job and we wanted to let him finish that before we publicized his employment here. Josh caught our attention some time ago as a contributor to Light Table, most notably in November 2013 when he wrote his first LT plugin, Claire, a couple months before we open sourced Light Table and released the API for plugins, which left us duly impressed. He followed that up with another plugin called Recall and has been a standout in the community ever since. When we announced Eve and started looking for developers he got in touch with us, and the rest, as they say, is history. While we are still working primarily on Eve, Josh expressed a vested interest in continuing to further Light Table and will be spending a day per week or so working on that.

Hack Night

Good news everyone! We bought a table. A real, honest-to-goodness table that multiple people can sit around and dine, converse, work, and collaborate. Not only are we very proud of this development and the inherent progress it represents for our company but also excited for the events it will enable us to host. Our first Light Table hack night will take place on the night of January 28, starting around 7pm at our SOMA office in downtown San Francisco. If you’re in town and want to come voice your opinion for the future of Light Table, eat pizza and beer, and hack away, we’d love to have you. There will be plenty of stickers and t-shirts, so if you didn’t get any goodies back in the day from Kickstarter, this is a great opportunity to come stock up. We’ll be releasing the precise details and address on our discussion group soon, so sign up if you’re interested in participating but aren’t in the group yet, and keep your eye out for the thread. We look forward to seeing you!

-Rob

Big news in Light Table 0.7.0

19 Nov 2014 - Rob Attorri

Light Table 0.7.0 just went out, and in addition to being a fairly major update, we’ve got some fairly major news to accompany it. Some people expressed concern after Chris’s blog post about Eve that Light Table was being abandoned or forgotten, but hopefully some of the announcements today can assuage those concerns. The recent groundswell from the Light Table community has been impressive and we want to make sure we keep facilitating that growth, so with that in mind, there have been some big changes.

Meet the new Light Table committers

We have three new committers in addition to ourselves: Josh Cole, Gabriel Horner, and Mike Innes. Between the three of them, they represent some of Light Table’s biggest contributors and we’re incredibly fortunate that they’ve stepped up to help maintain everything moving forward. Since they’ve joined in, a ton has been happening with the project - everything from clearing out more than 300 issues on Github to working on a plan for the future. While Chris is still actively involved in both helping to figure out what to do and getting some of it done, these folks - and hopefully more as time goes on - represent the shift towards a community-owned Light Table.

More control for the community

To truly give the community control, we’ve put all the Light Table websites, docs, and plugin metadata onto Github and in doing so have removed the plugin servers and such that we managed. Everything is now hosted right off of Github so any changes the organization wants to make are live as soon as the pull request goes through. This means that Light Table’s progress is in no way hindered by us and it can move at whatever pace it needs to.

Light Table is now under the MIT license

In the interest of openness, we’ve also moved all the repos from the GPLv3 to the more permissive MIT license. This was driven by two things: the GPL was an impasse for a number of organizations who were interested in using Light Table as their canonical editor, so we’re pleased to be able to bring them into the fold; and we’ve found that the Contributor’s Agreement that the GPL necessitated was causing friction with our users. Contributing to Light Table should be as easy and open as is possible, so to remove all of the friction from the process, we’ve moved to a license that allows you to do pretty much anything and abolished the CA entirely. The only thing we’ve added is a small blurb into the CONTRIBUTING.md that says by contributing code to Light Table, you’re agreeing to release it under the MIT License as well. Our goal from the very beginning was to have Light Table and its direction in the hands of the those using it, and we think this is a great means to that end.

Staying involved

We’re not only grateful but proud of all the work the community has done recently for Light Table, but we ourselves are staying involved. We recently moved into a new office to accommodate the new hires we want to make, and once the dust settles we’re going to start doing Light Table hack nights. We haven’t decided on the schedule, but we’ll have food, drink, and Light Table swag, so if you didn’t get that sweet t-shirt you wanted from our Kickstarter, you’ll be able to complete your wardrobe. It’ll be a good opportunity to keep our ears to the ground for what folks want, which features need attention, and for anybody who has questions for Chris and/or Jamie about the code to come pick their brains. We figure we’ll do several of these hack nights each month, so once we come up with a good schedule and actually purchase a table that can accommodate such an event, there will be a blog post and a thread on the discussion group to let you know the when and where.

Probably the most exciting announcement for us is one that I can’t go into too much detail at the moment, but Jamie’s finally getting a work buddy early next year with our new hire. This person caught our attention some time ago and has been excited about the work we’re doing with both Light Table and Eve. Out of respect to their current employment situation I can’t name any names, but they will be dedicating a day a week or so to helping maintain and continue building on Light Table.

Big changes in 0.7.0 itself

This was a big clean up release with lots of little fixes, but there are a number of big changes that warranted it being a more significant version increase:

  • We’ve moved to the latest node-webkit and are now able to track nw’s progress directly since the menu changes made it upstream.
  • All plugin metadata is now hosted on github, this means that asking to remove/rename/change urls etc for plugins is just a matter of sending a PR.
  • Instead of having a disconnect between settings and plugins (which are really the same), every user now has a user plugin. This gives you a place to quickly create commands, tabs, behaviors, or whathaveyou without needing to jump through a bunch of hoops. This also means that your complete configuration with plugins and all can be zipped up and sent to someone.
  • Along with the user plugin, we’ve also changed the syntax of behavior and keymap files to make them much easier to both read and share. No more hunting for the right place to paste some behavior you’ve copied from someone else.

There’s a whole lot more, so check out the full change log for the gory details.

-Rob