diff --git a/README.md b/README.md index c10053bd85..a2bc36428a 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,12 @@ working with Zcash. These libraries are currently under development and have not been fully-reviewed. +## Cross-Workspace Dependency Cycle + +There is a complication in crate dependencies documented in +[`components/zcash_note_encryption/README.md`](./components/zcash_note_encryption/README.md) +and [issue #768](https://github.com/zcash/librustzcash/issues/768). + ## License All code in this workspace is licensed under either of diff --git a/components/zcash_note_encryption/README.md b/components/zcash_note_encryption/README.md index 612b7a64fb..20a0a4d879 100644 --- a/components/zcash_note_encryption/README.md +++ b/components/zcash_note_encryption/README.md @@ -12,6 +12,15 @@ users with their own existing types can similarly implement the trait themselves [`zcash_primitives`]: https://crates.io/crates/zcash_primitives [`orchard`]: https://crates.io/crates/orchard +## Cross-Workspace Dependency Cycle + +There is a cross-workspace cyclic dependency: `zcash_client_backend` (local) +depends on [`orchard`](https://github.com/zcash/orchard) which depends on this crate +`zcash_note_encryption`. For this reason `zcash_client_backend` does not depend on the local +`zcash_note_encryption` crate, but rather the published crate release. + +This issue is tracked in [#768](https://github.com/zcash/librustzcash/issues/768). + ## License Licensed under either of diff --git a/zcash_client_backend/Cargo.toml b/zcash_client_backend/Cargo.toml index bcd0038e33..d6650ffce3 100644 --- a/zcash_client_backend/Cargo.toml +++ b/zcash_client_backend/Cargo.toml @@ -23,6 +23,7 @@ development = ["zcash_proofs"] incrementalmerkletree = { version = "0.4", features = ["legacy-api"] } zcash_address = { version = "0.3", path = "../components/zcash_address" } zcash_encoding = { version = "0.2", path = "../components/zcash_encoding" } +# Note: this is not the local workspace crate! See `components/zcash_note_encryption/README.md` for rationale: zcash_note_encryption = "0.4" zcash_primitives = { version = "0.12", path = "../zcash_primitives", default-features = false } diff --git a/zcash_client_sqlite/Cargo.toml b/zcash_client_sqlite/Cargo.toml index c58dba2a7d..12f5deb49d 100644 --- a/zcash_client_sqlite/Cargo.toml +++ b/zcash_client_sqlite/Cargo.toml @@ -51,6 +51,7 @@ proptest = "1.0.0" rand_core = "0.6" regex = "1.4" tempfile = "3.5.0" +# Note: this is not the local workspace crate! See `components/zcash_note_encryption/README.md` for rationale: zcash_note_encryption = "0.4" zcash_proofs = { version = "0.12", path = "../zcash_proofs" } zcash_primitives = { version = "0.12", path = "../zcash_primitives", features = ["test-dependencies"] }