• безопасность npm Почему все шутят про node_modules, но не про растовские крейты, гошные модули, composer-овские пакеты? Там же тот же букет болячек, потому что никто ведь не придумал серебряной пули от dependency hell.

    Ах ну да, я забыл. Ведь JavaScript — самый популярный язык. Тупо численностью взяли. И ещё, что немаловажно, он самый лёгкий язык, и в нём больше всего говнокодеров, которые вообще зачастую не понимают, где они находятся, и что они здесь делают. Увы, это бремя любого популярного языка.

Replies (7)

  • @janPona, А можно в 2х словах про крейты? Ну да, инсталляция бинарников там отсутствует (или уже нет?) и это беда, это всё или еще что-то есть?
  • @BradleyManning, Я честно не знаю про крейты подробностей. Некогда даже в это погружаться, пока по уши в npm.
  • @BradleyManning, +1 за go mod. Как его вкатили в дефолтный toolkit — у меня почти все проблемы с билдами пропали. Исключения — только когда некоторые упёртые не версионируют свои homebrew пакеты.
    Хотелось бы заранее знать где лежат грабли.
  • @BradleyManning, Ровно та же ситуация что и у всех: Куча пакетов, куча зависимостей, часть из них могут быть заморожены через cargo.lock, часть проблем не могут и рабочий проект может развалиться например при обновлении rustc (например github.com Плюс для cargo.lock есть рекомендации замораживать версии зависимостей для библиотек (держать cargo.lock в репах) что приводит к трудностям получения security апдейтов и не замораживать для приложений (не держать cargo.lock в репах) что приводит к возможности получить новую версию в которой будут либо намеренно добавленные апстримером дыры, либо она просто будет требовать rustc последнего найтли билда.
  • @Kim, Тьфу блин, наоборот по рекомендациям: Либы без cargo lock, приложения с cargo lock.
  • @Kim, Вот блин, я че-то думал, что все всё лочат.
    И это еще в дополнение к неподдержке бинарников — откуда тогда у cargo хорошая репутация вообще?
  • @BradleyManning, doc.rust-lang.org

    If you’re building a non-end product, such as a rust library that other rust packages will depend on, put Cargo.lock in your .gitignore