Веб-версияОткрыть в Telegram

ПостSemVer и как меня расстроил JUnit 6

14 октября 2025
J
Java: fill the gaps
SemVer и как меня расстроил JUnit 6 Эта осень богата на релизы. Недавно вышла Java 25, в ноябре выйдет Spring 7 и Spring Boot 4. Другие библиотеки тоже выпускают обновления. Сегодня обратим внимание на два камбэка: ✨ JUnit 6. Пятая версия вышла 8 лет назад, в 2017 году ✨ Jackson 3. Jackson - верный помощник в перекладывании джейсонов, вторая версия вышла больше 10 лет назад Когда выходит новая версия после большого перерыва, душа трепетно ждёт серьезных изменений. Потом смотришь release notes, а там все скучно. Что-то переименовали, что-то удалили, повысили версию джавы😒 Но если нет ничего нового, зачем повышать версию? Ответ прост. На большинстве проектов используется семантическое версионирование (SemVer) - популярное соглашение о формате версий. Оно задаёт формат MAJOR.MINOR.PATCH, где ▫️ MAJOR — мажорная версия, меняется при несовместимых изменениях API ▫️ MINOR — минорная версия, добавляет функциональность с обратной совместимостью ▫️ PATCH — меняется при исправлении багов Дополнительно в версии может быть номер билда, целевой стенд или пользователь, который запустил сборку. Может быть префикс/суффикс/тег, чтобы подчеркнуть особый статус билда. Например, у сборок Spring 🌸 6.2.0-RC3 - release candidate. Билд с зафиксированным набором фич для интенсивного тестирования 🌸 7.0.0-M9. М значит Milestone, большие изменения для сбора обратной связи и тестирования Короче, мажорная версия не обязательно означает новые фичи и технологическую эволюцию. Это значит, что новая версия несовместима по апи со старой. Поменялся интерфейс, изменились имена классов - всё это примеры несовместимых изменений. Но это теория. От ожиданий никуда не деться. Даже за пределами IT люди ждут значимых изменений от мажорных версий. Новый айфон, новая модель нейронки. Я вот расстроилась, что в JUnit 6 не завезли ничего интересного💔 Ну да ладно. Зачем нужно знание SemVer на практике? Чтобы планировать масштаб работ для обновления. При апдейте спринга с 6.1 на 6.2 скорее всего проблем не будет. А вот переход 6.2 -> 7 может затянуться. Кто обновлял Spring Boot со второй версии на третью и менял тысячу импортов - жмите ❤️. Переход Jackson 2 -> Jackson 3 очень похож, основная работа при апдейте - это замена com.fasterxml.jackson на tools.jackson. Если в JUnit 6 и Jackson 3  ничего особенного, зачем обновляться? Потому что Spring 7 использует эти новые версии. Если захотите обновить спринг, придётся обновить и эти библиотеки. Так что это неизбежно🌚
51 · 10.7K ·

Рядом в ленте

JJava: fill the gapsSpring и паттерн Singleton В мае я писала про групповой транс на собеседованиях при обсуждении SOLID. Люди на автомате обмениваются дежурными фразами, совершеннJJava: fill the gapsОпрос
это сообщение
JJava: fill the gapsРаспределенный лок Часто коллеги приходят с идеей сделать что-то через распределенный лок. В этом посте расскажу, почему эта задача сложнее, чем кажется, какие JJava: fill the gaps​Value types: основное На прошлой неделе вышел билд с реализацией value types и основными оптимизациями. Это даже не превью версия, детали ещё поменяются, но пе

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем