Соглашения для области стабильности пакетов Cabal

Cabal позволяет создать свободную форму Поле стабильности:

стабильность: свободная форма

Уровень стабильности упаковки, например. alpha, experimental, provisional, stable.

Каковы конвенции сообщества об этих значениях стабильности? Что считается experimental и что такое provisional? Я вижу, что только несколько пакетов объявлены как stable. Какую стабильность он имеет в виду, стабильность открытого API или конечное отсутствие ошибок в программном обеспечении?

Ответы

Ответ 1

В настоящее время поле больше не используется, и его не следует использовать. Как сказал Макс, в будущем он, вероятно, будет заменен чем-то значимым.

Если вы заинтересованы в истории, поле возникло в проектном предложении для первого набора Иерархических библиотек Haskell. В этом документе описываются исходные предполагаемые значения для значений.

Ответ 2

В настоящее время это поле очень плохое руководство по стабильности библиотеки, поэтому в основном игнорируется. Дункан Коуттс (один из главных разработчиков Cabal и Hackage) сказал, что в конечном итоге он планирует полностью заменить это поле, что-то вроде системы социального голосования в Hackage.

Лично (и я не одинок) я всегда опускаю поле стабильности. Учитывая, что он собирается уйти, его, вероятно, не стоит терять сон за то, что ему нужно вставить.

Ответ 3

Первоначальные предполагаемые значения:

  • экспериментальный: API нестабилен. Он может меняться в любое время, то есть любое изменение номера версии;
  • предварительный: API движется к стабильности. Он может быть изменен при каждой незначительной ревизии, но должен предоставлять устаревшие версии функций;
  • стабильный: API стабилен. Только незначительные выпуски должны быть добавлены. После изменений в API устаревшие функции должны храниться как минимум для одного основного выпуска.

Как указывалось в других ответах, сообщество, похоже, больше не следует этим рекомендациям.

Как Саймон Марлоу, это описано в проектном предложении для первого набора иерархических библиотек Haskell. Исходная ссылка мертва, но вы можете найти копию в машине обратного пути.