Skip to content

Lux Package Manager - #6005

Merged
WatchTheFort merged 1 commit into
beyond-all-reason:masterfrom
keithharvey:lux
Mar 19, 2026
Merged

Lux Package Manager#6005
WatchTheFort merged 1 commit into
beyond-all-reason:masterfrom
keithharvey:lux

Conversation

@keithharvey

@keithharvey keithharvey commented Oct 26, 2025

Copy link
Copy Markdown
Collaborator

Include the Lux package manager so that we can manage packages. Updates the README and adds core testing dependencies. Lux seems like it is set to become the de facto package manager for lua and it is also not luarocks.

Lux Docs

You can run lux update then immediately run busted, which whines there's no specs folder

See downstream Unit Testing PR, which should be merged at the same time as this.

@WatchTheFort WatchTheFort left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still need to look at the readme changes later

Comment thread lux.toml
Comment thread springignore.txt Outdated
Comment thread .luarc.json Outdated
Comment thread .luarc.json
Comment thread .luarc.json Outdated
@keithharvey keithharvey changed the title feat: add lux and busted test dependencies Lux Package Manager Oct 26, 2025
Comment thread README.md Outdated
@NortySpock

Copy link
Copy Markdown
Contributor

Looks like the actual CLI command is lx , so it would be lx update , not lux update

lx update
⠁ 📥 Downloading rockspec for busted==5ed85d0e016a5eb5eca097aa52905eedf1b180f1

But otherwise this does do what you mentioned -- it downloads the busted library without complaining.

@keithharvey

Copy link
Copy Markdown
Collaborator Author

Looks like the actual CLI command is lx , so it would be lx update , not lux update

Good call, fixed this in the readme, I had it aliased

@github-actions

github-actions Bot commented Oct 30, 2025

Copy link
Copy Markdown
Contributor

Test Results

16 tests  ±0   7 ✅ ±0   3s ⏱️ ±0s
 1 suites ±0   9 💤 ±0 
 1 files   ±0   0 ❌ ±0 

Results for commit a2ede82. ± Comparison against base commit cf64f44.

♻️ This comment has been updated with latest results.

@keithharvey

Copy link
Copy Markdown
Collaborator Author

Both this and Unit Test Bootstrapping are ready to go as far as I know. I updated the README with max-jobs beta from my travails in WSL trying to get lux update not to deadlock. But I think we're good to go here and I can help support this if anyone has any problems.

@keithharvey
keithharvey force-pushed the lux branch 2 times, most recently from 5551a6d to b9a42ea Compare November 5, 2025 18:39
@keithharvey

keithharvey commented Nov 7, 2025

Copy link
Copy Markdown
Collaborator Author

I’d suggest planning the full Lux transition in two phases for smoother adoption:

Phase 1 (this PR):

  • Introduce the Busted testing framework
  • Keep Lux optional and test it with a small group of devs to gauge friction
  • Limit usage to “extras” such as unit tests and code formatting tools

Phase 1.5 (i18n prep):

  • Add a dependency for kikito/i18n
  • Trace current i18n usage and document any behavior that relied on our fork (API, interpolation, pluralization, defaults, fallbacks)
  • Decide: short-lived compatibility shim vs. direct fixes in callers (record the choice and scope)
  • Add CI guardrails: fail on missing keys/unsafe interpolation; add a short migration checklist for contributors

Phase 2 (future work / includes recoil changes):

  • Update Recoil CI to publish recoil-lua-library as a Lux package, and ensure the code generation produces a canonical Lua rock/package directory structure.
  • Add a dependency so that BAR consumes that published package, and remove the recoil-lua-library submodule.
  • Announce that Lux is now a required part of the toolchain (Discord, announcements, monthly meetings, etc.)
  • (Recommended) fix all lx check errors and warnings, then enforce lx check && lx fmt succeeding in the CI and popularize commit hooks
  • (Recommended) Align BAR’s directory layout with the canonical Lua rock/package directory structure.
    We could support a transition period where Recoil loads both src/luarules and luarules, then — with the next engine version — finalize with a git mv into src/ in BAR. Rebases and merges should track across the move cleanly.

Comment thread lux.toml Outdated
@keithharvey
keithharvey marked this pull request as draft November 8, 2025 22:20
@keithharvey
keithharvey marked this pull request as ready for review November 9, 2025 18:48
Comment thread .luarc.json Outdated
@keithharvey
keithharvey force-pushed the lux branch 2 times, most recently from d4d87f6 to 8beccb7 Compare November 9, 2025 21:14
@keithharvey
keithharvey force-pushed the lux branch 5 times, most recently from 04df183 to 8d72234 Compare November 16, 2025 04:58
@NortySpock

Copy link
Copy Markdown
Contributor

LGTM

Comment thread lux.toml Outdated
@keithharvey
keithharvey force-pushed the lux branch 2 times, most recently from a92910f to 6a10455 Compare November 25, 2025 23:07
Comment thread .stylelua.toml
Comment thread lux.toml
Comment thread README.md
Include lux and add the busted and luassert test dependencies. Lux seems
 like it is set to become the de facto package manager for lua and it is
 also not luarocks.
@WatchTheFort
WatchTheFort merged commit 13e9a37 into beyond-all-reason:master Mar 19, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants