The gem wraps the smbcloud-model Rust crate via a native extension. Publishing requires coordinating the Rust crate release and the gem release in order.
- Rust toolchain installed
bundlerandgemCLI available- RubyGems account with push access to
smbcloud-model
Publish smbcloud-model to crates.io first. The gem's native extension depends on it.
cargo publish -p smbcloud-modelSwitch gems/model/ext/model/Cargo.toml from the local path to the published version:
# Before (development)
smbcloud-model = { path = "./../../../../crates/smbcloud-model" }
# After (release) — match the version just published
smbcloud-model = "0.3"Set gems/model/lib/model/version.rb to match the smbcloud-model crate version:
module Model
VERSION = '0.3.31'
endcd gems/model
bundle exec rake compilebundle exec rake buildThis produces pkg/smbcloud-model-<version>.gem.
gem push pkg/smbcloud-model-<version>.gemTo work against the local crate instead of the published one, use the path dependency:
smbcloud-model = { path = "./../../../../crates/smbcloud-model" }Remember to revert this before publishing.