2010-10-01 11 views
15

Cabal consente una forma libera Stability field:Convenzioni per stabilità campo di pacchetti Cabal

stabilità: forma libera

Il livello di stabilità della confezione, ad esempio alpha, experimental, provisional, stable.

Quali sono le convenzioni della comunità su questi valori di stabilità? Che cosa è considerato experimental e cosa è provisional? Vedo che solo pochi pacchetti sono dichiarati come stable. A che tipo di stabilità si riferisce, alla stabilità dell'API esposta o al massimo stato privo di errori del software?

+0

Personalmente, penso che questo sia profondamente obiettivo. Basta sfogliare le librerie standard e vedere quanti di questi sono "provvisori" o "sperimentali". – fuz

+2

Questo è esattamente ciò che mi dà fastidio.Se anche le librerie principali sono per lo più solo provvisorie e sperimentali, allora cosa noi, i semplici mortali, possiamo rivendicare sul nostro codice? Non mi piace chiamare tutto altrettanto provvisorio, ma mi piacerebbe vedere come la gente capisce questo. – sastanin

risposta

11

Il campo è ora in gran parte defunto e non deve essere utilizzato. Come ha detto Max, probabilmente verrà sostituito da qualcosa di significativo in futuro.

Se si è interessati alla cronologia, il campo è stato originato da una proposta di progettazione per il primo set di Hierarchical Haskell Libraries. Questo documento descrive i significati originali previsti per i valori.

+0

Grazie, Simon. Penso che la domanda abbia una risposta ora. – sastanin

+3

Il link è ormai morto. –

5

Attualmente questo campo è una guida molto scadente per la stabilità della libreria, quindi è in gran parte ignorato. Duncan Coutts (uno dei principali sviluppatori di Cabal e Hackage) ha detto che alla fine progetta di sostituire completamente questo campo, con qualcosa come un sistema di voto sociale su Hackage.

Personalmente (e non sono solo), ometto sempre il campo di stabilità. Dato che andrà via, probabilmente non vale la pena di perdere il sonno su cosa metterlo dentro.

+0

Sì. Oppure sostituirlo con un sistema per l'attivazione di un criterio di controllo delle versioni, ad es. Normativa di Versioning del pacchetto standard. http://www.haskell.org/haskellwiki/Package_versioning_policy –

4

I significati originariamente previste sono:

  • sperimentale: l'API è instabile. Può cambiare in qualsiasi momento, ad es. Qualsiasi modifica del numero di versione;
  • provvisorio: l'API è che si sposta verso la stabilità. Può essere cambiato ad ogni revisione minore, ma dovrebbe fornire versioni deprecate delle funzionalità;
  • stabile: l'API è stabile. Solo le aggiunte dovrebbero essere fatte in versioni minori. Dopo le modifiche all'API, le funzionalità deprecate dovrebbero essere mantenute per almeno una versione principale.

Come le altre risposte hanno sottolineato, la comunità sembra non di essere seguente queste linee guida più.

Come Simon Marlow, questo è descritto in una proposta di progettazione per il primo set di Hierarchical Haskell Libraries. Il collegamento originale è morto, ma è possibile trovare una copia nello wayback machine.

Problemi correlati