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 .