Come condividere il codice tra diversi repository di primo livello?

0

La mia azienda ha un repository che contiene cinque progetti di alto livello, che sono tutti diversi "servizi" (che sono il sapore del mese). Anche se sono tutti in un unico repository, vengono distribuiti separatamente e trattati come applicazioni diverse. Abbiamo un codice comune che vorremmo condividere tra tutti e cinque i servizi (o alcuni sottoinsiemi).

Vogliamo inserire questo codice nella sua struttura di directory di primo livello, ma non sono sicuro di dove andare da lì. Il meglio che posso pensare è di collegare simbolicamente la cartella in ogni progetto per lo sviluppo locale e fare un effettivo cp prima della distribuzione. Mi sembra strano, ma non riesco a pensare ad un'altra soluzione. Come dovrei strutturare questo progetto? Il codice è tutto in Python se questo è importante.

    
posta gardenhead 12.09.2017 - 23:02
fonte

2 risposte

2

Dovresti utilizzare un gestore delle dipendenze come setuptools . Crea la tua directory di primo livello con il codice sorgente comune, definisci un file setup.py che ti consentirà di pubblicare il tuo pacchetto comune in un repository di risorse (ad esempio PyPi . Vedi Nexus per un repository open source, privato, artefatto ).

Quindi per tutti i progetti che dipendono dal tuo codice comune, definisci setup.py per ognuno ed elenca il tuo codice comune come dipendenza .

    
risposta data 12.09.2017 - 23:15
fonte
0

Dalla risposta precedente sembra che lo stai facendo correttamente. Con alcuni aggiustamenti dell'uso della modalità di sviluppo sarebbe ancora meglio.

Mi piacerebbe suggerire un approccio completamente diverso. Conserviamo tutti i progetti in un unico repository. Quando uno sviluppatore deve modificare un codice condiviso, può farlo e modificare il suo progetto. Entrambe le modifiche verranno inviate in un'unica richiesta di pull. Se la modifica del componente condiviso comporta cambiamenti in altri progetti dipendenti, lo sviluppatore li modificherà e sommerà nella stessa richiesta di pull.

Dal modo in cui Google lavora con il loro codice base.

    
risposta data 13.09.2017 - 19:20
fonte

Leggi altre domande sui tag