Release 1.1.1 - #45
Merged
Merged
Conversation
## Summary - Remove the "Verify diff matches main" check from release-checks.yml - This allows PRs to release from pre-release branches, not just main ## Test plan - [ ] Release checks workflow still runs correctly Generated with [Claude Code](https://claude.com/claude-code)
## Summary - Add back the "Verify diff matches main" check to release-checks.yml - Ensures release PRs exactly match main before merging ## Test plan - [ ] Release checks workflow runs correctly Generated with [Claude Code](https://claude.com/claude-code)
## Summary - Remove subsection headers (### Added, ### Changed, ### Fixed) - Remove blank lines between version headers and list items - Follow simplified changelog format from project guidelines ## Test plan - [ ] Verify CHANGELOG.md renders correctly on GitHub - [ ] Confirm format matches other repos 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
## Summary - Updates claude-md-luau submodule to latest - Updates luau-cicd submodule to latest (includes version-match CI check) ## Test plan - [ ] CI passes
Update claude-md, claude-md-luau, and luau-cicd submodules to latest.
Update CI and release-checks workflows to the latest templates from luau-cicd, and update the luau-cicd submodule to latest.
## Summary - Capitalize "Git" with an uppercase G in test descriptions and error messages since it is a proper name.
Sync unpushed local commits: bump lune, wally, luau-lsp versions and sync with luau-package-template.
## Summary
- Add code coverage support via `debug.getcoverage` with `CoverageRoots`
config
- Add dictionary syntax for test roots (`{ TestName = func }`)
- Bump version to 0.1.1
## Test plan
- [x] All 93 tests pass (89 existing + 4 new dict syntax tests)
- [x] Coverage integration tested with require results
- [x] Coverage returns nil when disabled (LUNE_COVERAGE=0)
- [x] Both array and dict test root syntax verified
- [x] Static analysis passes
## Summary - Add Roblox cloud E2E tests that run Testable in a real Roblox server via Open Cloud API - Fix TestBootstrap to support dict and array syntax in Roblox - Fix coverage to gracefully degrade in Roblox (no debug.iscoverageenabled) - Bump version to 0.1.2 ## Test plan - [x] 100 tests pass (93 local + 7 Roblox cloud) - [x] All 7 Roblox cloud tests pass: describe/it/expect, dict syntax, array syntax, matchers, coverage nil, coverage error, lifecycle hooks
## Summary - Publish E2E place before running tests in CI - Pass ROBLOX_E2E_API_KEY secret to test step - Roblox cloud tests now run in CI instead of being skipped ## Test plan - [x] Secret added to repo - [x] CI workflow publishes E2E place then runs all tests including remote
## Summary - Add 14 coverage unit tests (resolveRoots, collect, Config options, Testable.run integration) - Bump version to 1.0.0 ## Test plan - [x] 114 tests pass (100 previous + 14 new coverage tests) - [x] Static analysis passes
Update luau-cicd submodule with improved lint output labels and PascalCase config keys.
Replace HTTPS URLs with SSH in .gitmodules for consistency.
## Summary - Fix infinite loop when iterating user-provided module tables that have `__call` metamethods - Use `pairs()` instead of generalized `for k, v in table` iteration in Coverage and TestBootstrap ## Test plan - [x] 120 tests pass - [x] Verified fix with chalk-luau (which uses callable tables extensively)
## Summary - Add `game` and `tick` to .luaurc globals (needed for runtime environment detection) - Cast `typeof()` to string to avoid Instance type narrowing errors on Lune platform - Ignore `Tests/RobloxCloud/**` from Lune lint pass (Roblox-only test scripts) - Delegate lint script to luau-cicd shared helper - Standardize gitignore format ## Test plan - Verified lint passes locally with no errors or warnings
Update luau-cicd submodule (adds ServerPackages to default lint ignore patterns)
## Summary - CoverageRoots now accepts script instances instead of module tables - Coverage data includes all functions in each file, including locals - Supports both individual file scripts and directory discovery - Bumped lune to 0.10.4-horse.14.4 and rojo to 7.7.0-rc.1-horse.0.7 ## Test plan - [x] All 20 coverage tests pass in isolation - [x] Verified on chalk-luau: 50% coverage (was 0% with old approach)
## Summary - Bump version to 1.1.0 for release with file-level coverage support
## Summary - CoverageRoots now accepts a single script instance instead of a dictionary - Fixed init.luau modules being skipped during directory discovery - Bumped lune to 0.10.4-horse.14.5 - Bumped version to 1.1.1 ## Test plan - [x] 109 tests pass locally - [x] Verified chalk-luau (init.luau module) now shows coverage
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.
Summary
Changelog
CoverageRootsto accept a single script instance instead of a dictionaryinit.luaumodules (directories with init.luau were skipped).storyand.storybookfiles from coverage