Repository navigation
Publish the workspace crates to Unity's internal Cargo registry - #18
Merged
chris-addison merged 1 commit intoOct 20, 2026
Merged
Conversation
Unity is adding an internal Cargo registry (hub-cargo-prod-local on unity3d.jfrog.io) so other Unity Rust apps can share Hub crates such as the cloud-ui component library. cloud-ui depends on this fork, and `cargo publish` rejects git dependencies, so these crates have to be in the registry first. - Every crate now publishes only to the `unity` registry, with a `-unity.20261019` prerelease suffix on its upstream version. The suffix keeps the fork apart from upstream gpui-ce on crates.io, and the workspace's own dependencies on each other pin it exactly. - wgsl-rs comes from crates.io at =0.1.0-beta.6 instead of the git pin at b2de16a, which is an ancestor of that release. The fork builds against it unchanged, and it shares this workspace's naga 30, so the second naga the git pin brought along is gone from Cargo.lock. - gpui-ce-fonts stays unpublished. It embeds fonts from outside its crate, and every crate uses it only in tests, so those dev-dependencies drop their version and `cargo publish` strips them. - gpui-ce and gpui_ce_wgpu take gpui_ce_platform as a path-only dev-dependency for the same reason: platform depends on both, and a versioned edge back is a cycle no publish order can satisfy. - .cargo/config.toml names the registry, so a plain checkout publishes with `cargo publish --workspace --registry unity --exclude perf --exclude gpui-ce-fonts`. This repository is public and runs no publish itself: the Unity Hub's CI checks out a pinned commit and publishes it. To ship a change, move the affected crates' suffix. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
chris-addison
marked this pull request as ready for review
October 20, 2026 02:46
francois-unity
added a commit
that referenced
this pull request
Oct 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Makes the workspace crates publishable to Unity's internal Cargo registry, so the Unity Hub can publish the crates it pins from its own
publish-crates.yml(Unity-Technologies/unity-hub#17705). The Hub'scloud-uicrate depends on this fork, andcargo publishrejects git dependencies, so these crates have to be in the registry first. This repository runs no publish job itself. The change touches only Cargo manifests, the lockfile and config.-unity.20261019suffix, so nothing collides with upstream gpui-ce on crates.io. Crates publish only to theunityregistry, which.cargo/config.tomldefines. Their dependencies on each other pin the exact version withregistry = "unity".=0.1.0-beta.6instead of the git pin atb2de16a, which is an ancestor of that release. The fork builds against it unchanged, and it uses this workspace's naga 30, so the second naga is gone fromCargo.lock.deny.tomlno longer allows its git source.gpui-ce-fontsstays unpublished, because it embeds font files from outside its crate. Every crate uses it only in tests, so those dev-dependencies are now path-only andcargo publishstrips them.gpui-ceandgpui_ce_wgputakegpui_ce_platformas a path-only dev-dependency.gpui_ce_platformdepends on both, so a versioned edge back is a cycle that no publish order can satisfy.To publish a later change, move the suffix on the affected crates.
The Hub pins these with its git
revkept, plusversionandregistry = "unity":gpui-ce=0.2.2-unity.20261019gpui_ce_platform=0.1.0-unity.20261019gpui_ce_wgpu=0.1.0-unity.20261019gpui_ce_parley=0.1.0-unity.20261019Testing
cargo publish --workspace --dry-run, fresh clonecargo publish --no-verify --dry-runwith one-pper cratecargo check --workspace --all-targetscargo test -p gpui_ce_renderrenderer_source_auditcargo deny check sourcesThe publish dry runs ran on macOS against a local stand-in for the registry index.
Not covered: an upload to the real registry, which happens from the Hub's workflow. Windows was not compiled locally;
gpui_ce_windowsuses onlyvec2fandvec4ffrom wgsl-rs, the same items the macOS build compiles.🤖 Generated with Claude Code