feat(xtask): comprehensive build automation CLI with 31 subcommands#1511
Merged
feat(xtask): comprehensive build automation CLI with 31 subcommands#1511
Conversation
Set up clap-based CLI dispatcher with module stubs for: - release, build-web, ci, changelog, sync-versions, integration-test
- release: full release flow (changelog + sync-versions + commit + tag + PR) - build-web: build dashboard, web frontend, and docs site via pnpm - ci: local CI suite (cargo build + test + clippy + web lint) - changelog: generate CHANGELOG.md from merged PRs via gh CLI - sync-versions: sync CalVer across Cargo.toml, JS/Python/Rust SDKs, Tauri - integration-test: start daemon, test endpoints, verify LLM + budget
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…ipts - Add tag-exists cleanup: delete old tag, branch, and GitHub Release - Add Dev.to article generation (skipped for pre-releases or --no-article) - Include changelog section and diff link in PR body - Scope README version replacement to [dependencies] blocks only
- Show git status --short on dirty worktree error - Fix step order: article generation before dashboard build - Add --repo librefang/librefang to all gh commands - Add Claude CLI article polishing (env -u CLAUDECODE)
…, coverage, deps, codegen, check-links)
…deps, validate-config, pre-commit, api-docs) Also fix missing skillhub_cache field in test_app.rs.
…h-npm-binaries, publish-pypi-binaries) - Replace generate_contributors.py + generate_star_history.py with `cargo xtask contributors` - Replace publish-npm-binaries.sh with `cargo xtask publish-npm-binaries` - Replace publish-pypi-binaries.sh with `cargo xtask publish-pypi-binaries` - Update CI workflows to call xtask instead of scripts - Delete migrated scripts
Add the file inbox section to the init template so `librefang init` includes it, and document the feature with config reference, usage examples, and use cases in both English and Chinese configuration pages.
…generation Adds `librefang hash-password` CLI command so users can generate Argon2id hashes directly instead of relying on the login-and-copy-from-logs workflow. Also updates zh configuration docs with dashboard_pass_hash field documentation and migration guide.
- Quality job: cargo xtask fmt + cargo xtask ci --no-test --no-web - Security job: cargo xtask deps --audit with --ignore support - Add --ignore flag to deps command for RUSTSEC advisory exclusions - Remove separate cargo-audit install step (xtask auto-installs)
…ments) and fix db WAL cleanup bug
Deduplicate the identical repo_root() function from 27 xtask source files into a single common.rs module, removing ~450 lines of duplication.
This was referenced Mar 23, 2026
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
Replace scattered shell scripts with a unified, cross-platform
cargo xtaskCLI (31 subcommands), migrate CI workflows to use xtask, and extract shared utilities.Core Build Commands
--no-test,--no-web,--release--fixRelease & Publishing
gh pr listpublish-npm-binaries.sh)publish-pypi-binaries.sh)Development & Testing
Code Quality & Analysis
--audit,--ignore RUSTSEC-ID) and check outdated~/.librefang/config.tomlsyntaxData & Infra
CI Migration
ci.yml: quality job usescargo xtask fmt+cargo xtask ci --no-test --no-webci.yml: security job usescargo xtask deps --audit --ignore ...update-contributors.yml: usescargo xtask contributorsrelease-shell.yml: npm/PyPI publish steps use xtask commandsCode Quality
repo_root()from 27 files into sharedcommon.rsmodule (-450 lines)&PathBuf→&Path(clippy ptr_arg), div_ceil, too_many_arguments fixesgenerate_contributors.py,generate_star_history.py,publish-npm-binaries.sh,publish-pypi-binaries.shUsage
Test plan
cargo clippy -p xtask --all-targets -- -D warningspasses (zero warnings)cargo xtask --helpshows all 31 subcommandscargo xtask ci --no-test --no-webruns build + clippy