Il mio progetto è una combinazione di progetti Github. Dovrei caricarlo su Github?

0

Non posso entrare nei dettagli specifici del mio progetto poiché si trova in una fase di ricerca molto nascente.

Tuttavia, c'è un giusto bit di informazioni che posso rivelare. La mia architettura di progetto consiste in vari progetti Github che preelaborano i dati in un certo modo. Dopo alcune pipeline parallele di differenti fasi di preelaborazione , che conducono al punto finale, I concatena tutti i dati e esegui ulteriori pre-elaborazione con un programma che ho scritto da solo . Tuttavia, dopo che questo è successo, procedo a classificare i dati aggiunti con un progetto github che ho tirato sul mio computer. Ci sono molti deep learning coinvolti in questa pipeline.

Sono stati apportati lievi modifiche a ciascuno di questi progetti. Ho intenzione di rendere questo un progetto open source (essenzialmente caricarlo su github) una volta che ho finito di pubblicare i risultati. Tuttavia, non sono sicuro della procedura per caricare l'intera architettura su github . Come potrei dare credito agli sviluppatori originali che hanno scritto il codice per i diversi progetti github?

    
posta Sharan Duggirala 23.04.2018 - 01:52
fonte

2 risposte

8

Supponiamo che ognuno dei progetti che stai utilizzando abbia una licenza che permetta questo. (L'hai già controllato, vero?)

Inizia facendo in modo di sapere come gestire correttamente le dipendenze con altri progetti Github quando non ci sono modifiche, come descritto qui . Questa è in realtà la situazione che dovresti cercare di raggiungere, dal momento che ti permetterà di pubblicare le dipendenze senza creare duplicati del codice sorgente dell'altro progetto. Accreditare gli sviluppatori originali non è un problema in questo modo.

Tuttavia, hai scritto

There have been slight modifications to each and every one of these projects

che significa che hai biforato diversi progetti Github. Questi fork sono attualmente esistenti solo nel tuo ambiente locale, ma quando questi progetti sono evoluti in parallelo dai loro manutentori (non sapendo nulla della tua forcella), rischi di avere problemi di manutenzione.

Quindi cosa puoi fare per impedirlo quando pubblichi il tuo progetto nel mondo? Dipende dalla natura delle tue modifiche e dal modo in cui questi progetti sono gestiti.

Richieste pull

La prima cosa che dovresti provare è pubblicare le modifiche come richieste di pull ai proprietari / manutentori dei progetti che hai modificato. Idealmente, accettano queste modifiche, che ti porteranno in una situazione in cui puoi semplicemente fare riferimento al loro progetto in forma non modificata.

Inoltre, i manutentori sono ora a conoscenza dei tuoi requisiti e, si spera, tenerli a mente quando si evolverà ulteriormente il progetto.

Ovviamente, per questo approccio, dovresti evitare di aggiungere modifiche che sono esclusivamente adatte al tuo sistema. Ad esempio, invece di modificare direttamente del testo hardcoded in un progetto, puoi rendere il testo un'opzione di configurazione e quindi configurarlo all'interno del tuo codice.

Forcella su Github

Se i manutentori non accettano la tua modifica, ad esempio perché hanno abbandonato il progetto, la seconda opzione migliore è posiziona il progetto su Github e fa riferimento al repository biforcato come dipendenza esterna. Ciò rende pubbliche le tue modifiche e offre a te e agli altri almeno la possibilità di sincronizzare la tua forcella con la linea principale in futuro.

Riutilizzo copia-incolla

Se hai appena copiato alcuni frammenti di codice o file di codice sorgente isolati nel tuo progetto e apportato alcune modifiche, assicurati che la licenza (che deve essere abbastanza permissiva da permetterti questo) sia parte di ogni file sorgente. In questo caso, dovresti semplicemente includere tutti quei file sorgente nel tuo progetto, ma menziona da dove li hai presi.

Si noti che la responsabilità per eventuali manutenzioni per il codice copiato è ora spostata su di te, quindi consiglierei di usare questo approccio solo quando sei sicuro che è molto improbabile che il codice abbia bisogno di manutenzione in futuro che non puoi fornire da solo .

    
risposta data 23.04.2018 - 09:46
fonte
1

Ciascuno degli altri progetti GitHub dovrebbe avere i propri dettagli di licenza: il riepilogo o il testo completo della licenza dovrebbe essere in grado di spiegare come attribuire correttamente gli autori.

Per lo meno, mi aspetto di riconoscere il tuo utilizzo dei loro progetti nel tuo readme.md e di collegarti ai progetti pertinenti, e quindi, in base ai requisiti di licenza, le dichiarazioni legali di utilizzo pertinenti nel nostro file di licenza.

    
risposta data 23.04.2018 - 05:27
fonte

Leggi altre domande sui tag