Lots of Lua projects (including Lua itself and LuaJIT) only release source code archives and expect users to build the project. On UNIX this is not really a problem but on Windows this can pose a significant hurdle for potential users. My Lua build bot is an attempt to solve this problem. While developing this build bot I took the following points into consideration:
I’m sorry to say that this project has been discontinued. My reasons for this are as follows (the below points are my opinions, I don’t necessarily expect anyone to agree with them):
I stopped using Windows, in fact I abandoned the complete Microsoft software stack
One reason for this is that I consider the Microsoft stack very unfriendly to developers who are (like me) oriented toward command line automation.
Another reason is the fact that quite a few of Microsoft’s build tools are commercially licensed and have restrictions on redistribution of software built using them.
I switched away from Microsoft Windows for personal use years ago and paying for a new license with every Microsoft Windows release just to keep this Lua build bot running feels absurd to me.
As a more general point, I don’t like where the development of Microsoft and Windows have been heading in the past couple of years.
I more or less stopped using Lua for personal projects :-(
When I originally fell in love with Lua the language I quickly got frustrated by the surrounding ecosystem because I wanted to use Lua as a general purpose language (admittedly not its original purpose).
Out of frustration I started working on Lua/APR to provide myself with a more generally useful “standard library” of operating system interfaces.
When I started developing Lua/APR I seriously underestimated my knowledge of low level systems programming, this is why it took me years to get the project to a state where I could be proud of it.
In the end I did get quite far with Lua/APR, eventually presenting it at the Lua Workshop 2011 and having it included in Debian.
Having Lua/APR available for operating system interfacing was nice, but what I really wanted from my favorite programming language was a rich ecosystem of bindings and packages. Even after creating Lua/APR I still regularly fell into the trap of wanting and not finding bindings to shared libraries. Creating such bindings for every project you want to work on quickly gets tiresome.
Starting from 2011 I got a full time job working as a software engineer and later system administrator (DevOps) working on Python projects and this slowly but surely pulled me away from the world of Lua. If you look at my GitHub profile now (in 2015) you’ll see what I mean :-).
For now, given this extensive explanation, I will keep the repository online, maybe it can serve as inspiration to others. Or who knows, maybe I’ll find a way to run Windows legally without paying for licenses and I can find a way to revive the build bot (no promises though). I still love Lua the language, so there’s one thing :-).
The following stuff has not yet been implemented but is on the to-do list:
luarocks install luasocket
would work in my environment but it doesn’t; msbuild
complains that the project files are incompatibleThe following packages have been built by the Lua build bot:
Release | Size | SHA1 hash |
---|---|---|
Lua 5.1.4 | 234K | b312a0f67fae85d0969edcccee3df3bb27b6c228 |
LuaJIT 1.1.7 | 255K | f58c039e0a890601d44f7026f36ed7e9a9de0990 |
LuaJIT 2.0.0 beta 8 | 269K | 7b3f8a8c4788e67c737137e69c9bbe39ba183410 |
Release | Size | SHA1 hash |
---|---|---|
LPeg 0.10.2 | 89K | 159a31446cc4c0f3a28e892c2c61d4bac52f25ee |
LuaSocket 2.0.2 | 126K | a6a8fe0763cd21160c4cde2f6da8df5095851c36 |
LuaFileSystem 1.5.0 | 70K | 9c482f761d4e7624215b62e0b807a59ff44a3309 |
Right now the build bot is meant to be run on my machine because it works in a very specific way, however I’m planning to make it more generally useful (and with a bit of persistence it should already be possible for other folks to get it running). At the moment I run the build bot as follows:
As I mentioned above the plan is to run the build bot from a cron job on a server, this is still a work in progress.
In order to run the build bot on Windows I installed the following software in the virtual machine:
gunzip
, tar
, wget
and unzip
from UnxUtilsI’m not publishing the virtual machine image because it was registered with my serial number and of course it’s quite big (more than 2 GB). However it’s not hard to create the virtual machine, it just takes a bit of time. Apart from installing the software mentioned above, there are only two things to configure in the virtual machine:
buildbot.cmd
to my Start → Programs → Startup menu so that the build bot runs automatically after the VM is started and shuts down the VM after building all projectsIf you have questions, bug reports, suggestions, etc. the author can be contacted at peter@peterodding.com. The latest version is available at http://peterodding.com/code/lua/buildbot and http://github.com/xolox/lua-buildbot.
This software is licensed under the MIT license.
© 2011 Peter Odding <peter@peterodding.com>.
Last updated Tue Mar 10 23:11:12 UTC 2015.