software engineering is a constant fight against entropy. GitHub code search uncovers the scope of tool rot in open source projects.
To be fair I feel like this can be said about nearly any task or process. Documentation is a constant fight against entropy. Working safely is a constant fight against entropy/complacency. And so on
82% of Open-Source Projects Suffer from Tool Rot
21–30 of 61 posts
Re: 82% of Open-Source Projects Suffer from Tool Rot
#22The practical consequences of running an outdated eslint version are, for most projects, zero. The cost of upgrading is non zero. So upgrading only happens when there's a compelling reason to update like: - A real security issue - things like the reDoS example cited are part of the crying wolf that causes people to treat security scanners less seriously - A new feature (lint rule in eslint's case, or maybe new JS syn…
But do you really want to wait for a real security issue to emerge? Seems like keeping things updated is a simple, smart form of insurance.
2. What are the security issues that can be found in a local tool which has as its only input your own code and it's output is only printed in tooltips for human review? Even if you had a way for specially formed code to run other code in eslint, it's a bit like saying bash has an RCE because you can type a command into it.
Re: 82% of Open-Source Projects Suffer from Tool Rot
#23> It’s important to call out that up until v4 ESLint was vulnerable to a Regular Expression Denial of Service attack (ReDoS). If one points out ReDos 'vulnerabilities' in tooling as a reason to upgrade it, you've instantly lost the argument. By the same logic we should ban TypeScript because its type system is turing complete. This reasoning isn't even wrong.
The proliferation of ReDoS "vulnerabilities" has been extremely frustrating (as someone working on accurate and high-signal vulnerability reporting tools), and belies completely perverse incentives in the bug bounty/vulnerability reporting space (reporters are incentivized to obtain CVEs to pressure companies into accepting low-quality reports).
Re: 82% of Open-Source Projects Suffer from Tool Rot
#24> Software projects have very short shelf lives. The moment a commit lands on main the software is spoiling; new versions of runtimes and compilers are shipped, dependencies cut new releases with bug fixes and exciting new features, and connected APIs are deprecated. Does this ring true for anyone? This sounds like hell. I am so glad to be in a field that minimizes third party dependencies. The C code I write today w…
When Java came out, we went through the tool hell described in this article.
Re: 82% of Open-Source Projects Suffer from Tool Rot
#25It's a constant battle to build projects that shipped 18 months ago. One thing wasn't pinned. Or the build system used node 12 and doesn't run on CI anymore. So Babel needs updated. CDK did a major rev and now we have to force pin the old version.
Re: 82% of Open-Source Projects Suffer from Tool Rot
#26Earlier quoted context omitted.
To be fair I feel like this can be said about nearly any task or process. Documentation is a constant fight against entropy. Working safely is a constant fight against entropy/complacency. And so on
100% - documentation will always go stale. the source of truth is the code however, and making sure the code is kept shiny is the primary task of engineering. documentation is non-load-baring - you can tear it all down and the project will still work correctly. Legacy tooling can literally cause breakages and security concerns.
Absolutely. My domain is a little different, but I've taken to keeping the installers of every version of a specific CAD program I've used, due to compatibility breaking updates that it has had, in the event that I might need to go back and open a design from a few years ago.
Re: 82% of Open-Source Projects Suffer from Tool Rot
#27> It’s important to call out that up until v4 ESLint was vulnerable to a Regular Expression Denial of Service attack (ReDoS). Oh my god, your vscode/text editor will freeze or crash if your code contain a specially crafted string. What a very import thing to call out.
Re: 82% of Open-Source Projects Suffer from Tool Rot
#28Buuuut is it tool rot though if it still works?
Depends what you mean by works . Of course installing the same version of the tool will in most cases keep doing the same thing it's always done. But it's possible the tool always had bugs that were never noticed, has significant improvements that could benefit the project, etc.
Re: 82% of Open-Source Projects Suffer from Tool Rot
#29> Software projects have very short shelf lives. The moment a commit lands on main the software is spoiling; new versions of runtimes and compilers are shipped, dependencies cut new releases with bug fixes and exciting new features, and connected APIs are deprecated. Does this ring true for anyone? This sounds like hell. I am so glad to be in a field that minimizes third party dependencies. The C code I write today w…
Re: 82% of Open-Source Projects Suffer from Tool Rot
#30Sometimes I wonder if we're optimizing for the wrong things in the dependency management space: we used to have a distinction between "bleeding edge" and "stable" distribution schemes, with programmers (and users) picking the appropriate channel based on their stability and feature requires. That seems to have been mostly discarded: we now assume that a development dependency is broken and needs to be updated if it's…