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

Support v0.4: Pin iota-crypto versions #829

Closed
wants to merge 16 commits into from

Conversation

olivereanderson
Copy link
Contributor

@olivereanderson olivereanderson commented May 2, 2022

Description of change

The release of iota-crypto version 0.9.2 introduced a breaking change by bumping their bee-ternary dependency to version 0.6.0 which then breaks compilation of bee-pow: 0.2.0 imported by iota-client (see iotaledger/bee#1360 for a better description).

This PR pins dependencies on iota-crypto (and updates the dependency on iota-client) thus making it possible to build identity: ^0.4 without the need for library consumers to adjust their dependencies on iota-crypto (and other breaking crates) in their Cargo.lock file. Note that a fix for the dev branch was merged in #822.

Open questions

  • For some reason specifying version ranges >=0.7, <= 0.9.1 for the iota-crypto dependency in identity-iota leads to iota-crypto: 0.9.2 being pulled. It seems like bee-message pulls 0.9.2 instead of using 0.9.1 unless at least one of our crates has a strict equality iota-crypto version =0.9.1. It seems like Cargo is not smart enough to re-use 0.9.1 when given enough freedom. As a somewhat hacky workaround I simply pinned the version to =0.9.1 in identity-iota which did lead to a correct build. Is this OK?
  • I could not figure out why the iota-client dependency could not continue using the pinned git hash without breaking builds, but it works now using version ^1.1.1 published on crates.io. Is this OK?

Links to any relevant issues

Be sure to reference any related issues by adding fixes issue #.

Type of change

Add an x to the boxes that are relevant to your changes.

  • Bug fix (a non-breaking change which fixes an issue)
  • Enhancement (a non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation Fix

How the change has been tested

Several builds have been successfully built and tested locally and in the CI.

Change checklist

Add an x to the boxes that are relevant to your changes.

  • I have followed the contribution guidelines for this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

@olivereanderson olivereanderson added Bug Something isn't working. Patch Change without affecting the API that requires a patch release. Part of "Patch" section in changelog labels May 2, 2022
@olivereanderson olivereanderson changed the title Pin iota-crypto Pin iota-crypto versions May 3, 2022
@eike-hass eike-hass added Rust Related to the core Rust code. Becomes part of the Rust changelog. and removed Bug Something isn't working. labels May 3, 2022
@olivereanderson olivereanderson self-assigned this May 3, 2022
@olivereanderson olivereanderson changed the title Pin iota-crypto versions Support v0.4: Pin iota-crypto versions May 3, 2022
@olivereanderson
Copy link
Contributor Author

It might be better for iota-crypto to yank the 0.9.2 release. I have asked them whether it would be possible for them to do that here: iotaledger/bee#1360 (comment)

@eike-hass eike-hass deleted the v0.4.1-rust branch June 3, 2022 08:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Patch Change without affecting the API that requires a patch release. Part of "Patch" section in changelog Rust Related to the core Rust code. Becomes part of the Rust changelog.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants