Skip to content

docs: Update README.md - #8

Closed
tkolleh wants to merge 54 commits into
mainfrom
tkolleh-patch-1
Closed

docs: Update README.md#8
tkolleh wants to merge 54 commits into
mainfrom
tkolleh-patch-1

Conversation

@tkolleh

@tkolleh tkolleh commented Mar 15, 2026

Copy link
Copy Markdown
Owner

No description provided.

The previous conditional logic used short-circuit evaluation which
incorrectly converted 'false' to 'cyan'. This fix properly handles
all three cases: nil (default to cyan), false (disable color), and
valid color strings.
Includes installation instructions, quick start guide, full API
documentation, available spinners and colors, advanced usage examples,
and compatibility information.
Includes development setup, test commands, code style guidelines,
comprehensive DAP debugging workflow using one-small-step-for-vimkind,
PR process, and Conventional Commits guide.
Runs tests on matrix of Lua versions (5.1, 5.2, 5.3, 5.4) across
Ubuntu 24.04 and macOS 14. Includes separate lint and format check job.
Uses release-please-action to automate version bumping and
changelog generation based on Conventional Commits.
Triggered on tag push events. Uses lx upload to publish the
package to luarocks.org using the LUX_API_KEY secret.
Includes setup instructions for asciinema, agg, and VHS,
recording workflow, and optimization tips for smaller file sizes.
Demonstrates basic usage, terminal states (succeed/fail/warn/info),
dynamic text updates, different spinner styles, and color options.
Ignores Lux lock file variant and Lua Language Server config
generated by lx commands.
- Remove version pinning from gh-actions-lux (use latest)
- Replace 'lx fmt --check' with diff-based formatting check
- The --check flag was removed in newer Lux versions
- Run 'lx fmt' to convert indentation to tabs (Lux default)
- Add luafilesystem as explicit test dependency for busted/penlight
Workaround for lumen-oss/lux#722 - busted's penlight dependency
requires luafilesystem but transitive resolution fails in CI.
Adding as runtime dep ensures availability across all Lua versions.
Pin gh-actions-lux to version 0.18.8 as recommended by official Lux
CI/CD documentation. This resolves busted/penlight/luafilesystem
transitive dependency issues when testing across multiple Lua versions.

Ref: https://lux.lumen-labs.org/tutorial/cicd
Ref: lumen-oss/lux#722
- Reduce test matrix to Lua 5.4 only to work around lumen-oss/lux#722
  (busted/penlight/luafilesystem transitive dependency issue)
- Fix unused variable warnings in ansi.lua and roda_spec.lua
- Multi-version testing can be restored once Lux resolves upstream issue
Remove macOS from test matrix due to lumen-oss/lux path handling
issue with spaces in 'Application Support' directory. Ubuntu tests
pass successfully (165/165). macOS support can be restored once
upstream fixes the path quoting issue.
tkolleh and others added 24 commits March 2, 2026 15:38
Lux v0.18.8 requires explicit --lua-version flag for upload command.
Without it, upload fails with 'lua version not set' error.
LuaRocks requires a tag field in the source section for proper release resolution.
The lux.toml source section uses $(VERSION) variable substitution.
The --lua-version flag is not needed for lx upload per official docs.
Lux v0.18.8 requires --lua-version flag for upload command.
- Lux v0.18.8 has bugs with lx upload causing 400 Bad Request
- v0.25.3 matches working examples (lumen-oss/lux, rustaceanvim)
- Use --lua-version 5.1 since package supports >=5.1
- Tests workflow stays at v0.18.8 (different concerns)
Multiline TOML strings cause Lux to generate invalid Lua rockspec.
The detailed field now uses a single-line string to avoid the bug.
- Add rockspec validation step before upload to catch malformed output
- Add tag format validation (semver only: v*.*.*)
- Add comments explaining why tests use v0.18.8 but publish uses v0.25.3
- Document Lux multiline TOML string bug in CONTRIBUTING.md

These improvements help prevent future publish failures by catching
issues early in the CI pipeline.
- Add demo.lua showcasing spinner features (success, fail, warn, info, progress)
- Add demo.tape for VHS terminal recording
- Move demo GIF to Features section in README

To generate the demo GIF:
  brew install vhs
  vhs demo.tape
- Reduce font size from 16 to 11
- Reduce dimensions from 900x500 to 600x350
- Reduce padding from 20 to 10
Lua is single-threaded, so system.sleep() alone doesn't animate
the spinner frames. Added spin_for() helper that calls :spin()
in a loop to properly render the animation.
- Fix demo.lua to use spin_for() for proper animation
- Update VHS settings for better GIF quality (smaller dimensions)
- Regenerate demo.gif with working spinner animations
* fix: Use lux for demo script

* feat: Make it async

* build: add lefthook configuration

* docs: simplify readme and add async usage

* docs(util): add proper comments to bracket function

* docs(init): add proper comments to functions

* test: add simple async test

* fix: ignore unused err argument in uv.read_start callback

* build: add linter to pre-commit hook

* Delete spec/simple_spec.lua
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.

1 participant