2010-10-01 1 views
15

Кабалист позволяет произвольной формы Stability field:конвенции для области стабильности пакетов Cabal

стабильность: Freeform

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

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

+0

Лично я считаю, что это очень объективно. Просто просмотрите стандартные библиотеки и посмотрите, сколько из них «предварительный» или «экспериментальный». – fuz

+2

Это именно то, что меня беспокоит.Если даже основные библиотеки в основном только временные и экспериментальные, то что мы, простые смертные, можем требовать от нашего кода? Мне не нравится называть все одинаково условным, но я хотел бы посмотреть, как люди это понимают. – sastanin

ответ

11

Поле в настоящее время не функционирует и не должно использоваться. Как сказал Макс, в будущем он, вероятно, будет заменен чем-то значимым.

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

+0

Спасибо, Саймон. Я думаю, на этот вопрос теперь дан ответ. – sastanin

+3

Ссылка уже мертва. –

5

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

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

+0

Yup. Или замените его системой для выбора политики управления версиями, например. стандартная политика управления пакетами. http://www.haskell.org/haskellwiki/Package_versioning_policy –

4

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

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

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

Как указано Simon Marlow, это описано в проектном предложении для первого набора иерархических библиотек Haskell. Исходная ссылка мертва, но вы можете найти ее в wayback machine.