Skip to content

Publish workspace crates to crates.io#404

Merged
Bisht13 merged 9 commits into
v1from
ab/publish-crates-io
Apr 21, 2026
Merged

Publish workspace crates to crates.io#404
Bisht13 merged 9 commits into
v1from
ab/publish-crates-io

Conversation

@Bisht13
Copy link
Copy Markdown
Collaborator

@Bisht13 Bisht13 commented Apr 9, 2026

Summary

  • Rename and publish workspace crates to crates.io with provekit- prefix: hla, fp-rounding, ntt, bn254-multiplier-codegen, bn254-multiplier, skyscraper, common, prover, passport-input-gen
  • Switch noir dependencies from git to provekit_* crates.io packages
  • Switch spongefish/whir to provekit-spongefish/provekit-whir from crates.io
  • Update binary self-references to use new crate names

Test plan

  • cargo check passes
  • All crates successfully published to crates.io
  • Verify cargo build works from a clean checkout

Bisht13 added 7 commits April 9, 2026 15:49
Rename and publish the following crates to crates.io:
- provekit-hla, provekit-fp-rounding, provekit-ntt
- provekit-bn254-multiplier-codegen, provekit-bn254-multiplier
- provekit-skyscraper, provekit-common, provekit-prover
- provekit-passport-input-gen

Switch noir dependencies from git to provekit_* crates.io packages.
Switch spongefish/whir to provekit-spongefish/provekit-whir from crates.io.
Update binary self-references to use new crate names.
Introduce `Prove::prove_with_json` on the prover trait so callers can
proof from a JSON input string without duplicating noirc_abi parsing
in the FFI layer. Re-export `InputMap` and `InputValue` from
provekit-common so downstream consumers can construct inputs
programmatically without pulling noirc_abi directly.

Also bump workspace crate versions to 0.1.2, add explicit `[lib]`
names to `ntt` and `skyscraper` crates to preserve short crate names
after the `provekit-` publishing prefix, and update nargo_cli to
1.0.0-beta.11-alpha.6.
Enables compiling provekit-common and provekit-prover to wasm32:

- common/Cargo.toml: move xz2 and zstd under
  [target.'cfg(not(target_arch = "wasm32"))'.dependencies].
- common/src/lib.rs: cfg-gate `pub mod file;` for non-wasm32; file I/O
  depends on zstd/xz2/std::fs.
- prover/Cargo.toml: add `witness-generation` (default) and `parallel`
  features; make bn254_blackbox_solver, nargo, and noir_artifact_cli
  optional non-wasm32 target dependencies gated by the feature.
- prover/src/lib.rs: cfg-gate witness-generation imports and the
  generate_witness / prove / prove_with_toml / prove_with_inputs trait
  methods behind cfg(all(feature = "witness-generation", not(target_arch
  = "wasm32"))). prove_with_witness remains available on all targets.
Adds a target-gated getrandom v0.2 js-feature dep on provekit-common so
transitive rand_core 0.6 (via k256 -> provekit_acvm_blackbox_solver)
compiles on wasm32-unknown-unknown. All four published provekit crates
(common, prover, verifier, r1cs-compiler) now build standalone for
wasm32-unknown-unknown with no wrapper crate and no nightly flags.
@Bisht13 Bisht13 marked this pull request as ready for review April 21, 2026 08:21
Bisht13 added 2 commits April 21, 2026 13:57
Fixes CI's `cargo fmt --all --check` step which was blocking the
downstream clippy/build/test/doc steps on this branch.
CI runs `cargo fmt --all --check` without an explicit +toolchain, so it
respects rust-toolchain.toml. The previous stable-1.94.1 pin caused CI
rustfmt to silently ignore unstable rustfmt.toml options (including
struct_field_align_threshold) and demand unaligned struct fields, while
local nightly rustfmt honored them. Matching main's nightly pin aligns
CI behavior with intended formatting.
@Bisht13 Bisht13 merged commit cf4436c into v1 Apr 21, 2026
2 of 3 checks passed
@Bisht13 Bisht13 deleted the ab/publish-crates-io branch April 21, 2026 09:20
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.

1 participant