lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On 25 Feb, 2013, at 23:45 , Eric Wing <ewmailing@gmail.com> wrote:

> Google Summer of Code 2013 was announced on the 14th. Every year, we
> seem to bring this up at the last minute, so here's my attempt to kick
> off the discussion a bit earlier :)
> 
> So how about it?

What Lua really needs in my opinion is a standardized package structure similar to CPAN[1]. Currently we have two automated distribution tools LuaDist[2] and LuaRocks[3] that are reasonably similar with some philosophical differences. The deployment and building of modules is more or less solved (LuaRocks builds using various methods, LuaDist uses CMake). However the following issues are still present:

- Package names should reflect the modules installed by it

For example "luafilesystem" package provides "lfs" module and there is no way to efficiently match what packages provide which modules. Ideally these should match so we could install packages automatically if require does not find them using embedded APIs for LuaDist/LuaRocks*

- No documentation standard

Yes, we have multiple generators and some packages even generate nice documentation but most packages simply do not have any documentation. Additionally the documentation should be accessible from the interpreter itself so IDEs can access it directly. For example require "doc.luafilesystem"  would return documentation associated with the module (in some standardized form). Or require "api.luafilesystem" would contain a structure useful for autocomplete systems in IDEs etc.

- No testing standard

All packages should contain sets of regression tests so we can ensure quality of packages. Again this can also be implemented using require "test.luasocket" which would return test results directly in the interpreter in a standardized form.

- Generally very loose requirements

Both LuaDist and LuaRocks currently do not act as gatekeepers meaning we will include any packages we can if there is interest, however if we can agree on some minimal requirements that every package should meet it would greatly improve the overall quality of both distributions.

pd

* LuaDist already provides embedded API so you can install packages using the "dist" module.

[1] http://www.cpan.org/
[2] http://www.luadist.org/
[3] http://www.luarocks.org/