TGViewer
Максим Морев Максим Морев @morev_online · 89 subscribers
Post #49 183
Наткнулся на забавную картинку :)

Но не могу же я просто картинку запостить (ПОЧЕМУ?!), поэтому расскажу о семантическом версионировании, SemVer. Само по себе версионирование библиотек — очень простая вещь, и хорошо в двух экранах описано на сайте (RU, EN), поэтому расскажу о всяком интересном сбоку.

Как версионировать сайты, приложения c UI?

Никак, семвер неприменим для продуктов без публичного API как основной функции.
Чаще всего не версионируют вовсе, либо используют календарное версионирование (CalVer, 26.05.11), что по сути сводится к Pride Versioning как на картинке выше.
Делается это преимущественно для адресации внутри команды разработки ("сломалось в версии 26.7.12").

Можно ли доверять номеру версии при обновлении библиотеки?

Совсем нет, это социальный контракт. Меня, как автора библиотеки, от публикации чего-то ломающего или даже вредоносного в патч-версии останавливает только уровень инженерной культуры.
Понятно, что чем более популярен пакет и чем большего размера организация за ним стоит, тем меньше этот риск, но, как известно, вероятность встретить гужевую повозку в центре города мала, но никогда не равна нулю. Я встречал ломающие изменения в патч-версиях пакетов с миллионами загрузок в неделю.

Если изменение не ломающее, но болезненное — как быть?

dart-sass, например, очень любит в рамках минорных релизов deprecate'ить какие-то функции. Формально всё продолжает работать, но в терминал сыпется миллион предупреждений, что делает работу настолько некомфортной, что изменения в код всё равно приходится вносить (как минимум — отключить предупреждения). Stylelint тоже таким отличался, что привело к массовому недовольству и авторам плагинов пришлось в спешном порядке вносить изменения.

Хороших решений здесь нет. Никак не говорить о том, что какая-то функциональность будет изменена/не рекомендуется к использованию — плохо, в момент мажорного релиза потребителям придётся проделать очень много работы единоразово плюс переучивать наработанные паттерны. Если добавлять предупреждения — хорошо, если это можно сделать так, чтобы было только одно сообщение в консоли для каждого использования, но это архитектурно не всегда возможно.
Мне видится, что авторы вышеуказанных инструментов всё делают правильно — нужно готовить сообщество заранее. А что до болезненности — да, неприятно, но автоматика не упадёт, всё продолжит работать. Вполне в духе SemVer.

➿➿➿

Тема версионирования, на самом деле, как и любая другая, очень широкая, можно много чего рассказать.
Если есть какие-то вопросы на тему версионирования — напишите, расскажу :)

А мог бы просто смешную картинку запостить, ну...
  • ❤ 2
  • 👍 1
  • 😁 1
More from @morev_online
  1. Sep 9, 2026Roast me in Russian На забавный челлендж наткнулся — если пользуетесь ChatGPT с постоянног…
  2. Jul 20, 2026Post #65
  3. Jul 10, 2026Цена абстракций Делаю тут всякого разного и задумался над одной абстракцией, которую часто…
  4. Jun 29, 2026Геометрия focus-ring по умолчанию в Chromium браузерах На такуу-у-у-ую интересную штуку на…
  5. Jun 14, 2026Про вау-эффекты и прочие свистоперделки Наткнулся тут на вот такой сайтик — документацию п…
  6. Jun 3, 2026В чате веб-стандартов (доступном после подписки на Boosty) вчера притащили ссылку на замет…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →