-
-
Notifications
You must be signed in to change notification settings - Fork 85
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
Make bumping the wire format an API breaking change #749
Comments
The original rationale for decoupling the wire format version from the defmt semver version was that doing a defmt semver-major bump is a giant pain. You can't mix defmt versions in a binary (#426), and this seems fundamentally unfixable with the defmt design. So upgrading defmt requires ALL libraries using it to update. And in turn, that update requires a major bump of the library, because it'll break binaries that are still using the older version. This happened in the defmt 0.2 -> 0.3 upgrade. It was a giant pain, it took MONTHS. Decoupling the versions allows defmt to evolve while avoiding regularly inflicting this pain into the ecosystem. I really don't think we should walk back on this decision. However, I remember discussing making defmt-decoder support multiple wire format versions, which it seems it never happened. Currently old defmt-decoder/probe-run versions support only wire If the new versions added support for |
Would it be another option to do a semver bump for defmt-decoder only when the wire format changes? |
It'd be nicer to have a single defmt-decoder version support multiple wire format versions. If it's one-to-one, bins can hack it by depending on multiple defmt-decoder versions at once, yes, but:
|
Requiring an update to projects using Crates actually using that are far fewer, and being able to support multiple wire versions so that actual users can safely The fact that For |
750: Add support for decoding wire format version 3 r=Urhengulas a=jannic As suggested in #749 (comment), it would be nice if defmt-decoder could handle older wire format versions transparently. This patch implements support for version 3. A version of `probe-run` compiled against this was verified to work with defmt versions 0.3.2, 0.3.3 and 0.3.4. Co-authored-by: Jan Niehusmann <jan@gondor.com> Co-authored-by: Johann Hemmann <johann.hemmann@code.berlin>
Hey @Urhengulas after the latest release of the changes in #747 I am still having problems aligning versions in my setup 😓
It appears to me that we missed bumping the dependency
defmt-macros
ofdefmt
in 3789241 and also earlier in 1cbbb33, it should now depend ondefmt-macros-0.3.4
.Following this I tried to wrap my head around how the wire format plays together with the SemVer guarantees, and I think that bumping the wire format is an API breaking change.
This is related to the changes introduced as of #540, which solved #287.
The text was updated successfully, but these errors were encountered: