Qual è la netiquette per la forking di progetti open source di altre persone? [duplicare]

9

Ho iniziato a essere sempre più coinvolto nello sviluppo open source e mi chiedevo se ci sono delle linee guida su come documentare e mantenere correttamente un fork?

Ad esempio, supponiamo che biforchi un progetto per aggiungere qualcosa di specifico ad esso. Forse non vuoi inviare richieste di pull al progetto originale o forse la tua aggiunta è qualcosa che non sarà unificata. Ora hai la tua versione di un progetto che non è proprio tuo e probabilmente non vuoi né mantenerlo né comprenderlo veramente.

Ma se il progetto originale continua a crescere, sarebbe bello includere patch e nuove funzionalità. Allora cosa fai? Rebase tutto il tempo o unisci continuamente le modifiche? Come imposti i tuoi rami: mantieni il ramo principale che è sempre la forchetta dell'originale con un ramo separato per le tue modifiche?

Che dire della documentazione? È molto probabile che tu voglia mantenere il readme originale, poiché descrive il progetto piuttosto bene. Ma devi anche specificare cosa fa la tua forcella in modo diverso o aggiuntivo. Forse è necessario rimuovere i riferimenti ai server di build automatizzati dal readme poiché si riferiscono al progetto originale.

È facile dare un fork e modificare il codice, ma non è abbastanza buono. Voglio sentire le vostre opinioni, esperienze e raccomandazioni in merito allo sviluppo corretto e sano dell'open source.

    
posta Toni Petrina 01.04.2013 - 01:13
fonte

2 risposte

5

Suppongo che tu ti stia riferendo a un progetto ospitato su un servizio DVCS (ad esempio GitHub) in cui la biforcazione e la fusione sono il modo normale di fare le cose ...

It is easy to fork and change the code, but that isn't good enough.

Abbastanza buono per cosa?

Se lo fai solo a tuo vantaggio, non è un gioco da ragazzi. Fare quello che ti piace. Ma fallo tranquillamente in modo da non sminuire il progetto da cui hai forgiato.

Se lo fai per il beneficio di altre persone, la forking e la modifica quando non hai intenzione di unire è probabilmente una brutta cosa:

  • Ineviterai inevitabilmente le persone che lavorano sul progetto originale.

  • Stai creando una situazione in cui lo sforzo degli sviluppatori si sviluppa inevitabilmente in modo più sottile. È inefficiente.

  • Stai creando incertezza e confusione per gli utenti. Quale versione dovrebbero usare? A chi dovrebbero fidarsi per continuare a lavorare sulla loro forcella? Per fare le cose correttamente?

A meno che tu non abbia davvero, davvero un buon motivo per mantenere un fork pubblico a lungo termine, dovresti sempre mirare a unirmi al passato. E per poter accettare le tue richieste di pull, devi seguire le linee guida scritte del progetto per i contributi. Se non ci sono linee guida, considera le parti migliori della base di codici esistente come esempio. (Se c'è documentazione, aggiungila / aggiorna. Se ci sono test unitari, includi test unitari per le tue modifiche.) Se non altro, fare queste cose renderà più probabile le tue richieste di pull che saranno accettate.

Un'altra strategia per far accettare le tue richieste pull è di discutere su cosa intendi fare con lo sviluppatore principale e discutere di eventuali problemi ... prima di iniziare la codifica. E ascolta quello che dice. Sii educato, sii deferente, sii paziente. Non essere un prima donna .

I asked about how to maintain healthy project fork which doesn't look dead and has proper documentation that states what its intent is.

Beh, il mio primo consiglio sarebbe NON ... a meno che tu non abbia una buona ragione. Le forchette pubbliche a lungo termine non sono salutari, per le ragioni di cui sopra.

Oltre a ciò, mantenere una forcella sana è come mantenere un progetto sano. Ad esempio, scrivi la documentazione, mantieni l'attività, fornisci supporto, recluta altri contributori ... hai uno scopo e un piano.

    
risposta data 01.04.2013 - 02:27
fonte
4

Maybe you do not want to send pull requests back to the original project or maybe your addition is something that won't be merged back

Allora è così.

Perché dovresti preoccuparti di incorporare le tue modifiche nel progetto originale se non sei preoccupato di unire o tirare? Salvalo per gente seria. Questo è particolarmente vero se non hai intenzione di ridistribuire la tua forcella, o solo di distribuirla all'interno della tua organizzazione.

In breve, sii un serio contributore o no.

Se sei serio nell'essere un contributore, il modo migliore per avvicinarti è contattare il proprietario del progetto. In genere, ti consentono di effettuare richieste di pull quando hai dimostrato di essere degno di fiducia apportando modifiche utili. Il proprietario del progetto può dirti cosa si aspetta in termini di documentazione adeguata, programmi di rilascio e simili.

    
risposta data 01.04.2013 - 01:35
fonte

Leggi altre domande sui tag