chore: GitHub Actions CI, xtask dev ci, rustfmt parity#38
Merged
Conversation
- Add .github/workflows/ci.yml: fmt/docs on Ubuntu; workspace clippy on Ubuntu and tests on Ubuntu+Windows; LLVM on both OSes with Linux LD_LIBRARY_PATH. - Add rust-toolchain.toml (stable + rustfmt + clippy). - Extend xtask: dev fmt-check, dev ci, llvm ci; cargo ci / fmt-check aliases. - Document CI parity in AGENTS.md, README badge, vault notes; sync Commands Inventory. - rustfmt across workspace; fix LLVM-backed clippy (checker borrow + map). - Bump tool/auon-rs submodule to chore/rustfmt-ci-parity for formatted auon. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…ach repo Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Pull request overview
This PR adds a repository-level CI workflow, exposes matching xtask entrypoints for local use, and updates docs/generated inventories to reflect the new automation. It also includes a small functional change in typechecking/codegen around explicit generic specialization, alongside broad rustfmt cleanup needed to keep LLVM/clippy paths clean.
Changes:
- Adds GitHub Actions CI plus local aliases/xtask commands for
fmt-check, fulldev ci, andllvm ci. - Updates developer/docs surfaces (
README,AGENTS, architecture/xtask docs, generated inventories) to describe the new workflow. - Includes LLVM-related typecheck/codegen adjustments and repository-wide rustfmt parity changes.
Reviewed changes
Copilot reviewed 21 out of 26 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
xtask/src/main.rs |
Adds dev fmt-check, dev ci, and llvm ci command entrypoints. |
xtask/src/docs.rs |
Updates generated command inventory text for the new xtask commands. |
rust-toolchain.toml |
Pins stable toolchain with rustfmt and clippy components. |
docs/Subsystems/Xtask.md |
Documents new xtask CI-parity commands. |
docs/Generated/Workspace Inventory.md |
Regenerated workspace inventory timestamp. |
docs/Generated/Test Inventory.md |
Regenerated test inventory with newly discovered paths. |
docs/Generated/Examples Inventory.md |
Regenerated examples inventory timestamp. |
docs/Generated/Directory Inventory.md |
Regenerated top-level directory inventory. |
docs/Generated/Commands Inventory.md |
Regenerated commands inventory to include new xtask commands. |
docs/Architecture/Build And Dev Workflow.md |
Documents CI layout and local CI-parity workflow. |
crates/aura-typecheck/tests/ir_contract_snapshot.rs |
Rustfmt-only assertion formatting. |
crates/aura-typecheck/src/unify.rs |
Rustfmt-only formatting in interface unification diagnostics. |
crates/aura-typecheck/src/types.rs |
Rustfmt-only enum variant formatting. |
crates/aura-typecheck/src/checker.rs |
Adds explicit generic specialization lowering and assorted rustfmt/clippy-driven cleanups. |
crates/aura-runtime-host/src/lib.rs |
Adds docs/allowances for reserved allocation metadata fields; minor formatting. |
crates/aura-frontend/src/parser.rs |
Rustfmt-only parser/test formatting. |
crates/aura-frontend/src/ast.rs |
Rustfmt-only enum formatting. |
crates/aura-codegen/src/project/compile.rs |
Minor export classification/import formatting adjustments. |
crates/aura-codegen/src/llvm/types.rs |
Small LLVM API cleanup plus formatting. |
crates/aura-codegen/src/llvm/module.rs |
Skips generic template declarations and coerces returned values to slot types. |
crates/aura-codegen/src/llvm/expr.rs |
Exposes return-value coercion helper and includes LLVM API/formatting updates. |
README.md |
Replaces placeholder CI badge with GitHub Actions badge. |
AGENTS.md |
Documents submodule CI expectations and local CI-parity commands. |
.github/workflows/ci.yml |
Adds the new GitHub Actions CI workflow for fmt, docs, workspace, and LLVM jobs. |
.cargo/config.toml |
Adds cargo ci and cargo fmt-check aliases. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Cursor <cursoragent@cursor.com>
- aura-cli: sort value_types by key; span_from_line uses enumerate (clippy). - docs: cargo xtask docs sync so Generated inventories match discover on Linux. - GHA: cache only toolchains/cache to avoid broken llvm/18 symlinks on restore. - Vault: note tarball-only LLVM cache in GitHub Repo Settings. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…or generic spec - xtask: ignore .opencode/ when scanning repo for Generated inventories (CI parity). - typecheck: document specialization body reuse; add IR test with Block body + mangled decl. - Regenerated docs vault via docs sync. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
nahharris
enabled auto-merge
May 4, 2026 01:56
Unix resolves relative symlink targets from the link parent; pointing toolchains/llvm/<major> at a repo-relative install path broke llvm-config. Also resolve extract root by locating bin/llvm-config for robust unpack. Co-authored-by: Cursor <cursoragent@cursor.com>
llvm-sys runs llvm-config during build scripts; libLLVM must be on the dynamic linker path or llvm-config --version fails (non-NotFound). - Prepend managed LLVM lib dir in xtask for llvm cargo subprocesses - On Linux, smoke-test llvm-config --version in validate_install - apt install libxml2 zlib1g libzstd1 for Ubuntu LLVM job Co-authored-by: Cursor <cursoragent@cursor.com>
llvm-config fails with exit 127: missing libtinfo.so.5 on newer Ubuntu runners that only ship ncurses6. Co-authored-by: Cursor <cursoragent@cursor.com>
Noble dropped libtinfo5 from apt; use the Jammy ncurses package so llvm-config can load libtinfo.so.5. Co-authored-by: Cursor <cursoragent@cursor.com>
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
Adds strict CI via GitHub Actions and a single local entrypoint (\cargo xtask dev ci\ / \cargo ci), documents session parity in AGENTS, and applies rustfmt + small typecheck fixes needed for LLVM clippy.
CI layout (.github/workflows/ci.yml)
xtask
ust-toolchain.toml: stable + rustfmt + clippy.
Submodule
ahharris/auon-rs\ — open/merge that PR if you want the pointer to land on \master\ there first).
Docs
Made with Cursor