2015-10-17 6 views
5

Supponiamo di voler creare una serie di pacchetti, per esempio relativa a in cucina. avrò un pacchetto di base chiamato cottura e poi voglio più pacchetti di cottura:Come si può prevenire la proliferazione dei repo gitub con i pacchetti dart?

  • cucina-messicano
  • cucina-indiano
  • cucina-tai

Ciascuno di questi utilizzerà in cucina. E forse altri pacchetti più comuni verranno creati in futuro. Qual è il modo di impostare questa struttura in github in modo tale che non sei costretto a creare un repository separato per ciascuno, ma permetti comunque ai progetti del client di importare solo i pacchetti che necessitano di .

Un pacchetto può fare riferimento a un percorso all'interno di un pacchetto github?

Dalla pagina dipendenze pub mostrano come è possibile fare riferimento git:

dependencies: 
    cooking: 
    git: 
     url: git://github.com/munificent/cooking.git 
     ref: some-branch 

Ma idealmente voglio:

dependencies: 
    cooking-indian: 
    git: 
     url: git://github.com/munificent/cooking.git 
     ref: some-branch 
     # path relative to cooking.git that has pubspec.yaml 
     path: cooking-indian 

C'è un modo per avere un repository github con i pacchetti di N, dove solo alcuni sottoinsiemi possono essere selezionati tramite pub?

risposta

2

È sempre possibile avere un singolo repository git di livello superiore, contenente tutti i pacchetti in sottocartelle che vengono pubblicati singolarmente. Pub non impone che ogni pacchetto sia un repo, a patto che i singoli pacchetti aderiscano allo pub package layout format.

Se si utilizzano i repository privati, è possibile fare riferimento a setup a private pub host anziché fare affidamento su github per il recupero.

Tuttavia pub attualmente non supporta il recupero direttamente da sotto-alberi di repository git. Se vuoi investire gli sforzi nell'implementazione di questa funzione, puoi farlo sfruttando la funzionalità di git sparse checkout.

+0

La proliferazione risulta ancora se si desidera il codice disponibile da pub ma si desidera comunque che lo sviluppo ottenga versioni specifiche tramite git. Mettere più di un pacchetto in git significa che non è possibile utilizzare la funzione di selezione git di pubspec poiché pub richiede che il pacchetto sia la radice del repository. – user1338952

+0

C'è un [problema aperto] (https://github.com/dart-lang/pub/issues/1305) per questa richiesta, ma nessuno ci sta lavorando oggi. Usiamo questo modello nel [build repo] (https://github.com/dart-lang/build) e ha funzionato bene, anche se ci sono alcune parti complicate su testing su travis prima che le versioni siano pubblicate su pub . È sempre possibile utilizzare versioni specifiche pubblicate su pub, una dipendenza git non è l'unico modo per bloccare una versione specifica. – Nate

Problemi correlati