Post B6yS1StBzR2cFpCQD2 by mhoye@cosocial.ca
(DIR) More posts by mhoye@cosocial.ca
(DIR) Post #B6yS1R80XNhgnC7E1Y by mhoye@cosocial.ca
0 likes, 0 repeats
A brief thread about code and communications: Once people depend on a piece of software - not "use" but "depend" - I believe developers have a greater degree of responsibility to the communities relying on that software.At some point "this software is provided as is with no warranty express or implied" is no more defensible a position than "this building is provided as is and if it falls down well you chose to live in it, whether or not I decide to change it however I like in the future."
(DIR) Post #B6yS1RZIttXQ9qt1ZQ by mhoye@cosocial.ca
0 likes, 0 repeats
I don't think it's a legal question; we live in a society and this is about risk management and community harm reduction. "We've made major changes for security reasons, to code with weak test coverage, so this may break some use cases, please test this before release" - there's nothing like this in the release notes. It's all just bullet points in a flurry of patch-level releases.If this had been shipped as "3.4.2 -> 3.5.0-alpha1" we wouldn't be having this conversation but here we are.
(DIR) Post #B6yS1S0bGPN9WVep7I by mhoye@cosocial.ca
0 likes, 0 repeats
When people depend on something - and I don't mean use, I mean _depend_, the way we depend on mobility aids or accessibility tools, then if you change how they work without notice or consultation, not only will people be furious with you, but they'll be _right._"I've moved the pedals in your car around, and it's a stick shift now." "But I need to get to work." "The car is better now!"The _disrespect_. The _utter contempt_ in that.Developers show people that contempt all. the. time.
(DIR) Post #B6yS1SRXeEvIs4GL6u by mhoye@cosocial.ca
0 likes, 0 repeats
If developers want to disavow that responsibility, they - you - are absolutely allowed. I wrote these pseudolicenses to try and help people do that, a maintenance-terms license that just says provided-as-is-and-we're-serious-about-that.https://github.com/mhoye/maintenance-terms/blob/main/MAINTENANCE-TERMS.mdBut that _can't be the default setting_. If enough people depend-as-in-depend on your software, free-as-in-to-die-alone-in-the-forest is not a tenable default moral position. "We live in a society" means more than just the law.
(DIR) Post #B6yS1StBzR2cFpCQD2 by mhoye@cosocial.ca
0 likes, 0 repeats
... and I don't always know where those lines are but virtually all of the stock utilities that ship with a standard Linux are on the far side of it.There's lots of room between "free as in I found this software by the road in the woods outside of town, fuck off" and "the Eurocracy mandates that I straighten my cravat between keystrokes".People being justly furious when you break their shit with a patch update is 100% foreseeable, and it takes almost no planning and effort to avoid.
(DIR) Post #B6yS1THIXoK7SaTfma by mhoye@cosocial.ca
0 likes, 0 repeats
This may seem entitled, but I have a long list of things in this world that I feel humans - and I specifically - are entitled to, things like clean running water, food that's safe to eat, and medicine that does what it says on the box. Restaurants with clean kitchens in buildings that don't fall down on their own. And this doesn't keep anyone from making herbal remedies or building snowforts or cooking that piece of fish that's _probably_ still good, it just means can't run society like that.
(DIR) Post #B6yS1TWBeSEWClRYzQ by mhoye@cosocial.ca
0 likes, 0 repeats
One notably modern political tactic is the conservative efforts to tell you something is an "entitlement" so they can scold you into giving it up, but these aren't "entitlements". These are baseline expectations in a functioning society. Oh, so what, you think you deserve to just _drink_ whatever comes out of the tap whenever you _want,_ like some sort of _special fancy person_? Yeah. Yeah, I do.Not only that, but I expect to get notified well ahead of time if that might change.
(DIR) Post #B6yS1Tvi7YeLTvNwm0 by mhoye@cosocial.ca
0 likes, 0 repeats
Anyway, one thing that jumped out of Tridge's recent riposte to all this is that he knew about regressions that weren't covered by the test suites, and that's not in the release notes, and he shipped anyway.I have a set of feelings about generative AI, but I guess this newfound "velocity" makes it pretty easy to convince yourself that major, maybe-breaking changes are ... no big deal. Just a patch, damn the downstream, ship another one and reliable semver ends up more genAI roadkill, I guess.
(DIR) Post #B6yS1VQaYEwY7yq7Xc by jrconlin@mindof.jrconlin.com
1 likes, 0 repeats
@mhoyeThere are ample failure cases to go around.Tridge had crap testingFolks presumed that rsync was infallible and reliable forever, even though it was one dude working on it.The code was never fully audited, even though it was used everywhere.No group or organization realized what a failure point "one old dude" is.Honestly? I view the whole LLM thing to be a byproduct. Hell, I view the whole "someone released a breaking change and didn't follow semantic versioning" to also be a byproduct.The problem was a critical bit of infrastructure, intentional or not, was the One Dude from the XKCD cartoon. We ignored the red flags, and are angry that we got hurt, instead of doing the work to fix all the other red flags that are out there.
(DIR) Post #B6ySod9YcLCSHEIWsy by lanodan@queer.hacktivis.me
0 likes, 0 repeats
@dalias @jrconlin Yeah, although I think there's often a lack of "trust but verify", as well as a lack of maintained communication with developers of your dependencies (and with your users when you're a maintainer).I think part of that is due to collective lack of time/energy, but I think another part is also a bit of a "throw software into a repo/forge/…" and usually nothing much beyond that.
(DIR) Post #B6zcGn705yCaNyle88 by azonenberg@ioc.exchange
0 likes, 0 repeats
@mhoye yeeeah this is something I have tried really hard to avoid in ngscopeclient.Completely aside from slop code (which we have a project-wide ban on) even in the v0.x series I've tried hard to ensure no breaking changes that will result in old user sessions failing to load, going back to the very first version with file serialization support.Sometimes there are unavoidable changes that require the end user to reconfigure something because the interface to a filter graph block has changed, but that's the point of the v0.x series - there is inherently less of an expectation of stability than after 1.0 and it allows an early-stage project to correct design mistakes from its infancy. Making a v1.0 release implies a much higher degree of stability and reliability and is (or should be) a far more major commitment. And we document them when they happen.
(DIR) Post #B6zcQvnaeVPsDvWWhc by mhoye@cosocial.ca
0 likes, 0 repeats
@azonenberg I can definitely understand why the Dwarf Fortress and Inkscape people were like at version 0.99999312 or whatever for years. Even so, it doesn't take a ton of effort to say, we need to make the following changes for these reasons, we believe they are going to break X and would like your help to test it, we know they are going to break Y which we regret but believe necessary, and unless something huge comes to light we'll make this change to the new version number on Z date.
(DIR) Post #B6zcQwhFJZw50XYyS8 by azonenberg@ioc.exchange
0 likes, 0 repeats
@mhoye Yeah. But that's also a game which has a lower expectation of stability than a serious engineering tool (even one in relatively early development).And that's pretty much what we do...* git head can change anything at any time for any reason, and will sometimes come with a request to users to test a particular sweeping change that we can't easily regression test locally* a patch release should not result in any end-user visible changes other than new features becoming available* a new minor version in the v0.x series is generally not allowed to permanently break anything (e.g. make old files not load anymore, or remove a previously working feature), but is allowed to make documented interface changes that temporarily mess something up until the end user reconfigures their project to match the new way things are done
(DIR) Post #B6zu6S0rU661EA7CKG by tuban_muzuru@beige.party
0 likes, 0 repeats
@azonenberg @mhoye I'm not sure this is germane, but I've seen situations where the prod/ security was so awkward the security modules become difficult to test....