Ideas List - Google Summer of Code 2018
- A GUI front-end for LuaRocks
- Auto-building Windows binaries
- Auto-building distro packages
- Static build support for LuaRocks
- A command to upgrade all installed rocks
- Unit tests for LuaRocks
A GUI front-end for LuaRocks
Brief explanation
A cross-platform GUI desktop front-end for LuaRocks. It should allow users to search for rocks, list installed rocks, install and remove them, view rock details, etc. There are some options on portable Lua toolkits for developing this front-end (WxLua, TekUI, QtLua, etc.)
A possible side-result of this project would be to define an API for interfacing the LuaRocks backend. The LuaRocks backend is currently accessible via the command-line tool, but an API is desired. By making a API wrapper around the command-line tool, this project could provide good insights into a design for an UI-agnostic API.
Knowledge prerequisites
- Lua
- LuaRocks experience is a plus
- some previous experience with UI APIs is preferred
Skill level
easy/medium
Mentor
Auto-building Windows binaries
Brief explanation
Making LuaRocks build binary rocks for Windows. By automatically building packages and repack them as binary rocks. Especially on the windows platform where users are less familiar with command line tools, let alone compilers and other build tools. The availability of binary rocks would reduce the entry barrier for using Lua on Windows.
Knowledge prerequisites
- Lua
- Windows
- LuaRocks is a plus
Skill level
medium
Mentor
Static build support for LuaRocks
Brief explanation
LuaRocks currently builds Lua modules as dynamic libraries. The aim of this project is to add support for building static libraries. The local manifest format needs to be extended. Also, research if it would be possible to make that work beyond the LuaRocks 'builtin' rockspec mode (including a possible extension of the rockspec format). Another possibility is adding a command that builds a custom interpreter bundling a set of rocks statically. Other targets benefitting from static builds could be embedded systems: research how to improve LuaRocks support for cross-compiling.
Knowledge prerequisites
- Lua
- LuaRocks experience is recommended
Skill level
medium
Mentor
A command to upgrade all installed rocks
Brief explanation
LuaRocks users have wanted luarocks upgrade
for a long
time, but implementing it is not trivial and will involve trade-offs (see
the GitHub issue
and
this
email). The goal of this project is to identify those trade-offs clearly,
document them, come to a decision regarding their resolution, and finally
implement the command.
Knowledge prerequisites
- Lua
- LuaRocks experience is recommended
Skill level
medium
Mentor
Unit tests for LuaRocks
Brief explanation
LuaRocks features an extensive test suite, but it is mostly comprised of black-box integration tests. The aim of this project is to produce a unit-test suite, to improve the maintainability of the tool and increase our code coverage.
Knowledge prerequisites
- Lua
- Basic understanding of unit testing
Skill level
easy