▲ | quotemstr 3 hours ago | |
Jesus Christ. Another one? What the fuck? This isn't a JavaScript problem. What, structurally, stops the same thing happening to PyPI? Or the Rust ecosystem? Or Lisp via QuickLisp? Or CPAN? This whole mess was foreseeable. So what's to be done? Look. Any serious project needs to start vendoring its dependencies. People should establish big, coarse grained meta-distributions like C++ Boost that come from a trustable authority and that get updated infrequently enough that you can keep up with release notes. | ||
▲ | perlgeek an hour ago | parent | next [-] | |
> This isn't a JavaScript problem. What, structurally, stops the same thing happening to PyPI? Or the Rust ecosystem? Or Lisp via QuickLisp? Or CPAN? For one, NPM has a really sprawling ecosystem where it's normal to have many dependencies. I remember that I once tried to get started with angular, and I did an "init" for an empty project and "compile", and suddenly had half a gigabyte of code lying in my directory. This means that there is a high number of dependencies that are potential targets for a supply chain attack. I just took a look at our biggest JS/Typescript project at work, it comes in at > 1k (recursive) NPM dependencies. Our biggest Python project has 78 recursive dependencies. They are of comparable size in terms of lines of code and total development time. Why? Differences in culture, as well as python coming with more "batteries included", so there's less need for small dependencies. | ||
▲ | fulafel an hour ago | parent | prev | next [-] | |
They were new versions of the packages instead of modified existing ones so vendoring has the same effect as the usual practice of pinning npm deps and using npm ci, I think. | ||
▲ | lyu07282 an hour ago | parent | prev [-] | |
Rust was hit by a similar attempt: https://github.com/rust-lang/crates.io/discussions/11889 Nothing much came of it, I don't know. |