[Types] all deterministic transforms - #7229
Closed
keithharvey wants to merge 6 commits into
Closed
Conversation
Contributor
keithharvey
force-pushed
the
mig
branch
2 times, most recently
from
March 27, 2026 05:24
f78dfaf to
a064e4b
Compare
This was referenced Mar 27, 2026
This was referenced Mar 28, 2026
keithharvey
force-pushed
the
mig
branch
7 times, most recently
from
March 31, 2026 03:27
ebcaa0a to
0e2ae48
Compare
This was referenced Mar 31, 2026
Closed
Closed
Closed
Closed
Closed
Closed
keithharvey
force-pushed
the
mig
branch
5 times, most recently
from
April 1, 2026 21:38
4228883 to
4ecaa74
Compare
Add Utilities, I18N, Debug, Lava, and GetModOptionsCopy to the System tables in luaui/system.lua and luarules/system.lua so that widgets and gadgets can access them after detach-bar-modules moves them off the Spring table. Also create .emmyrc.json (the EmmyLua analyzer config) with the detached modules in the globals list, plus type stubs for LSP/CLI support. The .emmyrc.json content matches what vscode-recommended-extensions ships, with 5 extra globals (Utilities/Debug/Lava/GetModOptionsCopy/I18N) that only become real top-level identifiers after detach-bar-modules runs. When vscode-recommended-extensions has already merged, -Xtheirs in the cherry-pick keeps this version (the superset). # Conflicts: # .emmyrc.json
Restructures the 20 files under luaui/Tests/, luaui/TestsExamples/,
plus the headless-only common/testing/infologtest.lua, from bare-
global hook declarations to a return-table shape. Updates the
dbg_test_runner widget to read test hooks from the returned table.
Motivation: the pre-existing shape required the test files to run
under setfenv(chunk, testEnvironment) and define `function test()`,
`function setup()`, etc. as bare module-level globals that setfenv
redirected into the environment. That works at runtime but emmylua
can't model the sandboxing — it sees 20+ files declaring project-
wide globals like `test`, `setup`, `skip`, `cleanup`. To keep
emmylua happy, .emmyrc.json had to blacklist both test directories
under workspace.ignoreDir — a kludge on clearly-ours code. Lives on
its own leaf so the convention change can be discussed in isolation.
Minimal shape change per file — just prepend `local` to each top-
level `function` declaration, and append a final `return { ... }`
block listing whichever lifecycle hooks (skip/setup/test/cleanup)
that file actually defines. Original indentation and formatting
preserved (no stylua reformatting noise — the fmt transform runs
after this one in the mig pipeline).
Runner patch — luaui/Widgets/dbg_test_runner.lua, loadTestFromFile:
- capture the return value of pcall(chunk)
- require it to be a table
- merge its keys into testEnvironment so runTestInternal still
reads bare `skip`/`setup`/`test`/`cleanup` under setfenv
Vendored LuaCATS annotations for busted/luassert to provide IntelliSense for the unit-test surface. Lives on its own leaf so the discussion around 'vendoring LuaCATS types' can happen in isolation — prior pushback on the same direction in an earlier unit-testing PR makes this the right place to litigate it rather than burying it in a broader env commit. Why vendored instead of declared as a Lux dep: Lux does not yet support pulling LuaCATS annotations from library deps, and quick attempts to wire this up in Lux failed. Upstream tracking issue: lumen-oss/lux#953 — once that lands, these directories should be deleted in favor of declaring busted as a normal Lux dev-dep. Sources (pinned SHAs): - types/busted/ https://github.com/LuaCATS/busted @ 5ed85d0e016a5eb5eca097aa52905eedf1b180f1 - types/luassert/ https://github.com/LuaCATS/luassert @ d3528bb679302cbfdedefabb37064515ab95f7b9 See types/busted/provenance.md and types/luassert/provenance.md for per-directory upstream refs + license status.
This was referenced Jul 22, 2026
Collaborator
Author
|
Superseded by #8396 — recreated as a same-repo PR (head on beyond-all-reason instead of the fork) so the fmt → mig → fmt-llm-source → fmt-llm chain can use GitHub's native stacked pull requests. Branch content is identical; review history stays readable here. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Warning
Superseded — this PR was an earlier mint of the stack. The type-error cleanup
now lands via the current stack tip
fmt-llm#8398.This slice's current counterpart is #8396.
Kept closed for review history; nothing here merges.
Part of BAR type-error cleanup. Combined deterministic transforms — what
masterlooks like with every leaf applied sequentially.Branch Topology
All branches in the BAR type-error cleanup stack — see Bulk Migrations for the migration log and how to run
just bar::migrate::stylua-cleanup. Regenerated deterministically byjust bar::migrate::stylua-cleanup-generate. Generated 2026-07-22 19:34:34 UTC.Leaves — each isolates one transform's diff vs
fmt:styluabar-lua-codemod bracket-to-dotbar-lua-codemod rename-aliasesbar-lua-codemod detach-bar-modules<hand curated><hand curated>Rollups — composite branches stacking the leaves and (for
fmt-llm) the env + LLM layers:master