Skip to content

Project: LuaRocks per project workflow

Hisham Muhammad edited this page May 14, 2018 · 7 revisions

LuaRocks per-project workflow

Pain point to fix

  • managing multiple rocks trees is complicated
    • LuaRocks is based on a 10+ year old design from when rubygems was the state of the art
    • new users expect a per-project behavior, npm-style

Proposed approach

  • a git-style .luarocks directory: if a .luarocks directory is found in the current directory (or any directories above it), it will become the "project root" directory
  • a new command, luarocks init sets up a project:
    • creates a .luarocks directory in the current directory
    • writes a template rockspec file if none exists
      • uses the machinery of luarocks write_rockspec, which does some git-specific detection, so the command should "do the right thing" when executed from inside a git clone
  • offer a bullet-proof way to run Lua and LuaRocks using the current project tree
    • Option 1:
      • creating lua and luarocks launcher scripts in the current directory that are hardcoded to use the project tree
    • Option 2:

Status

Open Questions

  • With Option 2, how do you use a different Lua interpreter (e.g. to test different Lua versions)
    • luarocks-5.1, luarocks-5.2, luarocks-5.3, luarocks-jit2.1, etc. binaries?

Clone this wiki locally