After three month of pleasure and pain, version 1.14 of the Enlightenment Foundation Libraries has finally been released. This is the sixth release I’ve managed as well as the sixth release to follow our time based release schedule.
How We Got Here
We aim for two months of development and one month of final stabilization. This can get problematic if we find problems late in the process, so we allow for some leeway here regarding the final release. We try to keep the delay within a week, and for 1.14 we have been two days late while chasing some of the bugs we considered to be show stoppers.
Setting such a short release cycle helps our users get quicker access to the newest features and fixes, and after 18 months of following this schedule, we seem to have found a good balance. To be successful with such a rapid release schedule, we continuously push our QA tools and infrastructure to keep up so we can find problems before we release, but this is a topic I’ll leave for another blog post.
The 1.14 release of EFL is the cooperative work of 77 authors who contributed over 1200 commits in a 12 week period to EFL in addition to another 300 commits to Elementary. Given the nature of time-based releases, we no longer wait for one big feature to get developed and finished before we finally release. Instead, we go with whatever we have ready at the given time.
Making Things Better
This release integrates Ector, a new retained rendering library that Evas will use to provide a vector graphics scene graph following the SVG specification. While not fully fleshed-out, the foundations are laid and we hope to get this working for the next releases.
Another area that has received significant changes is our Ecore DRM backend which speaks directly to libdrm. Its primary use is in Enlightenment for the Wayland compositor, and functionality has been added to support DPMS on outputs, set output, mark framebuffers as dirty, disable an output, output EDID parsing, and support libinput 0.8 and higher for the compositor.
Portability has also been improved, primarily for Windows and Mac OSX. While this is still a weak area for EFL, we have improved considerably over the last few releases. This could also be said for unit testing, where we are approaching a 40% function coverage with our current tests and are making plans to increase this significantly over the course of this year.
The Road Ahead
The merge window for 1.15 is already open and in less than a week we’ve received 236 commits, which leads me to believe this will be another busy release. These changes include improvements to the Elua library, which allows developers to use the Lua programming language in EFL applications. Lua is a simple scripting language that is easy to embed and allows developers to extend their application functionality.
Furthermore, numerous NEON intrinsics have been implemented to speed up various Evas operations on ARM hardware. Additionally, more changes to the Ecore DRM backend should allow the Enlightenment Wayland compositor to become more feature complete.
Last, but not least, a better debug infrastructure for backtraces and foundations for application profiling have been added to our code base and will hopefully be extended over the 1.15 release cycle. We aim for the first Monday of every third month for release, which makes the 3rd of August our goal for 1.15.