Miglior layout di repository github per snippet in più linguaggi di programmazione [chiuso]

4

Devo creare una presenza github per un'organizzazione open source. L'obiettivo è distribuire snippet di codice e implementazioni di riferimento nei diversi linguaggi di programmazione.

Questi contributi saranno (idealmente) creati da persone esterne all'organizzazione e dovrebbero essere raccolti.

So che è buona norma creare un repository per progetto . A tal fine, ogni implementazione (in un linguaggio di programmazione specifico) dovrebbe essere considerata un progetto autonomo e dovrebbe avere il proprio repository. Il punto è che questo approccio rende difficile il contributo di persone esterne, poiché le richieste pull di github possono essere fatte solo su repository esistenti.

Creando un singolo repository con una sottodirectory per codice di programmazione, il contributo al codice diventa più semplice, ma temo che alcuni IDE possano lamentarsi del layout della directory.

Mi piacerebbe sapere se qualcuno ha già risolto questo problema molto specifico in modo soddisfacente.

    
posta Daniele 16.05.2013 - 16:25
fonte

3 risposte

0

Grazie per le proposte, ci hanno aiutato molto a trovare un buon compromesso.

Ecco cosa ci è venuto in mente:

Poiché i frammenti di codice sono solo parti minuscole del codice, probabilmente ciò potrebbe succedere non funziona da solo, questo repository può essere condiviso tra le lingue.

Le implementazioni di riferimento, al contrario, probabilmente lo saranno autosufficiente e in questo caso ha più senso avere un singolo repository per ogni lingua.

A mio parere, il caso d'uso per i frammenti di codice è "clone e studio": i frammenti dovrebbero essere usati per ispirazione e piccoli test, quindi io pensa che sia accettabile andare e guardare la tua lingua preferita. Nella maggior parte casi, le persone lo vedranno sul sito github, immagino.

Il caso d'uso dell'implementazione di riferimento è "clone ed esegui". io aspetto una implementazione di riferimento qualcosa che clonerò nel mio IDE e iniziare ad estendere. In questo caso avere un repository per lingua è di un grande aiuto.

Penso che sia un buon compromesso anche perché mi aspetto il riferimento le implementazioni sono molto meno contro i frammenti di codice, quindi lo sforzo di seguire i repository di origine corrispondenti non è così elevato.

Se sei interessato, l'organizzazione github è alpinebits : una definizione di un'interfaccia, basata su OTA e adattata al turismo alpino , per lo scambio di dati turistici.

    
risposta data 28.05.2013 - 10:57
fonte
2

Non ho avuto questo problema specifico, ma ho pensato in questo senso per un problema imminente simile al mio lavoro.

Come dici tu, un singolo repo ha alcuni vantaggi. Avere ogni lingua come directory nella radice non è un brutto modo di andare se è necessario tenerli tutti insieme. Un'altra opzione sarebbe quella di creare diversi rami per ogni lingua se sei preoccupato per la segregazione (e la possibile confusione dell'IDE).

Ma dal momento che stai lavorando su Github, potresti voler sfruttare la loro struttura organizzativa e creare un'organizzazione / gruppo con ogni lingua come un repository separato. I nuovi contributori che aggiungono una nuova lingua possono semplicemente creare il proprio repository github e quindi avvisarti di eseguirne il fork.

    
risposta data 16.05.2013 - 21:35
fonte
1

Vuoi distribuire code snippets e reference implementations . Per loro natura, questi sono non in grado di compilare . Posso supporre che quanto segue sia vero:

  • Un IDE non sarà comunque in grado di soddisfare le tue esigenze, poiché il codice sarà incompleto
  • Il codice per ogni lingua avrà ulteriori segregazioni. per esempio. categorie o tag. Quindi ci sarà una struttura di cartelle extra per ogni lingua

Considerati i due precedenti, avere un singolo repository probabilmente complicherà le cose. Devi andare per più repository (approccio più sicuro), o andare per un singolo repository con diversi rami. E dimentica che il codice è chiaramente modificabile in un IDE.

Suggerirei di andare su repository separati per i seguenti motivi:

  • Diventa più facile gestire i problemi per ogni lingua
  • Puoi dare a contributori specifici open source l'accesso ad alcuni di questi repository. Ad es. un prolifico collaboratore Java può avere accesso solo al repository Java
  • Libera le tue filiali per altre cose (ad es. versioni della stessa lingua)

È prematuro preoccuparsi che i contributori non siano in grado di creare nuove lingue. Potresti già creare repository vuoti per la maggior parte delle lingue popolari e puoi avere un qualche tipo di modulo nel tuo sito per sollevare una richiesta di nuove lingue.

Modifica: chiarimento minore

    
risposta data 26.05.2013 - 23:39
fonte

Leggi altre domande sui tag