cryspen / libcrux

The formally verified crypto library for Rust
https://cryspen.com/libcrux
Apache License 2.0
81 stars 13 forks source link

PQCP release workflow #302

Open franziskuskiefer opened 3 months ago

franziskuskiefer commented 3 months ago

This issue tracks the pqcp packaging and release policies.

franziskuskiefer commented 3 months ago
jschneider-bensch commented 3 months ago
jschneider-bensch commented 3 months ago

The following Cargo.toml e.g. has the package metadata and release profile settings pulled down from the workspace, as well as replacing local path dependencies by the libcrux repo link. (This works as a first step, but in the code package there probably shouldn't be a dependency on libcrux-dev, right?)

[package]
name = "libcrux-ml-kem"
version = "0.0.2-pre.2"
authors = ["Cryspen"]
license = "Apache-2.0"
homepage = "https://github.com/cryspen/libcrux"
edition = "2021"
repository = "https://github.com/cryspen/libcrux"
readme = "Readme.md"
exclude = ["/tests", "/implementation_notes.pdf"]

[dependencies]
rand_core = { version = "0.6" }
libcrux-platform = { git = "https://github.com/cryspen/libcrux", version = "0.0.2-pre.2", branch = "dev" }
libcrux-sha3 = { git = "https://github.com/cryspen/libcrux", version = "0.0.2-pre.2", branch = "dev" }
libcrux-intrinsics = { git = "https://github.com/cryspen/libcrux", version = "0.0.2-pre.2", branch = "dev" }

# This is only required for verification.
# The hax config is set by the hax toolchain.
[target.'cfg(hax)'.dependencies]
hax-lib = { git = "https://github.com/hacspec/hax/" }

[features]
default = ["std"]
simd128 = ["libcrux-sha3/simd128"]
simd256 = ["libcrux-sha3/simd256"]
tests = []                         # Test utilities. DO NOT USE.
std = []

[dev-dependencies]
rand = { version = "0.8" }
serde_json = { version = "1.0" }
serde = { version = "1.0", features = ["derive"] }
hex = { version = "0.4.3", features = ["serde"] }
criterion = "0.5"
libcrux-ml-kem = { path = ".", features = ["tests"] }

[[bench]]
name = "ml-kem"
harness = false

[profile.release]
lto = "fat"
codegen-units = 1
panic = "abort"
jschneider-bensch commented 3 months ago

I have a PR for an update script at #323, just waiting for #324 to get merged so I can address any changes from that.

jschneider-bensch commented 2 months ago

Originally, this issue tracked progress on the initial PQCP release. Now it tracks issues around the PQCP release workflow in general.

github-actions[bot] commented 2 weeks ago

This issue has been marked as stale due to a lack of activity for 60 days. If you believe this issue is still relevant, please provide an update or comment to keep it open. Otherwise, it will be closed in 7 days.