Ideas List - Google Summer of Code 2018

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

Thijs Schreijer - thijs@thijsschreijer.nl

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

Thijs Schreijer - thijs@thijsschreijer.nl

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

Daurnimator - quae@daurnimator.com

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

Hisham Muhammad - h@hisham.hm

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

Mentor

Hisham Muhammad - h@hisham.hm