chore: Implement comprehensive CI and update project metadata#1
Conversation
Establishes a GitHub Actions workflow for continuous integration, including: - Automated formatting checks with `rustfmt` - Linting with `clippy` (all warnings as errors) - Execution of various test suites (`cargo test`) - Documentation generation and checks (`cargo doc`) - Dependency vulnerability auditing (`rustsec/audit-check`) Also, updates repository links and project branding (`GitNexus`) to `honcho-rust-sdk` in `Cargo.toml`, `README.md`, `AGENTS.md`, and `CLAUDE.md`. The OpenAPI schema is relocated to `tests/schemas/openapi.json` for better self-containment and testing, with references updated accordingly. Finally, the `.gitignore` file is expanded to ignore additional development artifacts.
Reviewer's GuideConfigures a full Rust CI pipeline in GitHub Actions (fmt, clippy, tests, docs, audit), relocates and wires the OpenAPI schema into the repository’s tests, updates project/repository metadata to point to honcho-rust-sdk, and broadens ignored artifacts in .gitignore. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey - I've found 1 issue, and left some high level feedback:
- In the CI workflow, you’re installing the Rust toolchain independently in each job; consider extracting a shared setup step via a composite action or using a common job (or
actions-rs/toolchain) to reduce duplication and overall CI time. - The
testjob runs multiplecargo testinvocations sequentially; you can simplify and speed this up by using a single command (e.g.,cargo test --all-features --testsplus specific--testfilters) to avoid redundant test harness startup and configuration.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- In the CI workflow, you’re installing the Rust toolchain independently in each job; consider extracting a shared setup step via a composite action or using a common job (or `actions-rs/toolchain`) to reduce duplication and overall CI time.
- The `test` job runs multiple `cargo test` invocations sequentially; you can simplify and speed this up by using a single command (e.g., `cargo test --all-features --tests` plus specific `--test` filters) to avoid redundant test harness startup and configuration.
## Individual Comments
### Comment 1
<location path=".github/workflows/ci.yml" line_range="18-27" />
<code_context>
+ name: Test
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: dtolnay/rust-toolchain@stable
+ - uses: Swatinem/rust-cache@v2
+ - run: cargo test --lib --all-features
+ - run: cargo test --test '*_types'
+ - run: cargo test --test wire_format_peers
+ - run: cargo test --test compile_assertions
+
+ doc:
+ name: Docs
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: dtolnay/rust-toolchain@stable
+ - uses: Swatinem/rust-cache@v2
+ - run: cargo doc --all-features --no-deps
+ env:
+ RUSTDOCFLAGS: "-D warnings"
+
+ audit:
+ name: Audit
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: rustsec/audit-check@v2
+ with:
+ deny: warnings
</code_context>
<issue_to_address>
**🚨 suggestion (security):** Consider pinning GitHub Actions to specific commit SHAs for better supply-chain security
These actions (e.g., `actions/checkout@v4`, `dtolnay/rust-toolchain@stable`, `Swatinem/rust-cache@v2`, `rustsec/audit-check@v2`) are all using floating tags. Please pin them to specific commit SHAs (or immutable tags where applicable) so CI runs are not silently affected by upstream changes, especially for security-related steps like `rustsec/audit-check`.
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
There was a problem hiding this comment.
Code Review
This pull request migrates the project to a new repository, updates project metadata across several configuration and documentation files, and relocates the OpenAPI schema to a local directory for better self-containment. Feedback focuses on ensuring the schema directory is included in the published package to prevent test failures for downstream users, restoring the CI status badge with the updated repository URL, and maintaining valid documentation and schema links in the README.
| exclude = [ | ||
| "tests/fixtures/parity/**", | ||
| "tests/schemas/**", | ||
| ] |
There was a problem hiding this comment.
Excluding tests/schemas/** from the package will cause cargo test to fail for users who attempt to run tests from the published crate (e.g., when downloaded from crates.io), as the test suite relies on tests/schemas/openapi.json at runtime. Since this file is now the source of truth for schema validation tests and the PR aims for "better self-containment", this directory should be included in the package.
exclude = [
"tests/fixtures/parity/**",
]
|
|
||
|  | ||
|
|
||
| > **Status:** Alpha — do not use in production. This SDK is under active development. |
There was a problem hiding this comment.
The CI status badge was removed. Since this PR establishes a new GitHub Actions workflow, the badge should be updated to point to the new repository's workflow instead of being deleted. This provides immediate visibility into the build status for users and contributors.
| > **Status:** Alpha — do not use in production. This SDK is under active development. | |
|  | |
| > **Status:** Alpha — do not use in production. This SDK is under active development. |
| - [Repository](https://github.com/leszek3737/honcho-rust-sdk) | ||
| - [Honcho Server](https://github.com/plastic-labs/honcho) | ||
| - [OpenAPI Spec](https://github.com/plastic-labs/honcho/tree/main/docs) |
There was a problem hiding this comment.
The links section should be updated to maintain access to documentation and reflect the relocation of the OpenAPI schema:
- The Documentation link (
https://docs.rs/honcho-ai) was removed but remains a valuable resource for users. - The OpenAPI Spec link still points to the old repository (
plastic-labs/honcho), which contradicts the goal of relocating the schema to this repository for self-containment. It should point to the local path.
| - [Repository](https://github.com/leszek3737/honcho-rust-sdk) | |
| - [Honcho Server](https://github.com/plastic-labs/honcho) | |
| - [OpenAPI Spec](https://github.com/plastic-labs/honcho/tree/main/docs) | |
| - [Documentation](https://docs.rs/honcho-ai) | |
| - [Repository](https://github.com/leszek3737/honcho-rust-sdk) | |
| - [Honcho Server](https://github.com/plastic-labs/honcho) | |
| - [OpenAPI Spec](./tests/schemas/openapi.json) |
- Remove tests/schemas from exclude so tests work from crates.io - Add CI status badge pointing to new workflow - Fix audit-check: use token input instead of deny - Link OpenAPI spec to local path, restore docs.rs link
Establishes a GitHub Actions workflow for continuous integration, including:
rustfmtclippy(all warnings as errors)cargo test)cargo doc)rustsec/audit-check)Also, updates repository links and project branding (
GitNexus) tohoncho-rust-sdkinCargo.toml,README.md,AGENTS.md, andCLAUDE.md. The OpenAPI schema is relocated totests/schemas/openapi.jsonfor better self-containment and testing, with references updated accordingly. Finally, the.gitignorefile is expanded to ignore additional development artifacts.Summary by Sourcery
Introduce a Rust CI pipeline and align project metadata and schemas with the honcho-rust-sdk repo.
New Features:
Enhancements:
CI:
Documentation: