Что означает «публичный API» в семантическом управлении версиями? - PullRequest
25 голосов
/ 27 февраля 2012

Я узнаю, как назначать и увеличивать номера версий с помощью правила «Семантическое управление версиями» от http://semver.org/.

Из всех его правил первый сказал:

Программное обеспечение, использующее семантическое управление версиями, ДОЛЖНО объявить общедоступный API. Этот API может быть объявлен в самом коде или существовать строго в документации. Как бы это ни было сделано, оно должно быть точным и всеобъемлющим "

Я в замешательстве по поводу "публичного API". К чему это относится?

Ответы [ 3 ]

7 голосов
/ 27 февраля 2012

Публичный API - это «точка доступа», которую внешний мир (пользователи, другие программы и / или программисты и т. Д.) Имеют к вашему программному обеспечению.

Например, если вы разрабатываете библиотеку,общедоступный API - это набор всех вызовов методов, которые могут быть сделаны в вашей библиотеке.

Существует понимание того, что, если не будет изменена основная версия, ваш API будет обратно совместим, то есть все вызовы, которые былидействителен для версии, действителен для более поздней версии.Вы можете прочитать в пункте 9 этих правил:

Основная версия X (Xyz | X> 0) ДОЛЖНА быть увеличена, если в общедоступный API внесены какие-либо обратные несовместимые изменения.

1 голос
/ 18 февраля 2015

Для эффективного применения шаблона управления версиями требуется общедоступный API.

Например:

Исправления ошибок, не влияющие на API, увеличивают версию исправления

Обратно совместимые добавления / изменения API увеличивают младшую версию и ...

Обратно несовместимые изменения API увеличивают основную версию.

То, что представляет ваш API, субъективно, поскольку они дажесостояние в документе SemVer:

Может состоять из документации или выполняться самим кодом.

0 голосов
/ 21 июля 2018

Прочитав спецификацию несколько раз,

  1. Программное обеспечение, использующее семантическое управление версиями, ДОЛЖНО объявлять открытый API. Этот API может быть объявлен в самом коде или существовать строго в документация. Как бы это ни было сделано, оно должно быть точным и всесторонний.

Интересно, означает ли это, что потребители вашего программного обеспечения должны быть в состоянии установить точную "семантическую" версию, которую они используют.

Например, я мог бы создать простой скрипт, в котором семантическая версия указана в названии скрипта:

DoStuff_1.0.0.ps1

Это публично и точно. Не только в моей голове :)

...