мне не нравится реальность
495 subscribers
1.35K photos
57 videos
56 files
1.03K links
Мне не нравится реальность
N.B. waffle is unhinged

- кормить назад: @meowaffle
- кормить вперёд: github.com/sponsors/WaffleLapkin
- чят: https://xn--r1a.website/+5Dtuan4dVE5kYTcy
- блог: blog.ihatereality.space
Download Telegram
"good luck, you will not need it" is such a raw quote
Меня если честно напрягает то насколько сложно скомпилировать старую библиотеку новым растом...

Ситуация: одно из ломающих изменений которые мы (я?) хотим добавить в раст ломают старые версии библиотеки redis (новые версии уже пропатчены). Так как много крейтов в crater'е зависят от старых версий redis, T-lang попросили сделать бэкпорты. У автора redis на это нет времени, так что занялась я.

Пофиксить оригинальную проблему было очень просто -- всего в паре мест добавить () =.

А дальше началось...

CI падает потому что cache github action слишком старый. Обновила.

CI падает потому что новая версия nightly имеет кучу варнингов которых небыло когда эта версия redis разрабатывалась. Потратила тучу времени пытаясь пофиксить руками (на всех 5-ти ветках для бэкпортов...), пока не догадалась что можно просто cargo fix использовать (упс).

CI опять падает, потому что варнинги в тестах/бенчах/за feature gate/...; окей, это тоже не сложно пофиксить, надо только использовать более длинное заклинание -- cargo fix --tests --doc --benches --examples --all-features --allow-dirty.

Только даже этого недостаточно, потому что часть варнингов в доктестах которые сгенерированны макросами, что делает спаны диагностик неправильными и cargo fix не работает. Поправила руками (опять на всех 5-ти ветках).

CI всё ещё падает.... но только с rust 1.59.0?.... и из-за того что cargo не может найти версию ahash ^0.7.6?.........???

Проблема такая:
- redis зависит от ahash версии ^0.7.6
- ahash версии 0.7.0..=0.7.6 yanked
- ahash 0.7.7 имеет msrv 1.60.0
- redis не закомитил lock файл, так что ничего не работает...

Попробовала сгенерировать lock файл новой версией cargo, а потом даунгрейнднуть зависимости (cargo update --precise ver crate) пока они не начнут работать с 1.59.0... проблема в том что даунгрейдить приходиться слишком много. особенные проблемы вызвали serde и js-sys т.к. они используют =ver зависимости, из-за которых даунгрейдить ещё сложнее. крейтов от BurntSushi нет на lib.rs из-за чего сложнее найти какие версии имеют какой msrv.... в итоге после нескольких часов сдалась и спросила у мейнтейнера redis можно ли просто бампнуть CI версию раста...

Окей мейнтейнер согласился, давайте обновим до 1.85 которая исполозуется для main, т.к. она работает.

error: rustc 1.85.0 is not supported by the following packages:
icu_collections@2.2.0 requires rustc 1.86
icu_locale_core@2.2.0 requires rustc 1.86
icu_normalizer@2.2.0 requires rustc 1.86
icu_normalizer_data@2.2.0 requires rustc 1.86
icu_normalizer_data@2.2.0 requires rustc 1.86
icu_normalizer_data@2.2.0 requires rustc 1.86
icu_properties@2.2.0 requires rustc 1.86
icu_properties_data@2.2.0 requires rustc 1.86
icu_properties_data@2.2.0 requires rustc 1.86
icu_properties_data@2.2.0 requires rustc 1.86
icu_provider@2.2.0 requires rustc 1.86
idna_adapter@1.2.2 requires rustc 1.86
Either upgrade rustc or select compatible dependency versions with
`cargo update <name>@<current-ver> --precise <compatible-ver>`
where `<compatible-ver>` is the latest version supporting rustc 1.85.0


аааааааааааааааааааааааааааааааа

Скопировала Cargo.lock с main'а, благо для новых версий redis он закомичен. Тесты проходят на 1.85, ура.

А теперь CI падает потому что clippy warning'и тоже надо пофиксить.

Один из варнингов это то что msrv ниже, чем версия стабилизации NulError, который используется где-то. Окей подняла msrv до 1.64.

... поднятие msrv добавило новые clippy warning'и..........

------- ВЫ НАХОДИТЕСЬ ЗДЕСЬ -------
This media is not supported in your browser
VIEW IN TELEGRAM
time to kill myself I guess

бтв каждый раз когда я делаю фикс мне нужно ждать чтобы мейтейнер апрувнул CI run потому что я раньше не контрибьютила
ахахахахахаахахахаа
one of the tests is only enabled with a certain combinations of features enabled and it breaks with never type stuff and I didn't see it because I only checked all/none features........
also github decided to not trigger CI on my PR because...... github

nvm, I had a typo in the workflow file 😭
redis never stops to поражать. сегодня проблема в том, что benchmark в CI компилирует base чтобы сравнить в PR'ом... а base не компилируется из-за deny-by-default линта.
американская подруга увидела этот мем у меня из-за плеча и спросила что это за слово (и почему там три в начале слова...)

мозг тормозил и я решила загуглить "засос", ожидая увидеть словарное определение...
мне не нравится реальность
waffle.pet
(конечно же я не могу без извращений, так что весь сайт это один написанный вручную html файл; включая картинки, шрифт, стили и вообще всё)