2015-08-19 8 views
5

I have been asked to drop my dependency on system-filepath.Eliminazione di un'istanza classe tipo e politica della versione pacchetto

Il mio pacchetto definisce una classe di caratteri Arguable e definisce un'istanza per il tipo Filesystem.Path. No system-filepath significa no Filesystem.Path significa no FilePath, quindi, eliminando questa dipendenza, cambierei la mia API per non fornire più l'istanza Arguable.

Come si allinea con il PVP? Si tratta di un cambiamento di versione importante?

+1

Sì, questo è un cambiamento di versione importante. L'aggiunta o la rimozione di classi di tipi costituisce una possibile modifica di rottura e [dovrebbe essere impacchettato come modifica di versione principale] (https://wiki.haskell.org/Package_versioning_policy#Leaking_instances). –

+1

@ recursion.ninja In realtà, * l'aggiunta di * istanze non orfane è espressamente esente (questo è un aggiustamento relativamente recente). Ma non rimuovendoli. –

+0

Questi commenti sembrano una risposta degna di me ... – rampion

risposta

2

Sì, è un cambiamento di versione importante. I Haskell wiki page on the PVP Uniti circa ABC numeri di versione (frase rilevante in grassetto):

  1. Se qualsiasi entità è stato rimosso, o il tipo di qualsiasi entità o le definizioni di tipi di dati o classi sono state cambiate, o le istanze orfani sono stati aggiunti o tutte le istanze sono state rimosse, quindi il nuovo AB deve essere maggiore del precedente AB Si noti che la modifica delle importazioni o in base a una versione più recente di un altro pacchetto può causare l'esportazione di istanze orfane extra e quindi imporre una modifica della versione principale.
  2. Altrimenti, se solo nuovi binding, tipi, classi, istanze o moduli non orfani (ma vedi sotto) sono stati aggiunti all'interfaccia, allora AB può rimanere lo stesso ma la nuova C deve essere maggiore della vecchia C. Nota che la modifica delle importazioni o in base a una versione più recente di un altro pacchetto può causare l'esportazione di istanze non orfane aggiuntive e quindi imporre una modifica della versione secondaria.
  3. In caso contrario, A.B.C potrebbe rimanere invariato (gli altri componenti della versione potrebbero cambiare).
Problemi correlati