2015-12-21 3 views
2

У меня есть проект python, который имеет закрепленные зависимости. В моем пакете была обнаружена ошибка из-за ошибки в сторонней зависимости. Эта зависимость выпустила исправление, исправляющее ошибку. Однако, согласно semantic versioning, является ли это протоколом для выпуска и выпуска версии для каждого выпуска исправлений ваших закрепленных зависимостей?Протокол для исправления семантической версии: вы сталкиваетесь, если возникают зависимости?

ответ

0

Да, вы должны обновить номер своей версии. По крайней мере, вы меняете свое приложение таким образом, чтобы мог изменить его поведение (используя разные версии зависимостей), и это должно быть передано вашим пользователям приложений/библиотек. Возможно, вы уверены, что это безопасное изменение, но всегда есть возможность сменить .

Если вы говорите только об обновлении привязанной зависимости, без добавления каких-либо дополнительных функций и отсутствия результирующих различий API, вы будете нажимать только номер версии вашего патча. от v1.2.3 до v1.2.4. Для каждого выпуска с новым набором зависимых штырей вы будете использовать свою версию исправления. Не беспокойтесь, у вас не будет числа версий;)

Если, с другой стороны, вы свертываете обновления штырей зависимостей с изменениями внутренней обратной совместимости, младший номер версии (например, 1.2.3 -> 1.3.0), и если вы свяжете его с изменениями, не поддерживающими обратную совместимость, то вы набросаете основной номер версии (1.2.3 -> 2.0.0).

http://semver.org/

+0

Это очень много работы. если у вас есть модуль нижнего уровня, который изменяется, теперь вам нужно не только поднять его версию (возможно, в манифесте AND, то в git И не забудьте нажать теги), но вы должны сделать это на всем пути вверх по цепочке. это нормально, и такие инструменты, как [семантический релиз] (https://github.com/semantic-release/semantic-release), включают это в их автоматизацию для вас? – Michael

+0

Работа == BadThing (tm)? Когда у вас есть два разных клиента, у которых есть v1.2.3 вашего приложения, где один из них видит BadBehaviour, а другой видит GoodBehaviour, тогда вы обычно начинаете искать, как их экологические различия влияют на поведение системы. Если основной причиной проблемы является то, что какая-то сторонняя библиотека находится в другой версии, тогда вам будет лучше узнать, что между этими двумя приложениями существует разница между ними, как бы незначительными они ни были. Да, это «нормально». – sisyphus

+0

Ну ... много работы, когда вы пытаетесь следовать лучшим практикам, но есть только одно использование каждой зависимости и только один «клиент», и вы начинаете задаваться вопросом, стоит ли это того стоит. :-) – Michael

 Смежные вопросы

  • Нет связанных вопросов^_^