lua-users home
lua-l archive

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


Summary: We're using the Nuget[1] package management system with Lua
and I wanted to see if what we're doing sounded interesting to someone
else. :)

----

In our initial release of our project, we are targeting .Net
developers. This project uses about 6 Lua libraries (plus some  our
own), plus a few C/C++ dependencies. We've decided to go with the flow
and embrace Nuget, along with Coapp[2].

I made a Nuget package for Lua 5.3 Work 2 and am proceeding to create
individual libraries for each of the modules that we're using (some of
them are our own). Right now, the process is:

1: Create Visual Studio project for library[3]
2: Add in any dependencies the project has, through Nuget. This way,
updating and testing the package can happen in the build directory as
a self-contained sandbox. Example: nml[4] depends on nanomsg[5] and
Lua. Penlight depends on Lua, etc.
3: Create a coapp `.autopkg` file for the module.
4: Push it to our nuget server. Later, when this stabilizes and we
decide it's generally useful, we'll put it on Nuget's gallery.

All of this struck me as "automatable." Something like:

1: Build module with luarocks using MSBUILD / VS
2: parse rock file.
3: Translate to autopkg
4: Create nuget package.
5: Push to nuget and / or chocolatey[6], for people that are using Lua
on the desktop.

I'm pretty sure that distributing Lua with Chocolatey is a great idea
(currently Lua 5.1 is up). From there, you could do one or both of:

1: Make luarocks a nuget / chocolatey package and then have the user
use it for Lua modules.
2: Use nuget / chocolatey as the mechanism to distribute modules in
windows by forwarding packages through luarocks.

I'm not sure if Lua modules would be appreciated in the gallery or not...


Just some thoughts.


-Andrew


[1] http://nuget.codeplex.com/

[2] http://coapp.org/index.html  :: coapp helps with non-.Net
packages, although it's not strictly required and the status of this
project may be in up in the air, judging from the web site's latest (7
months?) post.
[3] This includes C/C++ and Lua-only projects, like Penlight. For Lua,
I'm using MSBUILD to copy files around and as an environment to track
nuget dependancies. For C libraries, special care must be taken to get
the libraries to install in the proper directories, but it's working
fine.
[4] https://github.com/trms/nml
[5] http://nanomsg.org/
[6] https://chocolatey.org/ :: like apt-get / home-brew, but for Windows