[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Google Summer of Code 2013
- From: Peter Drahoš <drahosp@...>
- Date: Tue, 26 Feb 2013 11:41:19 +0100
On 25 Feb, 2013, at 23:45 , Eric Wing <firstname.lastname@example.org> 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. Currently we have two automated distribution tools LuaDist and LuaRocks 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.
* LuaDist already provides embedded API so you can install packages using the "dist" module.