rojo/.cursor/commands/ci.md
Joe 50b9e18514 Refactor and rebrand Rojo to Atlas
- Renamed the project from Rojo to Atlas, updating all relevant files, scripts, and documentation to reflect the new branding.
- Bumped version to 7.7.0-rc.2 and updated protocol version from 5 to 6.
- Modified installation scripts and CI workflows to use the new binary name and paths.
- Adjusted plugin settings and internal identifiers to prevent conflicts with the original Rojo.
- Enhanced session management and API response handling to support the new server fork identifier.
- Updated project templates and README files to guide users on using Atlas.
2026-02-07 13:21:52 -06:00

4.5 KiB
Raw Blame History

/ci - Complete CI Pipeline

Run the complete CI pipeline: auto-fix all formatting, run all linters, build everything, and run ALL tests.

Instructions

  • If the user's message contains "rbx-dom", run both the Rojo and rbx-dom sections below.
  • Otherwise, skip the entire rbx-dom section (steps 9–14) to save time.

Execute ALL applicable steps in order. Fix issues automatically where possible.


Rojo

1. Auto-fix Lua Formatting (Stylua)

stylua plugin/src

2. Auto-fix Rust Formatting

cargo fmt

3. Auto-fix TypeScript Formatting (Prettier) for vscode-rojo

cd vscode-rojo
npx prettier --write "src/**/*.ts"
cd ..

4. Lua Static Analysis (Selene) - MUST PASS WITH ZERO ISSUES

selene plugin/src

CRITICAL: Selene must exit with code 0 (zero errors AND zero warnings). Warnings count as failures.

If Selene reports ANY errors or warnings:

  1. FIX THEM IMMEDIATELY before proceeding - do not just report them
  2. Common fixes:
    • unused_variable: Replace with _ (e.g., for _ = 1, 10 do) or remove the variable entirely
    • unused_variable for imports: Remove the unused require/import line
  3. Re-run Selene after fixes to confirm exit code 0
  4. Only proceed once Selene shows: Results: 0 errors, 0 warnings, 0 parse errors

5. Rust Linting (Clippy) - Auto-fix where possible

cargo clippy --fix --allow-dirty --allow-staged

Then verify with:

cargo clippy --all-targets --all-features

If there are remaining warnings/errors, fix them before proceeding.

6. Build Everything

cargo build --locked --all-targets --all-features

7. Run ALL Rust Tests

cargo test --locked --all-targets --all-features

8. Run Roblox Plugin Tests

Do NOT use the scripts (unit-test-plugin.ps1 / unit-test-plugin.sh). They reference a system-installed binary which may not exist. Always use the freshly built binary from step 6.

.\target\debug\atlas.exe build plugin/test-place.project.json -o TestPlace.rbxl
run-in-roblox --script plugin/run-tests.server.lua --place TestPlace.rbxl

rbx-dom (submodule)

All rbx-dom steps run inside the rbx-dom/ directory.

9. Auto-fix Lua Formatting (Stylua) for rbx_dom_lua

cd rbx-dom
stylua rbx_dom_lua/src
cd ..

10. Auto-fix Rust Formatting

cd rbx-dom
cargo fmt
cd ..

11. Lua Static Analysis (Selene) for rbx_dom_lua - MUST PASS WITH ZERO ISSUES

cd rbx-dom
selene rbx_dom_lua/src
cd ..

Same rules as step 4: exit code 0 required, fix all errors and warnings before proceeding.

12. Rust Linting (Clippy) - Auto-fix where possible

cd rbx-dom
cargo clippy --fix --allow-dirty --allow-staged

Then verify with:

cd rbx-dom
cargo clippy --all-targets --all-features -- -D warnings
cd ..

If there are remaining warnings/errors, fix them before proceeding.

13. Build rbx-dom

cd rbx-dom
cargo build --verbose
cargo build --all-features --verbose
cd ..

14. Run ALL rbx-dom Rust Tests

cd rbx-dom
cargo test --verbose
cargo test --all-features --verbose
cd ..

Reporting

After ALL steps complete, provide a summary:

=== CI COMPLETE ===

--- Rojo ---

Formatting:
  - Stylua: [fixed X files / no changes needed]
  - Rustfmt: [fixed X files / no changes needed]
  - Prettier (vscode-rojo): [fixed X files / no changes needed]

Linting:
  - Selene: PASS (0 errors, 0 warnings) / FAIL (X errors, Y warnings)
  - Clippy: PASS / FAIL (X warnings)

Build: PASS / FAIL

Tests:
  - Rust: X passed, Y failed
  - Plugin: X passed, Y failed

--- rbx-dom (only if included) ---

Formatting:
  - Stylua (rbx_dom_lua): [fixed X files / no changes needed]
  - Rustfmt: [fixed X files / no changes needed]

Linting:
  - Selene (rbx_dom_lua): PASS (0 errors, 0 warnings) / FAIL (X errors, Y warnings)
  - Clippy: PASS / FAIL (X warnings)

Build: PASS / FAIL
Build (all features): PASS / FAIL

Tests:
  - Rust: X passed, Y failed
  - Rust (all features): X passed, Y failed

--- Overall: PASS / FAIL ---

IMPORTANT:

  • Selene PASS requires exit code 0 (0 errors AND 0 warnings). Any warnings = FAIL.
  • If any step fails, continue running the remaining steps to get a complete picture, then report all failures at the end.
  • Do not report "Overall: PASS" unless ALL linters pass with zero issues across all sections that were run.
  • If rbx-dom was skipped, omit its section from the report entirely.