Skip to content

Release luwen to crates.io in CI#153

Merged
kaplanz merged 10 commits intomainfrom
zkaplan/crates.io
Mar 23, 2026
Merged

Release luwen to crates.io in CI#153
kaplanz merged 10 commits intomainfrom
zkaplan/crates.io

Conversation

@kaplanz
Copy link
Collaborator

@kaplanz kaplanz commented Mar 19, 2026

No description provided.

@kaplanz kaplanz force-pushed the zkaplan/crates.io branch from 0e87477 to cfab29f Compare March 23, 2026 14:41
@kaplanz kaplanz requested review from Copilot, kikkiakki and sbansalTT and removed request for sbansalTT March 23, 2026 14:42
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the release automation to publish the Rust workspace to crates.io from CI, and adjusts workspace manifests to support that publishing flow.

Changes:

  • Remove package.metadata.workspaces (independent = true) metadata across workspace crates and apps.
  • Mark non-crates.io packages (apps and bindings) as publish = false so workspace publishing can focus on the intended crates.
  • Update the GitHub release workflow to bump versions with cargo-edit and add a new job to publish to crates.io.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
Cargo.toml Removes cargo-workspaces metadata from the root package manifest.
crates/luwen-api/Cargo.toml Moves more package fields to workspace inheritance; removes cargo-workspaces metadata.
crates/luwen-def/Cargo.toml Removes cargo-workspaces metadata.
crates/luwen-kmd/Cargo.toml Removes cargo-workspaces metadata.
crates/luwen-pci/Cargo.toml Removes cargo-workspaces metadata.
bind/pyluwen/Cargo.toml Sets publish = false; removes cargo-workspaces metadata.
bind/libluwen/Cargo.toml Sets publish = false; removes cargo-workspaces metadata.
apps/*/Cargo.toml Sets publish = false; removes cargo-workspaces metadata.
crates/luwen-api/src/chip/blackhole/spirom_tables.rs Minor change to the padding check logic (is_multiple_of → modulo).
apps/flash_glx_revc_board_id/src/main.rs Removes the --index option and associated device filtering.
.github/workflows/release.yml Switches version bumping to cargo-edit and adds a crates.io publish job.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

}

println!("Found {} device(s)", devices.len());

This comment was marked as off-topic.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This commit isn't relevant to this PR, ignore it for this code review.

#[derive(clap::Parser)]
struct Args {
#[arg(long, help = "Don't flash; only print what the new board ID would be")]
dry_run: bool,

This comment was marked as off-topic.

Copy link
Contributor

Copilot AI commented Mar 23, 2026

@kaplanz I've opened a new pull request, #154, to work on those changes. Once the pull request is ready, I'll request review from you.

@kaplanz kaplanz force-pushed the zkaplan/crates.io branch from 9fb8b5d to bd80f59 Compare March 23, 2026 15:23
kaplanz added 3 commits March 23, 2026 11:36
Tighten the set-version invocation to target only `luwen` rather than
the whole workspace. Since all publishable crates inherit the workspace
version, bumping `luwen` cascades to all of them. Using `--workspace`
would also bump the apps, which is harmless but noisy.

WARNING: This breaks if `luwen` is ever given an explicit version
instead of inheriting from the workspace, as sub-crate versions would
then not get bumped. Switch to explicit per-crate flags if that ever
happens.
rust-embed resolves #[folder] paths relative to the crate root. The axi-data
directory lives at the workspace root, so the original ../../axi-data path
worked in development but broke during `cargo publish --workspace`, which
extracts each crate into a temp directory and verifies it builds in isolation.

Add a symlink at crates/luwen-api/axi-data -> ../../axi-data so Cargo
includes the .bin files in the tarball, and update the folder path accordingly.
The workspace root copy remains canonical — generate-names still writes there.
@kaplanz kaplanz marked this pull request as ready for review March 23, 2026 17:46
Copy link
Contributor

@sbansalTT sbansalTT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not super familiar with the release process, but this looks good to me! Long time needed, ty Zak :)

@kaplanz kaplanz merged commit ef45441 into main Mar 23, 2026
17 checks passed
@kaplanz kaplanz deleted the zkaplan/crates.io branch March 23, 2026 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants