Release and Packaging
Auditaur packages are published publicly and the repository is configured for semantic release automation.
Package names
Section titled “Package names”| Component | Name | Status |
|---|---|---|
| CLI crate | auditaur-cli | Published to crates.io; installs a binary named auditaur. |
| Core crate | auditaur-core | Published to crates.io for shared models and config. |
| Collector crate | auditaur-collector | Published to crates.io for SQLite store and receiver types. |
| Tauri plugin macro crate | tauri-plugin-auditaur-macros | Published to crates.io before the plugin crate; re-exported by tauri-plugin-auditaur. |
| Tauri plugin crate | tauri-plugin-auditaur | Published to crates.io for Tauri v2 apps. |
| Frontend package | @auditaur/api | Published to npm. |
The Rust workspace declares MIT license and repository metadata. Each crate includes crates.io metadata and versioned workspace dependency declarations. The npm package is public-scoped through publishConfig.access = "public".
CLI build
Section titled “CLI build”Install the CLI:
cargo install auditaur-cliauditaur doctorSource checkout development:
cargo run -p auditaur-cli -- apps --jsoncargo run -p auditaur-cli -- mcpBuild release binary:
cargo build -p auditaur-cli --release.\target\release\auditaur.exe doctorOn macOS/Linux, use ./target/release/auditaur.
Semantic release automation
Section titled “Semantic release automation”Rust crates use release-plz:
.github/workflows/release-rust.ymlopens or updates a Rust release PR on pushes tomain.- Merging the release PR updates versions and changelogs according to Conventional Commits plus release-plz semver checks.
release-plz.tomlsetsrelease_always = false, so normal pushes only prepare release PRs and publishing happens from release PR merges.- Merging the release PR runs release-plz publish for changed Rust crates.
- The release workflow verifies that
tauri-plugin-auditaurdepends ontauri-plugin-auditaur-macrosat the same version before release-plz runs. Cargo and release-plz then use the workspace dependency graph, so the macro crate must be available before the plugin crate can publish. - CI and release workflows run
python scripts/check-skill-drift.pyso.github/skills/auditaur-debug/SKILL.mdand the packaged CLI asset atcrates/auditaur-cli/assets/auditaur-debug-skill.mdcannot drift. - Publishing requires a
CARGO_REGISTRY_TOKENrepository secret until crates.io trusted publishing is configured for existing crates. - The CLI is distributed through the
auditaur-clicrate. Auditaur does not publish prebuilt GitHub release binaries because Tauri developers already need Rust and Cargo for normal app development.
The frontend package uses release-please:
.github/workflows/release-api.ymlopens or updates a release PR forpackages\api.- Merging the release PR creates a GitHub release tagged for
@auditaur/api. .github/workflows/publish-api.ymlpublishes matching@auditaur/api-v*releases to npm with provenance.- Publishing uses npm trusted publishing/OIDC, so no
NPM_TOKENis required after the package is configured on npm.
Manual dry runs are available locally:
cargo publish -p auditaur-core --dry-runcargo publish -p auditaur-collector --dry-runcargo publish -p tauri-plugin-auditaur-macros --dry-runcargo publish -p tauri-plugin-auditaur --dry-runcargo publish -p auditaur-cli --dry-run
cd packages\apinpm publish --dry-run --access publicFor a single local preflight before a release, run:
.\scripts\preflight-release.ps1This runs the skill drift check, Rust formatting and targeted tests, API tests/build, docs build, CLI crate package verification, and gh skill publish .github --dry-run when GitHub CLI is available. Add -IncludeDogfoodSmoke to include the live Windows dogfood app pass, -AllowDirtyPackage while validating uncommitted local changes, or -SkipGhSkillDryRun when GitHub CLI is unavailable.
The live dogfood app smoke is also available as a manual GitHub Actions workflow named Dogfood Smoke. It is intentionally workflow_dispatch only because it launches the Windows Tauri/WebView app and is heavier than normal PR validation.
Release checklist
Section titled “Release checklist”- Keep npm trusted publishing configured for
@auditaur/api:- Publisher: GitHub Actions.
- Organization/user:
sethjuarez. - Repository:
auditaur. - Workflow:
publish-api.yml. - Environment: leave blank unless this workflow is later updated to use one.
- Keep
CARGO_REGISTRY_TOKENavailable until crates.io trusted publishing is configured for all Rust crates. - For the first release that includes
tauri-plugin-auditaur-macros, confirm the release-plz run lists the macro crate beforetauri-plugin-auditaur. - Run
python scripts/check-skill-drift.pyafter editing the Auditaur debug skill, or copy.github\skills\auditaur-debug\SKILL.mdtocrates\auditaur-cli\assets\auditaur-debug-skill.md. - Run
.\scripts\preflight-release.ps1before publishing release PRs. Use-IncludeDogfoodSmokewhen a live Windows dogfood pass is appropriate. - Before publishing the agent skill for real, review
gh skill publish .github --dry-runwarnings. Repo-level warnings such as secret scanning, push protection, and tag rulesets are GitHub repository settings, not code changes. - Use Conventional Commits so release-plz and release-please can calculate semantic versions consistently.