Skip to content

chore: GitHub Actions CI, xtask dev ci, rustfmt parity#38

Merged
nahharris merged 12 commits into
masterfrom
chore/ci-xtask-github-actions
May 4, 2026
Merged

chore: GitHub Actions CI, xtask dev ci, rustfmt parity#38
nahharris merged 12 commits into
masterfrom
chore/ci-xtask-github-actions

Conversation

@nahharris

Copy link
Copy Markdown
Owner

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)

  • fmt and docs: Ubuntu only (no duplicate OS work).
  • workspace: clippy on Ubuntu; tests on Ubuntu + Windows.
  • llvm: setup + clippy + tests on Ubuntu + Windows; Linux sets \LD_LIBRARY_PATH\ for bundled LLVM.
  • Checkout uses submodules so Cargo \path\ deps under \ ool/\ resolve; per-repo quality gates stay in each submodule’s own CI (see workflow comment + AGENTS).

xtask

  • \dev fmt-check, \dev ci, \llvm ci; .cargo/config.toml\ aliases \ci, \ mt-check.

  • ust-toolchain.toml: stable + rustfmt + clippy.

Submodule

  • \ ool/auon-rs\ bumped to include rustfmt-only changes (branch \chore/rustfmt-ci-parity\ on
    ahharris/auon-rs\ — open/merge that PR if you want the pointer to land on \master\ there first).

Docs

  • README CI badge, vault notes, Commands inventory from \xtask docs sync.

Made with Cursor

nahharris and others added 3 commits May 3, 2026 22:08
- 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>
Copilot AI review requested due to automatic review settings May 4, 2026 01:12

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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, full dev ci, and llvm 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.

Comment thread crates/aura-typecheck/src/checker.rs
Comment thread docs/Generated/Test Inventory.md Outdated
Comment thread docs/Generated/Directory Inventory.md Outdated
Comment thread crates/aura-typecheck/src/checker.rs
nahharris and others added 5 commits May 3, 2026 22:18
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
nahharris enabled auto-merge May 4, 2026 01:56
nahharris and others added 4 commits May 3, 2026 23:07
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>
@nahharris
nahharris merged commit c226b65 into master May 4, 2026
6 checks passed
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.

2 participants