Size: a a a

2020 February 19

p

polunin.ai in rust_offtopic
поэтому теоретизирую
источник

LC

Lone Coder in rust_offtopic
я не дружу с головой, поэтому мой пакетный менеджер не будет полагаться на дружбу с головой и словесные традиции не ломать совместимость в новой версии библиотеки
источник

p

polunin.ai in rust_offtopic
крч заебало
источник

p

polunin.ai in rust_offtopic
покажешь пример, поговорим
источник

p

polunin.ai in rust_offtopic
а так это сферический конь в вакууме
источник

LC

Lone Coder in rust_offtopic
cargo и npm решают это возможностью даунгрейда при поломке из-за обновления
источник

LC

Lone Coder in rust_offtopic
Примеров не покажу =) Мне даже своим проектам придумывать трёхчисленные версии лень, не то что выискивать какие-то исторические ситуации
источник

LC

Lone Coder in rust_offtopic
Anton 📦 ᯌ
У «1.1.1» есть гуманные гарантии, а у хеша только номер, и это нагружает когнитивная нагрузку, потому что ты никак на первый взгляд не узнаёшь, какая это Версия
Кстати это очень хороший вопрос, как узнать какой хеш от какой "версии". Текущий вариант решения этой задачи - прямая ссылка на zip-файл, соответствующий этому хешу, которая в случае со ссылкой на zip из коммита на гитхабе, например, содержит максимально подробную информацию о "версии". Но вариант неидеален, надо еще подумать, а то вдруг вообще захочется, имея хеши, через какую-нибудь p2p-сеть скачать файлы.

Но вот по текущему прототипу, добавляя новую зависимость в проект, ты пользуешься перманентной прямой ссылкой на zip нужной тебе версии библиотеки, а хешами заведует уже пакетный менеджер
источник

AL

Arsenii Lyashenko in rust_offtopic
Lone Coder
я не дружу с головой, поэтому мой пакетный менеджер не будет полагаться на дружбу с головой и словесные традиции не ломать совместимость в новой версии библиотеки
Библиотека A использует библиотеку B версии 1.2.3
А ты используешь A и B версии 1.2.4
Будет ли несоответствие типов из-за этого?
источник

LC

Lone Coder in rust_offtopic
несоответствия не будет
lib-store/A-slfkgjdflkgjdflg(хеш от A 1.2.4)
lib-store/B-akodfjsoifgjos(хеш от B 1.2.4)
lib-store/B-sdfgospfhgfgg(хеш от B 1.2.3, которой пользуется А 1.2.4)

Путь к нужной библиотеке, включающий хеш B 1.2.3, содержится в исходниках А 1.2.4
Путь в исходниках к используемой мной B 1.2.4 в моем проекте тоже содержит хеш этой 1.2.4.

То есть если даже мне захочется использовать в одной моей либе две разных B, я просто пропишу соответствующие пути. А пакетный менеджер отвечает только за доставку
источник

A

Aleksandr Khristenko in rust_offtopic
Lone Coder
несоответствия не будет
lib-store/A-slfkgjdflkgjdflg(хеш от A 1.2.4)
lib-store/B-akodfjsoifgjos(хеш от B 1.2.4)
lib-store/B-sdfgospfhgfgg(хеш от B 1.2.3, которой пользуется А 1.2.4)

Путь к нужной библиотеке, включающий хеш B 1.2.3, содержится в исходниках А 1.2.4
Путь в исходниках к используемой мной B 1.2.4 в моем проекте тоже содержит хеш этой 1.2.4.

То есть если даже мне захочется использовать в одной моей либе две разных B, я просто пропишу соответствующие пути. А пакетный менеджер отвечает только за доставку
А как дальше потом использовать 2 разные версии?
источник

LC

Lone Coder in rust_offtopic
Как захочется.
источник

A

Aleksandr Khristenko in rust_offtopic
Lone Coder
Как захочется.
Кстати, а nix ты смотрел?
источник

LC

Lone Coder in rust_offtopic
Lone Coder
Как захочется.
в питоне это было бы какое-нибудь
import "A-sfgfdgdfgfdg" as A123
import "A-hdgiohjdglgh" as A124

например. То есть средствами языка и\или системы сборки
источник

LC

Lone Coder in rust_offtopic
А пакетный менеджер отвечает только за доставку и сверку хешей, чем облегчает мне задачу его разработки ;)
источник

A

Aleksandr Khristenko in rust_offtopic
Lone Coder
в питоне это было бы какое-нибудь
import "A-sfgfdgdfgfdg" as A123
import "A-hdgiohjdglgh" as A124

например. То есть средствами языка и\или системы сборки
Не, смотри. Ты притащил либу А, которая зависит от версии 1.2.4 а остальной проект от 1.2.3
В либе A то не будет этого импорта через хеш.
источник

f

folex in rust_offtopic
red75prime diabolo @GabrielFallen и все остальные из мейн-чата, кто участвова.

Спасибо за дискуссию про lexicographic orders, вы были правы, а я – нет :) Сори, если кому-то показалось, что я плохо о них думаю, это не так.

Вот тут написано почему https://en.wikipedia.org/wiki/Total_order#Orders_on_the_Cartesian_product_of_totally_ordered_sets
источник

LC

Lone Coder in rust_offtopic
Aleksandr Khristenko
Не, смотри. Ты притащил либу А, которая зависит от версии 1.2.4 а остальной проект от 1.2.3
В либе A то не будет этого импорта через хеш.
либа А использует 1.2.3. Ей нельзя насильственно скормить 1.2.4, только форкнуть и использовать AFork, использующий B 1.2.4
источник

LC

Lone Coder in rust_offtopic
Или придумать что-то еще, вроде инверсии зависимостей, чтобы А ни от чего не зависела, а ты в своём проекте импортировал B 1.2.4 и необходимые функции оттуда скармливал бы в качестве аргументов для функций из А. Но по умолчанию да, такое насильственное скармливание новых версий тем, кто хочет старые - не поощряется, и пакетный менеджер (конкретно мой) подменами не занимается
источник

DV

De Vis in rust_offtopic
источник