11:44 - 25 Jun 2016

Just exactly one month after my degree thesis (with distinction, f*ck yeah ;-) ) and with a lot of nights without sleep, we have available NodeOS 1.0.0-RC2.

There has been some problems lately with the packages and the build process, but they are due to the heavy changes on the architecture that I hope they are going to be better for the future. The main one, is the split of the different layers on independent, isolated and autonomous projects that are themselves published on NPM, but also (and that’s the important part) they have their own tests passing on SemaphoreCI and configured to work with GreenKeeper, so when we’ll move to 1.0.0 final we’ll be able to work on a real Rolling Release distro, and also there have been suggestion to include an autoupdater on NodeOS itself. As an implementation detail, these layers and submodules (like qemu, that it’s now published on npm) use extensively the prebuild-install module to distribute prebuild images of their components, so no more pop-corn & movies to build NodeOS but just only a coffee. Yes, build process it’s blasingly fast, and there’s also a lot of room for improvement so we could end up blurrying the line between install and compile times by merging both processes ;-)

Other important change due to the increasing number of installing problems is the movement to npm3 and deprecation of npm2, so now build process is deterministic, faster and use less memory (also in NodeOS disk images, that have decreased ;-) ). Only drawback is that since npm3 considers the install process a one-time execution it’s needed to split the install of the dependencies (npm install) and the generation of the NodeOS image (npm run build), but this also allow better flexibility and also remove the need of network connection when building the system since all the modules included on the NodeOS images has been set as dependencies of the NodeOS module itself, so they are getting cached for later.

But probably the most important change is Node.js, because not only it has got it’s own npm package downloading prebuild binaries based on musl (maybe we should propose to Node.js org to host and distribute them side-by-side with their glibc ones?), but also it has been upgraded to bleeding edge 6.2.2! :-D There has been some problems because /proc was not being mounted and it’s needed by musl, but thanks to it I give the chance to do some improvements to nodeos-init and now it’s easier to use and robust, cleanly clossing the system itself on shut-down :-)

Let’s more to 1.0.0! :-D


NodeOS is made possible by its many contributors around the world. Source code licensed under the MIT license.

Made with ❤️
and 🍺