Skip to content

Версионирование ​

Все восемь языковых пакетов делят одну версионную строку на релиз: 1.YYYYMMDD.N.

Формат ​

ЧастьЗначениеПочему
MAJOR1 — зафиксированПозволяет пути Go-модуля обходиться без суффикса /vN, который требовался бы при MAJOR ≥ 2. Любое действительно ломающее изменение пайплайна отражается мажором репозитория кода, а не новым путём модуля.
MINORYYYYMMDD (UTC-дата релиза)Монотонно растёт по дням — 20260919 < 20260920 < 20261001. Сортируется как целое по правилам semver.
PATCHN — счётчик за день0 для первого релиза за день, далее 1, 2, … (редко).

Пример: 1.20260921.0 — первый релиз 21 сентября 2026 (UTC).

Как считается номер ​

Прямо в workflow daily-check:

bash
today="$(date -u +%Y%m%d)"
n="$(git tag --list "v1.${today}.*" | wc -l | tr -d ' ')"
version="1.${today}.${n}"

Полученная строка вставляется в каждый языковой манифест — pyproject.toml, package.json, тег go.mod, pom.xml, composer.json, Cargo.toml — как есть. Никакой язык не видит переведённой формы.

Что резолвится как «последняя» ​

Все релизы — стабильные (не prerelease), поэтому @latest / LATEST / ^1.0.0 берут максимальную опубликованную:

bash
pip install valeryverkhoturov-wb-api-client
bash
npm install @valeryverkhoturov/wb-api-client
bash
go get github.com/ValeryVerkhoturov/wb-api-client-go@latest
xml
<version>[1.0.0,)</version>   <!-- диапазон: любая 1.x -->
bash
composer require valeryverkhoturov/wb-api-client
bash
opm install wb-api-client
bash
dotnet add package ValeryVerkhoturov.WbApiClient
bash
cargo add wb-api-client

Фиксация версии ​

Фиксируйте точный 1.YYYYMMDD.N, когда важна воспроизводимость (CI, production):

txt
valeryverkhoturov-wb-api-client==1.20260926.0
json
"@valeryverkhoturov/wb-api-client": "1.20260926.0"
bash
go get github.com/ValeryVerkhoturov/wb-api-client-go@v1.20260926.0
xml
<version>1.20260926.0</version>
json
"valeryverkhoturov/wb-api-client": "1.20260926.0"
bsl
.ЗависитОт("wb-api-client", "1.20260926.0")
xml
<PackageReference Include="ValeryVerkhoturov.WbApiClient" Version="1.20260926.0" />
toml
wb-api-client = "=1.20260926.0"

Каденция релизов ​

Новые версии выпускаются только когда апстрим-спецификации реально меняются. Технически: daily-check.yml запускается в 06:15 UTC, сверяет swaggers/checksums.txt с предыдущим прогоном и перегенерирует + тегает только если что-то изменилось. Спокойная неделя = ноль релизов; выкатка портала WB обычно даёт один релиз следующим утром.

Ручной форс-релиз (например, чтобы забрать client-side фикс): Actions → Daily upstream check → Run workflow с force: true.

Депрекации ​

WB убирает поля по собственному графику. Когда это случается:

  1. Из спецификации пропадает поле.
  2. На следующем прогоне daily-check перегенерирует без поля.
  3. Публикуется новая версия без поля.
  4. Клиенты на предыдущей версии продолжают работать — в их локальных моделях поле есть, просто приходят null'ы.

Формального окна депрекации нет — источник истины — контракт апстрима. Если нужно время на миграцию, фиксируйте старую версию.

Расхождение версий между языками — невозможно по построению ​

Одна и та же строка 1.YYYYMMDD.N вставляется в манифест каждого языка в одном и том же вызове generate-clients.py, и все языки перегенерируются в каждом релизном прогоне — поэтому получить «Python 1.20260921.0, а Go 1.20260919.0» из одного апстрим-состояния невозможно.

Единственный способ уплыть: сломается публикация одного языка (например, Maven Central отклонит подпись). Тег и исходник уже в GitHub; ручной перезапуск конкретного publish-job для этого языка чинит ситуацию.

wb-api-client logo

Распространяется под лицензией Apache 2.0.