lua-users home
lua-l archive

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


On Wed, Jan 14, 2009 at 4:53 AM, Michal Kolodziejczyk wrote:
> Michal Kolodziejczyk wrote:
>
>> 1. create a "lua open software repository" (LOSR) which would list all
>> known libraries, its homepage, status, short description.
>> It would be ideal if anyone could contribute (filling a web form, or
>> uploading a simple text file). Possibly it could be based on luarocks,
>> so people could upload their rockspecs, and possibly source tar.gz
>> archives. I like the way the archlinux' aur.archlinux.org works.
>
> BTW, hackel's hackage at http://hackage.haskell.org/ would be better
> example.

As I see it, hackage.haskell.org (Haskell), aur.archlinux.org (arch
linux), and search.cpan.org (Perl), all share a common structure.  A
package is an archive (zip or tar.gz) containing module source, a
package descriptor file, and sometimes other things like docs and
tests.  These packages can be indexed by a bot and presented in a
unified web-based interface.  There can even be multiple such web
interfaces independently maintained (e.g. CPAN has search.cpan.org and
cpan.uwinnipeg.ca) since anyone can write an interface for the
repository.

The framework for doing this in Lua is already there: LuaRocks[1] and
LuaDist[2] packages.  Someone just needs to write some scripts to
parse one (or both) of these repositories and present them in a web
interface.  The page [1] actually already does that but only in a very
limited sense compared to the Haskell/Linux/Perl examples above.

Earlier, I had set up LuaSearch[3] to index POD documentation for Lua
modules, but it didn't catch on.  However, this predated some of the
developments in LuaRocks and assumed people would use POD.  Today, I
would recommend instead the approach outlined above of indexing
LuaRocks/LuaDist repositories.  Perhaps, one would expose it through
Sputnik in a way similar to how Sputnik indexes mailing lists[4], but
this is only one of the possible implementations.

Even if we do maintain a central repository of Lua modules, there is
still something lacking.  A discussion that has come up a number of
times[5-7] on the Perl mailing lists concerns a need to independently
document the relationships between modules: this module supersedes
another module, this module is no longer maintained by the author,
here is a detailed review of the merits and differences of many
modules that overlap in functionality, etc.  In short, a user wants to
do "X" (e.g. X = "do bitwise operations"), but the user has a
difficult time finding and comparing the prior art of modules covering
X.  Personally, I think the Lua wiki, which is flexible and adaptable
to different purposes, is just fine for this.  A number of recent
pages[8-17] follow this basic concept of a review page that compares
multiple modules that are centered around a shared goal X.  Modules
here don't even need to be formally packaged and indexed, they don't
need to be registered on LuaForge, and they need not even be
restricted to "modules" (but rather patches and design patterns)--you
just link whatever you have to the wiki page and add whatever
discussion is most appropriate.

Perl also has a mailing list ("perl.module-authors") dedicated to
people authoring Perl modules.  Topics include naming of modules,
proper packaging, testing, API design, and asking for feedback on a
proposed module implementation.  It's an area for collaboration
between module authors.  This may be useful for Lua to mirror,
although the regular Lua and LuaRocks mail lists may sufficiently
cover such discussions.

[1] http://luarocks.luaforge.net/rocks/
[2] http://luadist.sourceforge.net/
[3] http://lua-users.org/wiki/LuaSearch
[4] http://lists.luaforge.net/pipermail/sputnik-list/2009-January/000443.html
[5] http://www.nntp.perl.org/group/perl.module-authors/2008/04/msg6386.html
[6] http://www.perlmonks.org/?node_id=513313
[7] http://www.nntp.perl.org/group/perl.module-authors/2004/07/msg2615.html
[8] http://lua-users.org/wiki/ModuleReview
[9] http://lua-users.org/wiki/BitwiseOperators
[10] http://lua-users.org/wiki/LuaBuildSystems
[11] http://lua-users.org/wiki/UnitTesting
[12] http://lua-users.org/wiki/GraphicalUserInterfaceToolkits
[13] http://lua-users.org/wiki/ObjectOrientedProgramming
[14] http://lua-users.org/wiki/MultiTasking
[15] http://lua-users.org/wiki/LuaImplementations
[16] http://lua-users.org/wiki/BindingCodeToLua
[17] http://lua-users.org/wiki/TableSerialization
[18] http://www.nntp.perl.org/group/perl.module-authors/