feat: add the taskito facade crate - #631
Conversation
Re-exports taskito-core under the name the Python, Node and Java SDKs already use, so Rust users get `cargo add taskito`.
|
Warning Review limit reached
Next review available in: 47 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (7)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Claims
taskitoon crates.io, the one name in the set still unregistered. Rustwas the only SDK without it —
pip install taskito,npm i @byteveda/taskitoand
org.byteveda:taskitoall exist, while a Rust user had to know to reach fortaskito-core. Nowcargo add taskitoworks.What it is
crates/taskitois a re-export and nothing else:taskito::Workerandtaskito_core::Workerare the same type, so the two cratesmix freely in one dependency graph and either name compiles. There is one
definition and one set of docs; anything added to the core root appears here with
no edit. The three features forward verbatim, so
cargo add taskito --features postgresbehaves exactly as the same flag on core.Renaming
taskito-corewas the alternative and is no longer available — it ispublic at 0.22.0, and taking the name that way would break every existing
dependant. A re-export gets the name without that.
This is deliberately not a placeholder. crates.io's name policy discourages
content-free reservations, and the crate ships a real re-export, a README whose
quick-start is compiled as a doctest, and the same LICENSE as its siblings.
Release wiring
taskitojoins the crate set in three places: thepublish-crates.ymluploadlist, the
publish-readinessset inci-rust.yml, and the binding-free tripwirethat keeps pyo3/napi/jni out of the generic crates. It also gets its own semver
gate, guarded like the others on a crates.io baseline existing.
Before the next release — bootstrap needed
taskitodoes not exist on crates.io yet, so it has no trusted publisher, and#630 removed the workflow's token path. A dispatch of Publish to crates.io will
fail until
taskitohas been published once by hand, and it will fail the wholerun, not just that crate.
Sequence:
cargo publish -p taskitolocally, with a crates.io tokenByteVeda/taskito,publish-crates.yml, environmentcrates.io— to match the other threeAfter that the workflow owns it like the rest, and re-runs skip it as already
published.
Verification
cargo test -p taskito --doc— the README quick-start compiles, which is whatproves the re-export actually carries the names it uses
cargo package --locked -p taskito -p taskito-core -p taskito-workflows -p taskito-mesh— all four package and verify against each other; the
taskitotarball carriesREADME, LICENSE,
src/lib.rscargo check -p taskito --all-features— cleancargo clippy --workspace --all-targets --features workflows— zero warningsnode scripts/version.mjs --check— all manifests agree on 0.22.0; the facadeinherits
version.workspace, so it needs no new mirroractionlint— both workflows clean