Domanda

Un problema che si presenta durante lo sviluppo Pinax sta trattando con versioni di sviluppo di applicazioni esterne. Sto cercando di trovare una soluzione che non coinvolge portare nei sistemi di controllo versione. Ragione di essere Preferirei non è necessario installare tutti i possibili sistemi di controllo versione sul mio sistema (o la forza che al momento contribuenti) e affrontare i problemi che potrebbero sorgere durante la creazione dell'ambiente.

Prendere questa situazione (sapendo come funziona Pinax sarà utile alla comprensione):

Stiamo iniziando lo sviluppo su una nuova versione di Pinax. La versione precedente ha un file requisiti pip con le versioni esplicite set. Un bug entra per un app esterno che vorremmo avere risolto. Per ottenere tale correzione di bug nel Pinax processo in corso è quello di fare semplicemente un minore rilascio della app assumendo abbiamo il controllo della app. Apps non abbiamo il controllo che abbiamo appena a che fare con il ciclo di rilascio dell'autore app o costringerli a fare rilasci ;-) Io non sono troppo affezionato di fare costantemente rilasci minori per correzioni di bug come in alcuni casi mi piacerebbe essere a lavorare su nuove funzionalità per le applicazioni pure. Naturalmente ramificazione la versione precedente è quello che facciamo e poi facciamo backport, come abbiamo bisogno.

Mi piacerebbe sentire alcune riflessioni su questo.

È stato utile?

Soluzione 2

intendevo dire che la soluzione che aveva preso in considerazione prima di chiedere era di mettere su un Pinax PyPI e fare versioni di sviluppo su di esso. Potremmo mettere su un caso di chishop. Stiamo già utilizzando --find-link del pip per puntare a pypi.pinaxproject.com per i pacchetti che abbiamo dovuto liberare noi stessi.

Altri suggerimenti

Potrebbe gestire questo utilizzando il "== dev" versione identificatore? Se la pagina del distribuzione su PyPI include un link ad un .tgz della versione dev corrente (ad esempio sia github e bitbucket fornire automaticamente) e si accoda "# uovo = nome_progetto-dev" per il collegamento, sia easy_install e pip useranno che .tgz se è richiesta == dev.

Questo non consente di PIN per qualcosa di più specifico di "più recente tip / testa", ma in molti casi che potrebbero essere abbastanza buono?

La maggior parte dei distributori open source (i Debians, Ubuntu'S, macports, et al) utilizzare una sorta di meccanismo di gestione delle patch. Quindi, qualcosa di simile: importare il codice sorgente di base per ogni pacchetto come rilasciato, come una palla di catrame, o come un'istantanea SCM. Quindi gestire le modifiche necessarie su di esso attraverso un gestore di patch, come trapunta o code di Mercurial . Poi impacchettare ogni pacchetto esterno con eventuali cerotti applicati in un formato coerente. O avere gli URL ai pacchetti di base e gli URL per le singole patch e li hanno applicati durante l'installazione. Questo è in sostanza quello che MacPorts fa.

EDIT: Per fare un ulteriore passo avanti, si potrebbe quindi la versione controllare la serie di patch in tutti i pacchetti esterni e fare che disponibile come unità. Questo è abbastanza facile da fare con Mercurial Queues. Allora hai semplificato il problema da solo la pubblicazione di una serie di patch che utilizzano un sistema SCM, con i cerotti applicati localmente come sopra o disponibile per gli sviluppatori di tirare e applicare alle loro copie dei pacchetti di rilascio di base.

EDIT: Non sono sicuro che sto leggendo la tua domanda correttamente in modo quanto segue non può rispondere direttamente alla tua domanda

.

qualcosa che ho considerato, ma non ho ancora testato, sta utilizzando feature freeze fascio di pip. Forse utilizzando tale e la distribuzione del fascio con Pinax avrebbe funzionato? La mia unica preoccupazione sarebbe come i diversi OS vengono gestiti. Per esempio, non ho mai usato pip su Windows, quindi non saprei come un fascio sarebbe interagire lì.

L'idea completa Spero di provare è la creazione di uno script finitrice che controlla la gestione dei fasci, rendendo più facile per gli utenti l'aggiornamento a versioni più recenti. Ciò richiederebbe un po 'di ponteggi però.

Un altra opzione potrebbe essere tenervi uno specchio delle applicazioni che non controlli, in un VCS coerente, e poi distribuendo le vostre versioni a specchio. Questo toglierebbe la necessità di "tutti" di avere diversi programmi installati.

Oltre a questo, sembra che l'unica vera soluzione è quello che voi ragazzi state facendo, non c'è un modo senza problemi che sono stato in grado di trovare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top