Just and new features: docs, lua, test#5
Open
keithharvey wants to merge 20 commits intothvl3:masterfrom
Open
Conversation
Contributor
Author
|
Added some new functionality as Just modules by converting my existing scripts: ❯ just
Available recipes:
docs:
generate # Generate Lua API pages (full pipeline: extract -> JSON -> markdown)
server # Generate everything then start Hugo dev server
server-only # Start Hugo dev server without regenerating
...
lua:
build-lde # Build lua-doc-extractor from local checkout
library *flags # Generate Lua library from RecoilEngine sources, copy into BAR submodule
library-reload *flags # Generate library then restart LuaLS so the editor picks up changes
...
test:
all # Run all BAR tests (units + integrations)
integrations # Run integration tests (placeholder)
units *args # Run busted unit tests in the BAR containerDocs
Test
Notable implementation details:
|
used a new dockerfile in the site dir in recoil that emulates github actions jdx/mise-action
added detection to the dockerfile and a bash 4 required note to the readme
allow passing extras into init, this lets us add it as a guard clause (ie "run `just init::setup extras` to extra-specific commands like `test::units` or whatever
Contributor
Author
|
Needed some tools installed in my distrobox in fedora atomic, so added an ENV var to optionally enter that for node scripts
Contributor
Author
Let me know if you want any of these features split up. Mostly just getting the docs working on both my machines at the moment and fixing/documenting as I go. |
fallback. docs::server now runs lua::library locally before serving, skipping Docker's npm-based extraction step.
force rosetta emulation
Adds just lua::reset (recoil-lua-library) and just docs::reset (recoil docs). Adds a TODO with my recommendation that these artifacts not be committed
Contributor
Author
|
Added |
bar::units and bar::integrations just makes too much sense next to fmt and lint, same for the tei server mix tests
Contributor
Author
|
keithharvey
added a commit
to keithharvey/bar
that referenced
this pull request
Mar 25, 2026
Automated AST transform via bar-lua-codemod (full-moon 2.1.1 over in [BAR-Devtools](thvl3/BAR-Devtools#5)): x["key"] -> x.key (index access, ~5,100 instances) ["key"] = v -> key = v (table field, ~3,500 instances) 344 files, ~8,600 total conversions. Reserved words (end, for, etc.) correctly preserved as bracket access (56 instances). Zero parse errors.
This was referenced Mar 26, 2026
full-moon (2.1.1) based codemod * with bracket-to-dot transform (x["key"] -> x.key, ["key"] = v -> key = v). Includes just recipes: * bar::codemod-build - cargo build the text transformer * bar::codemod-test - cargo test * bar::fmt-mig - runs the codemod tool with all currently configured text transform commands
automating the transform commands into leaf branches so people can easily see the diff
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.
Add Just as task runner; decompose devtools.sh
Introduce Just as the cross-repo task runner and break
devtools.shinto modular scripts../devtools.sh up lobbyjust services::up lobby./devtools.sh clone extrajust repos::clone extra./devtools.sh engine build linuxjust engine::build linux./devtools.sh reposjust repos::status./devtools.sh linkjust link::statusThe Justfile uses
modfor domain-based namespacing (services,repos,engine,setup,link), with bash logic extracted intoscripts/. This keeps each.justfile focused on interface and delegation.Motivation
I want to add lua-library generation, doc serving, and test runner recipes (next PR), and the 997-line monolith won't scale.
All existing
devtools.shcommands are preserved under namespaced modules:Why
JustMise might seem like the default option here, since Recoil already uses that in its doc pipeline
However:
By design, Just prevents adding configuration here and keeps it purely idempotent bash scripts with some helpers.
Tests
Set up a new machine on my mac. Tested most of these existing and new commands at least once on my linux machine.
LLM Disclosure:
Yes. Gave opus 4.6 "refactor to use Just without changing existing functionality" for the initial conversion commit and it did a decent job