Legato Release Quality

Hello all,

I work on the team at BRNKL (brnkl.io) along with @coastalbrandon (CEO) and @Kian (software engineer):wave:.

We’ve been working extensively with the Legato and mangOH project. We’ve had our share of ups and downs, but to date we’ve always ended up on top. We’re so thankful for all the hard-work put into these projects. We rely on these contributions heavily to build amazing products.

Something caught my eye recently, and it smells a little bit fishy:

I was a little taken back when I saw this. Legato 18.10.2 is a full proper release, so this alpha quality software must be opt in right? No, it’s not. OK, they must have left the old Data Connection Service in place? No, it appears to be gone. OK, well maybe it will still work? No, it segfaults constantly and creates a brutal bootloop. I really hope I’m wrong about this, but based on my analysis this appears to be the case.

It’s fine that Legato 18.10.2 and the new Data Connection Service are unstable. Most new software is born this way, but I fail to understand why this saw a release. I understand that everyone inadvertently creates bugs, but it seems to me the team knew this was unstable.

If the goal of Legato is for people to adopt it, people must be able to rely on it. This created a pretty huge lapse in my trust for the project.

Fortunately, this is easily remedied. I would suggest fully adopting semantic versioning. It presents a really direct solution to this problem. For example, Legato 18.10.2 should be released as 5.10.2-alpha (assuming a semantic 1.0.0 corresponds to actual release 14.0.0). This gives developers (and tools like package managers) a straight forward way to update dependencies while minimizing the chance of breaking something.

Thanks again to everyone who has contributed in any shape or form. We’re so thankful for the help. Let’s try and make releases easier for everyone.

Hi there,

We are looking into this urgently. Please reach out to me directly - let’s try to get onto a call.

Hi @nvd

Do you happen to know if you have many cellular profiles on your device (possibly >= 10)?

We might have observed this issue on our master branch but the change is not on the 18.10-release branch.
The fix for the issue that we observed is Fix a local array's size in le_dcsCellular_GetChannelList() for colle… · legatoproject/legato-af@4a556bc · GitHub

It seems to apply without conflict on the 18.10-release branch as well, could you eventually check if it’s addressing your issue?

Hey @JonBack and @CoRfr,

Thanks for getting in touch.

I’m confident you folks will fix the data connection service, Sierra is filled with great engineers after all. I’m happy to discuss the data connection service in a separate thread and provide any debugging info required. For now we’ve reverted to Legato 18.09 and things appear to be working well, so there is no urgency on our end.

I would like to keep the focus here on release processes and software ethics. I understand this is not an easy or fun conversation to have, but I’m going to carry on because I believe it’s important.

If the team is aware that a release contains alpha quality software, it should be released as such. Semantic versions exists specifically to convey expectations to the consumer of the software. Legato 18.10.02 to me indicates a stable release, Legato 18.10.02-alpha indicates that I can try the software, but should expect bugs and be prepared to report them, and most importantly I should never ship this to my customers. The only reason I know Legato 18.10.02 contains alpha quality software is because I manually sifted through the release notes.

Almost every other open source project on the planet has adopted semantic versioning to help their consumers select the appropriate version and even perform automatic updates. I believe Legato Should follow suit.

If Legato is an open source project, then it needs to happen in the open. I understand it has a large corporate interest behind it, but hiding major discussions behind private calls is harmful. The people that invest time and effort in Legato deserve to be involved.

Please provide some details about your technical issue so that we can help you.

Hi @CoRfr,

I’ve opened a new thread here: Data Connection Service Fault In Legato 18.10.02

Hey @CoRfr,

My apologies, I think I may have misread this message. Just to make sure I understand correctly: The data connection service is being refactored, but it’s not in the 18.10 release? I was confused because the data connection service was mentioned under the “Alpha Features” header of the 18.10 release notes.

Hi Nick, sorry that you are experiencing problems with the release. My intention wasn’t to hide anything from you by having a voice call, just in my experience it can help to move things along and remove confusion. I myself was confused by your comment that the DCS service had “gone”. We’re fairly confident you have hit upon a regression with the le_data API that was introduced with 18.10. We have been refactoring that area of code and the problem was caught and fixed, but unfortunately after we shipped the release.
Fix a local array's size in le_dcsCellular_GetChannelList() for colle… · legatoproject/legato-af@4a556bc · GitHub should address the issue. I’m discussing with developers about the limit on the profiles, this may change in the future.

In relation to the inclusion of Alpha features, we have chosen to include in our release new standalone features that are not of production quality. These features don’t appear in the Platform Services documentation, and will not until they reach Production. The features should not impact existing Service apis, or quality. The intention is to provide early access and the ability for the community to provide feedback and help shape the feature. 18.10 contains new le_dcs and le_coap Alpha features.

Hi @JonBack,

I think this was the root of my confusion, thanks for addressing it. I really hoped I was wrong and turns out I was.