thin-edge.io icon indicating copy to clipboard operation
thin-edge.io copied to clipboard

Bump rumqttc from 0.10.0 to 0.12.0

Open dependabot[bot] opened this issue 3 years ago • 4 comments

Bumps rumqttc from 0.10.0 to 0.12.0.

Changelog

Sourced from rumqttc's changelog.

rumqttc v0.12.0

  • Enable compilation without rustls as a dependency using --no-default-features (#365)
  • Rework variants of ConnectionError (#370)
  • New constructor MqttOptions::parse() using url (#379)
  • Use get_mut() instead of index based access to ensure no panic (#384)
  • Better error messages (#385)

rumqttd v0.11.0

  • Enable compilation without rustls as a dependency using --no-default-features (#365)
  • Better error messages (#385)

R11


rumqttc v0.11.0

  • tls::Error is now public
  • rustls upgraded to 0.20
  • Manual acknowledgment of Publishes received by setting MqttOptions.manual_acks = true and passing received publish packet to Client.ack()
Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

dependabot[bot] avatar Jul 25 '22 07:07 dependabot[bot]

So there are several issues that keep this PR from working:

  • In this commit from the rumqtt project (thankfully committed with the message "cleanup" that does not help us at all here), the rumqttc::ConnectionError type was changed. Because of lacking commit message, we don't know why. I have too little domain-knowledge to update the test accordingly, but git-blame information shows @didier-wenzek as author of this (in 7b559af54b), so maybe he knows what to do. Code in question is this piece.
  • Next issue is the imports in the "tedge" crate authored by @PradeepKiruvale in 0de908a44eb02d9d5f780f3d18276f1265191cd5. Thankfully, the commit in the rumqtt project that made these imports go away is also completely useless, because they changed quite a few lines with the useless message "update rustls to 0.20" - So it does not tell us anything why the re-exports were removed. As said elsewhere, there is also no changelog entry for this in the releases (or I didn't find it). Maybe the fix is to import the modules from tokio_rustls like they did before.
  • The third and last issue is here. Apparently, the TlsConfiguration::from impl now expects rumqttc::ClientConfig instead of rustls::ClientConfig. That might be easier to fix, I will clear that up. I did not invest the effort to find out what commits in the rumqtt project changed this, because I already know that it is committed really badly. :cry:

@didier-wenzek and @PradeepKiruvale, could you have a look at the respective points and tell me how to clean them up properly? I lack the domain specific knowledge here to decide what the right way is here!


In general: Above points show how important decent commit messages are. The rumqtt project seems to be one particular bad instance of bad commits, which makes it hard for us to comprehend why things where changed the way they were changed.

matthiasbeyer avatar Jul 27 '22 08:07 matthiasbeyer

Apparently, the last point is not easier to clear up: They (the rumqtt project) failed to link to the appropriate documentation how to build the config object, and their codebase does not have the type they mention.

:angry:

matthiasbeyer avatar Jul 27 '22 08:07 matthiasbeyer

Thanks @matthiasbeyer for this investigation.

All these API changes, with no insight of their motivation nor workaround, remove my last hesitations: we must move away from rumqttc. The API is not so easy to use, there is no way to acknowledge messages, the tokio runtime is required, they are not reactive and now these breaking changes.

Shorter term - I will see what can be done to fix the 3 points you highlighted.

didier-wenzek avatar Jul 27 '22 09:07 didier-wenzek

Hi! Apologies for the bad experience here. This repo is going through a lot of flux and we are setting up processes internally to address these. Would you be interested in connecting with us in slack so that we can give you better support?

tekjar avatar Aug 08 '22 12:08 tekjar

Superseded by #1463.

dependabot[bot] avatar Oct 03 '22 07:10 dependabot[bot]