Recentemente ho usato una bella gemma creata da un singolo sviluppatore, che è ospitato su Github.Qual è il protocollo/etichetta corretto per forgiare una gemma Ruby/Rails su Github che può essere mantenuta come una forcella parallela in corso?
Durante il mio lavoro, ho dovuto modificarlo in modo sostanziale, aggiungendo alcuni miglioramenti. Alcuni erano specifici del progetto, altri erano specifici della gemma e altri erano, beh, miglioramenti indipendenti.
Per i miglioramenti specifici della gemma (ad esempio una correzione di bug), ho biforcato il repository, applicato la correzione e inoltrato una richiesta di pull.
Poi, tuttavia, ho notato che i miglioramenti autonomi rientrano nella categoria di una forcella parallela, in corso, della gemma originale. Per essere più chiaro, l'hai visto prima; Ho riscritto le viste della gem originale per lavorare con il framework Bootstrap di Twitter. Così, ho spinto anche questo a Github, ma, ovviamente, non ho fatto una richiesta di pull-invece, ho aggiornato il README per spiegare cosa era diverso, e per accreditare l'autore originale della gemma.
La mia domanda è, che altro si dovrebbe fare in questo caso, presumendo che la gemma sia qualcosa che chiunque altro vuole usare e che deve essere pubblicata su rubygems, ecc.? Dovrei semplicemente modificare il file .gemspec e mantenere intatte le informazioni dell'autore originale, ma aumentare le mie informazioni agli autori/campi email e riscrivere qualsiasi altra cosa sia cambiata? O dovrebbe completamente riscrivere il .gemspec?
Inoltre, se la distribuzione originale dispone di framework di test remoto (come travis.yml), questi devono essere rimossi o lasciati sul posto?
Esistono altri file che in genere devono essere modificati/ricreati?
Finora ho aggiornato
.gemspec
README.md
CHANGELOG.md
lib/libraryname/VERSION.rb #called as a constant in .gemspec
L'ultimo solleva una questione bonus separata in se stessa, come fa il lavoro in versioni distribuzioni parallele?
Ho chiesto simile: http://stackoverflow.com/questions/4753461/what-are-the-ethics-etiquette-of-forking-someone-elses-github- project-to-rele – stef
Grazie. In questo caso, tuttavia, l'originale è ancora mantenuto; la forcella è più di una versione modificata piuttosto che un aggiornamento o la progressione dell'originale. – rcd
In questo caso dovresti semplicemente mantenere la forchetta, non rilasciarla e aggiungerla nel tuo Gemfile con l'opzione 'git:'. – stef