Skip to content

IDE wants to update to Version 6 beta #787

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

Closed
W4KRL opened this issue Jul 26, 2018 · 6 comments
Closed

IDE wants to update to Version 6 beta #787

W4KRL opened this issue Jul 26, 2018 · 6 comments
Labels

Comments

@W4KRL
Copy link

W4KRL commented Jul 26, 2018

Using the Arduino version 1.8.5 IDE with ArduinoJson 5.13.2. Windows 10 PC. The IDE continually pops up a notification that there are library updates available. It wants to install the latest 6.x beta.

Perhaps it would be better to keep the beta off the Arduino library system until released.

@SConaway
Copy link

Solution: add a .development file to v5's root.

@bblanchon
Copy link
Owner

Hi,

I understand that the update notification is annoying, but I don't have a better solution.
Let me explain.

People have been asking for new features, and the only way I could deliver them was through a different API. Breaking changes are a pain in the ass, so I want to bundle them in a big v5 to v6 transition. I want to make sure that all breaking changes are behind before inviting everyone to switch to the new API, hence the "beta" suffix.

I understand that you would prefer that the beta would not be available through the library manager; but if I do that, nobody will provide any feedback on the new version. This feedback is crucial to understand how people use (or misuse) the library to see how I can improve their experience in the long run. I firmly believe in the virtues of "release early / release often" principle in producing the best possible software, and this is what is happening here.

Curiously, the Arduino Library Manager requires library developers to respect semantic versioning (as I do) but ignores it completely when it comes to update notification. Indeed, we could expect that upgrading 5.13.2 to 6.2.3-beta should be flagged as rather risky and therefore should not be suggested as an automatic update. Hopefully, this feature will happen someday because all libraries are bound to evolve and to make some breaking changes too.

That means that for a few months, you'll have to ignore the notification or disable it entirely. Another option is to uninstall ArduinoJson and download the single header distribution instead. This solution allows using different versions for multiple projects.

Thank you for your understanding.

Regards,
Benoit

@per1234
Copy link

per1234 commented Jul 28, 2018

I understand that you would prefer that the beta would not be available through the library manager; but if I do that, nobody will provide any feedback on the new version.

I get what you're saying but I don't completely agree. Any user suitable for beta testing should have no problem doing a manual installation of this library, especially if you provide some instructions in the documentation.

should be flagged as rather risky and therefore should not be suggested as an automatic update.

That would defeat your use of Library Manager to get more beta testers.

ignores it completely when it comes to update notification. Indeed, we could expect that upgrading 5.13.2 to 6.2.3-beta should be flagged as rather risky and therefore should not be suggested as an automatic update. Hopefully, this feature will happen someday because all libraries are bound to evolve and to make some breaking changes too.

This is something I've been thinking about for a while and had it on my "to-do" list to open a feature request. I've now done so: https://github.com/arduino/Arduino/issues/7837. I welcome any feedback on that proposal

@W4KRL
Copy link
Author

W4KRL commented Jul 28, 2018 via email

@bblanchon
Copy link
Owner

Hi Karl,

Since you embed ArduinoJson as part of a kit, I recommend that you use the single header version and distribute it with the source code.

Until Arduino IDE can properly handle versioned dependencies, we will always have this problem: old programs won't work with newer libraries. It's not just a matter of 5.13 to 6.2, because we could have a similar problem from 5.13 to 5.14. For example, what if I increase the size of the library and it doesn't fit in the MCU anymore? You don't care about the new features, all that you want is to build your project as last time. We cannot ask every developer to update their program each time a library is updated, that's too much risk for a very little benefit. That's why every package manager (npm, pip, Bundler, Gradle...) attach a version with each dependency.

Right now, the only solution that I found is to embed the library code within the project code. This way, you are sure that your users compile the project with the same library as you. That suits your project very well, that's why I make this recommendation (it's only problematic for libraries that use ArduinoJson, because the user may end up with several versions compiled in the same binary).

PS: Thank you for buying the book, it's very encouraging; I hope genuinely you like it.

Regards,
Benoit

@bblanchon
Copy link
Owner

ArduinoJson 6 finally got out of beta; it's time to close this issue.

Repository owner locked and limited conversation to collaborators Mar 29, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

4 participants