Part 1: Lua project setup with LuaRocks

Setting up a project with Lua, running code, installing dependencies, code formatting and static analysis, as well as the editor setup.
This series of articles about Lua will cover different aspects of the language and the surrounding ecosystem. Though, not the language itself. There are far better resources for this, like the book Programming in Lua or the LuaUsers tutorial directory.
The series can be read one after the other, as every article builds on the one before, or jumped directly into a topic as pleased. In either case, the companion repository on GitHub will be available to have a look at the whole setup, from the latest commit or on a per article base available as branches.
At the end of this page are also some useful links, gathered throughout the article series.
Setting up a project with Lua, running code, installing dependencies, code formatting and static analysis, as well as the editor setup.
Using LuaRocks to create and build new packages, to then publish them to the official LuaRocks registry, and how to manage new versions.
Besides quick iterations on the command line, having a proper setup test suite for Lua will be crucial for any serious project.
Even with a good test suite, debugging will be necessary sooner or later. This article will go in depth, also showing how to profile a Lua application.
All about writing an own command line application in Lua, parsing arguments, taking user input, and showing a continues state in the terminal.
Growing applications have growing needs. This will cover how to manage those, with multiple projects inside one repository.
Lua being an "extensible extension language", it is perfect to extend and customize applications. This will go deeper into how in combination with C++.
LuaRocks supports not only uploading rocks written in Lua, but C as well. Here I will show how to create a C-Rock, build and publish, and how to manage platform specific code.