Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document zcash_note_encryption non-local dependency rationale & doc work-around. #858

Conversation

nathan-at-least
Copy link
Contributor

I had forgotten about the issue in #768 and just ran cargo doc and was confused by the warning. It took me a bit to track down via cargo tree -i zcash_note_encryption, then I rediscovered #768.

So I figured many devs/consumers who are poking around here may also get confused and I added in-band docs about the issue.

@codecov
Copy link

codecov bot commented Jun 17, 2023

Codecov Report

Patch coverage has no change and project coverage change: -0.01 ⚠️

Comparison is base (d2f105e) 70.12% compared to head (8152499) 70.11%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #858      +/-   ##
==========================================
- Coverage   70.12%   70.11%   -0.01%     
==========================================
  Files         125      125              
  Lines       11862    11862              
==========================================
- Hits         8318     8317       -1     
- Misses       3544     3545       +1     

see 1 file with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

@nuttycom
Copy link
Contributor

I think that rather than change this documentation, and then immediately have to remove it once we remove zcash_note_encryption from the librustzcash repository, we should instead just pull zcash_note_encryption out of the workspace into its own repository and fix the problem once and for all.

Comment on lines +17 to +20
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.
Copy link
Contributor

Choose a reason for hiding this comment

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

That isn't cyclic, right? The issue is that zcash_client_backend might depend on a different version of zcash_note_encryption to orchard; not that there is any cycle in the dependency graph (which Rust and cargo do not support).

Suggested change
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.
There is a cross-workspace dependency that requires care with versioning:
`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.

Copy link
Contributor

@daira daira left a comment

Choose a reason for hiding this comment

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

utACK modulo comment.

@nuttycom
Copy link
Contributor

nuttycom commented Oct 4, 2023

@nathan-at-least this is now conflicted and you have not responded to review, can you please revisit this?

@nuttycom nuttycom marked this pull request as draft October 4, 2023 15:16
@str4d
Copy link
Contributor

str4d commented Nov 18, 2023

This is obsoleted by #1041.

@str4d str4d closed this Nov 18, 2023
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.

4 participants