libusb icon indicating copy to clipboard operation
libusb copied to clipboard

libusb and Semantic Versioning

Open mcuee opened this issue 4 years ago • 2 comments

Ref: https://github.com/probe-rs/probe-rs/pull/580 From @Yatekii

Yes, it is indeed the version missmatch (yes, this sounds stupid because it effectively means that libUSB is not following semver as they just changed a patch version aparently). But as long as jaylink is not released with it we can't really use it. Sure, we can assume that it releases before we do (because we always take so long :D), but still :)

mcuee avatar Mar 19 '21 01:03 mcuee

https://semver.org/

Semantic Versioning 2.0.0 Summary Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when you make incompatible API changes,
  • MINOR version when you add functionality in a backwards compatible manner, and
  • PATCH version when you make backwards compatible bug fixes.
  • Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

mcuee avatar Mar 19 '21 01:03 mcuee

https://github.com/a1ien/rusb/issues/53

From @Yatekii

@mcuee it is 100% the clashing dependencies.

  • It is not libjaylink (the C library) but the Rust crate called jaylink.
  • It does not matter if a J-Link is connected or not. We never even scan for J-Link devices. It crashes when scanning general USB devices with libusb already. Having the dependency alone linked suffices to crash it.

It really is just the incompatible interfaces. Which means libusb violates Semver :)

Thanks for investigating :) We know the fix now, which is first downgrading to rusb 0.6.0 and when jaylink upgrades to 0.8.0 we'll upgrade too.

mcuee avatar Mar 19 '21 01:03 mcuee