Skip to content

feat: add crates.io publish workflow and complete publishing metadata - #4

Merged
Pijukatel merged 2 commits into
masterfrom
claude/quirky-mccarthy-54hv8d
Jun 22, 2026
Merged

feat: add crates.io publish workflow and complete publishing metadata#4
Pijukatel merged 2 commits into
masterfrom
claude/quirky-mccarthy-54hv8d

Conversation

@Pijukatel

Copy link
Copy Markdown
Collaborator

Summary

Brings the Rust client into compliance with the new Publishing section recently added to the client requirements. The client is already on the latest OpenAPI spec (v2-2026-06-18T095846Z) — this PR is a publishing/packaging/docs compliance change with no public-interface change.

Changes

  • Manual publish workflow — adds .github/workflows/rust-publish.yml, a workflow_dispatch-triggered workflow that publishes the crate to crates.io (the Rust distribution standard). It gates on cargo fmt/clippy/build, runs cargo publish --dry-run, then cargo publish. The registry token is read exclusively from the CARGO_REGISTRY_TOKEN repository secret (with an early-fail guard), and a dry_run input allows packaging-only runs.
  • Publishing metadataCargo.toml gains the recommended homepage field; all other publishing metadata (name, version, description, license, repository, documentation, readme, keywords, categories) was already complete.
  • Experimental / AI-maintained disclaimer — added to README.md, docs/README.md, and the crate-level rustdoc in src/lib.rs; "official" self-description softened accordingly.
  • Docs fixes — documented ApifyClientError::as_api_error with a runnable snippet; fixed dangling reference-style Markdown links in docs/.
  • Bumped crate version 0.2.10.2.2 (non-breaking; packaging/CI/docs only) and recorded the change in CHANGELOG.md.

Verification

  • cargo fmt --all -- --check and cargo clippy --all-targets -- -D warnings clean.
  • cargo publish --dry-run packages cleanly.
  • Integration tests pass with a real token; Test examples step runs all 7 example programs end-to-end; 22 doctests pass.

Developed via the orchestrated create-client / review-client loop until the review gate passed with no open items.


Generated by Claude Code

Bring the Rust client into compliance with the new "## Publishing" section
of client_requirements.md (orchestration PR #7):

- Add manually triggered (workflow_dispatch) `.github/workflows/rust-publish.yml`
  that publishes the crate to crates.io. It gates on fmt/clippy/build, runs a
  `cargo publish --dry-run` packaging check, then `cargo publish`. The registry
  token is read only from the CARGO_REGISTRY_TOKEN repository secret, with an
  early-fail guard; a `dry_run` input allows packaging-only runs.
- Cargo.toml: add the strongly recommended `homepage` field so the crates.io
  listing carries complete publishing metadata.

Also addresses documentation compliance items surfaced by review-client:
- Add the required "experimental, AI-generated and AI-maintained" disclaimer to
  the crate rustdoc (src/lib.rs), README.md and docs/README.md, and reword the
  "official" wording (including the crates.io Cargo.toml `description`) to match.
- Document `ApifyClientError::as_api_error` in the docs/README.md error-handling
  section with a runnable snippet.
- Remove dangling reference-style Markdown link brackets around
  `apify_client::models` and `futures_util::StreamExt`.

Bump version 0.2.1 -> 0.2.2 (non-breaking; packaging/CI/docs only) and add the
CHANGELOG entry. All integration tests, 7 example smoke tests and 22 doctests
pass; cargo fmt/clippy clean; cargo publish --dry-run packages cleanly.
@Pijukatel Pijukatel added the adhoc Ad-hoc unplanned task added during the sprint. label Jun 22, 2026
@Pijukatel Pijukatel added this to the v0 milestone Jun 22, 2026
Add a "Releasing" subsection to the Rust README "Versioning" section documenting the
crates.io distribution mechanism and the manually-triggered rust-publish.yml workflow,
so the Rust and Go sibling clients no longer diverge on release documentation. Record
the change in CHANGELOG [0.2.2].
@github-actions github-actions Bot added the t-tooling Issues with this label are in the ownership of the tooling team. label Jun 22, 2026
@Pijukatel
Pijukatel force-pushed the claude/quirky-mccarthy-54hv8d branch from 9bb6b14 to 712d40f Compare June 22, 2026 14:03
@Pijukatel
Pijukatel merged commit 1f7cae9 into master Jun 22, 2026
2 checks passed
@Pijukatel
Pijukatel deleted the claude/quirky-mccarthy-54hv8d branch July 8, 2026 09:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants