После почти десяти лет в экосистеме Spring Cloud один из главных инструментов контрактного тестирования переезжает в новый дом.
Spring Cloud Contract выходит из портфеля Spring Cloud и продолжит развиваться в организации Stubborn под новым названием - Stubborn Contract.
И это не форк, не переписывание с нуля и не попытка начать все заново. Проект остается в руках своего создателя Марцина Гжегорцкого, который развивает его еще со времен Accurest в 2014 году.
Что важно для пользователей:
- сегодня ничего не сломается. Текущими версиями можно пользоваться дальше;
- будущие обновления, исправления и поддержка будут выходить уже в Stubborn Contract;
- впереди миграция на новые Maven-координаты;
- пакеты переедут с org.springframework.cloud на sh.stubborn;
- DSL, Contract Verifier, Stub Runner, HTTP и messaging останутся на месте;
- проект сохранит открытый исходный код и лицензию Apache 2.0.
Причина переезда довольно резонна: внутри большого портфеля Spring Cloud проект не получал столько внимания, сколько заслуживал. Теперь у него появятся собственная дорожная карта, брокер контрактов и корпоративное финансирование, чтобы развитие больше не зависело от свободных выходных мейнтейнера.
Комментарий Михаила Поливаха:
Внутри Broadcom сейчас активно происходит пересмотр портфеля Spring в целом. Например, проект Spring Cloud Data Flow полностью ушёл из Open Source, активно сворачивают поддержку Reactor-а. Марцин же, один из авторов Spring Cloud, покинул команду уже как год, наверное. Посмотрим, что будет с проектом далее. Тем не менее, без активной поддержки сообщества будет непросто.
Комментарий Павла Кислова:
Для людей, работающих со Spring-овым Cloud и микросервисами, Spring Cloud Contract был практически нарицательным. Если обсуждали Contract Testing на JVM, часто речь шла именно о нем или о Pact.
Для тех, кого опыт с Cloud миновал, Spring Cloud Contract - это приблуда, которая помогает решить ситуацию "Я изменил API - как мне понять, что я не сломал десять других команд?"
Pact в этом смысле популярнее из-за его условной "языконезависимости" и популярности вне java-экосистемы. Когда у вас диверсифицированный стек и все ваши сервисы на разных языках, то внедрить пакт в режиме "один для всех" - это более удачное решение.
Spring Cloud Contract требует от тебя усилий. Часто именно в России выбирали этот самый "диверсифицированный стек". А про Pact не знают(я на своей практике почти не видел использования Pact в русскоязычной среде. А везде, где видел - его предлагал я) и Spring Cloud много где не используют. В этих кейсах люди из Spring-стека пользуются Интеграционные тесты + Testcontainers. Иногда просто моками и автоматизированный процесс честной единой для всех сверки контрактов отсутствует.
Spring Cloud Contract заканчивается. Stubborn Contract только начинается