Мой вопрос:
Влияет ли добавление новой зависимости в библиотеку на двоичную совместимость, если внешний API библиотеки иначе обратимся обратно?
Моя ситуация:
My Библиотека CBOR содержит классы для арифметики произвольной точности (в пространстве имен PeterO). (Это в С# и Java, версия Java находится в отдельном репозитории, но эта же проблема относится и к обеим версиям.)
Я переместил эти классы в новое пространство имен (в PeterO.Numbers) и переименовал их (сохраняя исходные классы для обратной совместимости), потому что пространство имен, в котором они сейчас находятся, должно содержать только служебные классы. Я планирую переместить новые классы в отдельную библиотеку и сделать библиотеку CBOR вызывать эту библиотеку как зависимость, так как классы произвольной точности, очевидно, полезны вне CBOR. (Я планирую в конечном итоге отказаться от старых классов.)
Но я обеспокоен тем, что создание отдельной библиотеки таким образом является проблемой двоичной совместимости, поэтому я не могу просто обновить второстепенную версию, но также и основную версию. Библиотека CBOR - это версия 2.3.1 на момент написания этой статьи. Могу ли я сделать это и изменить версию на 2.4 или только 3.0?