This repo ships:
- Server binary:
skit(crate:streamkit-server) - Client CLI:
skit-cli(crate:streamkit-client) - Optional crates for other developers (crates.io)
This release flow publishes signed registry metadata to GitHub Pages and bundle artifacts to GitHub Releases.
# Generate an unencrypted minisign keypair for registry signing.
# Keep the secret key safe and commit the public key.
minisign -G -W -s /tmp/streamkit.key -p docs/public/registry/streamkit.pubSet the GitHub Actions secret MINISIGN_SECRET_KEY to the contents of the
secret key file:
cat /tmp/streamkit.keyIf docs/public/registry/streamkit.pub contains a placeholder, overwrite it
with the generated public key before tagging.
- When present,
pocket-ttsrequires OpenSSL 3 (libssl.so.3,libcrypto.so.3).- Ubuntu:
libssl3
- Ubuntu:
- Native plugins expect system
libstdc++andlibgcc_s.
git tag vX.Y.Z
git push origin vX.Y.ZUse the GitHub Actions workflow Marketplace Release with:
version: marketplace version (e.g.,1.2.3)release_tag(optional): defaults tomarketplace-v<version>
This workflow publishes bundle assets to the GitHub Release for release_tag
and opens the registry PR without rebuilding the server/UI. Both tag releases
and marketplace-only releases share the same reusable marketplace workflow
(.github/workflows/marketplace-build.yml).
Ensure "Allow GitHub Actions to create and approve pull requests" is enabled in repo settings so the registry PR can be opened automatically.
Registry PR commits are signed by the workflow. Add these secrets:
REGISTRY_GPG_PRIVATE_KEY: ASCII-armored private key for the registry botREGISTRY_GPG_PASSPHRASE: passphrase for the private keyREGISTRY_GPG_KEY_ID: GPG key fingerprint for the registry bot
If you want CI checks to run on the registry PR, add a fine-grained PAT for the
bot as REGISTRY_PR_TOKEN with contents: write and pull-requests: write.
- GitHub Release includes
*-bundle.tar.zstassets. - Registry metadata is published after merging the registry PR:
https://streamkit.dev/registry/index.json. - Verify a manifest signature:
minisign -V -P "$(tail -n 1 docs/public/registry/streamkit.pub)" \
-m manifest.json \
-x manifest.minisigstreamkit-corestreamkit-apistreamkit-plugin-sdk-nativestreamkit-plugin-sdk-wasm
Other workspace crates are marked publish = false to avoid accidental publication.
- Publish
streamkit-core - Publish
streamkit-plugin-sdk-wasm - Publish
streamkit-api - Publish
streamkit-plugin-sdk-native
# Authenticate once
cargo login
# Sanity checks
just test
just lint
# Publish in order (use --dry-run first if you want)
cargo publish -p streamkit-core
cargo publish -p streamkit-plugin-sdk-wasm
cargo publish -p streamkit-api
cargo publish -p streamkit-plugin-sdk-native- Publishing requires network access to crates.io.
streamkit-apiandstreamkit-plugin-sdk-nativedepend onstreamkit-core; if crates.io index propagation is slow, retry the publish step after a minute.