RONF: strumenh di sviluppo - Corso di Ingegneria del Software

Transcript

RONF: strumenh di sviluppo - Corso di Ingegneria del Software
RONF: strumen. di sviluppo Angelo Di Iorio Strumen. di base •  Un set “minimale” di strumen. per ges.re lo sviluppo collabora.vo di un so@ware (e del progeCo RONF): –  IDE –  Version control system –  Issue tracker –  Collabora.ve edi.ng plaJorm –  Tes.ng environment –  Deploy environment } Bitbucket Bitbucket •  hCps://bitbucket.org/ •  Bitbucket è un servizio web-­‐based per ges.re progeT che usano GIT o Mercurial come sistema di versionamento: –  Repository pubblico o privato –  Versione free (fino a 5 uten.) o a pagamento –  Integra: • 
• 
• 
• 
Interfaccia web per navigare codici sorgente Interfaccia web per il controllo versioni (Git/Mercurial) Issue tracker Wiki Usiamo Bitbucket per RONF •  Ogni studente crea un account su Bitbucket •  Ogni gruppo crea un repository privato su Bitbucket per il progeCo, condiviso a tuT i membri del gruppo •  Lo sviluppo del codice è ges.to in Git o Mercurial •  Il processo è supportato dagli altri strumen. integra. in Bitbucket: –  Issue tracker –  Wiki •  I diari (personali e di gruppo) sono redaT e pubblica. sul wiki •  Lo sviluppo e i da- su Bitbucket possono essere discussi quando si presenta il proge7o (Distributed) Version Control Systems •  I sistemi di Version Control permeCono di ges.re i cambiamen. su file, documen., codice sorgente, etc. •  CVS e SVN sono due compe.tor molto diffusi e adoCano un sistema centralizzato •  Si stanno diffondendo sempre più sistemi distribui1 che garan.scono flessibilità ed efficienza, sopraCuCo per team molto numerosi •  I più no. sono Git e Mercurial, associa. a sistemi web-­‐
based di condivisione e ges.one dei repository –  Esempio: GitHub e Bitbucket (Centralized) Version Control Systems [da hCp://docs.joomla.org/Dvcs] (Distributed) Version Control Systems [da hCp://docs.joomla.org/Dvcs] (Distributed) Version Control Systems •  Molto spesso i sistemi DVCS sono organizza. con un repository centralizzato, per semplicità •  Questo approccio va bene anche per lo sviluppo di RONF, (il respository Bitbucket è quello centrale) [da hCp://docs.joomla.org/Dvcs] SVN e GIT: comandi di base SVN svn checkout URL svn status svn update svn add FILE svn diff svn commit svn merge Git eg clone URL eg status eg update eg add FILE eg diff eg commit eg push eg pull eg merge Git: molto altro •  I comandi Git possono essere esegui. da linea di comando, o con apposi. client o direCamente nei comuni IDE •  Altri conceT chiave del modello: –  Staging/Index –  Branching/Merging –  Tag •  Git fornisce molte altre funzionalità sofis.cate che noi non guardiamo •  Documentazione e spiegazioni deCagliate (anche sugli internals del sistema e il modello di memorizzazione dei cambiamen.): –  hCp://git-­‐scm.com/book/ Git and Bitbucket •  Alcune funzionalità disponibili in Bitbucket sul repository Git: –  Clone –  Source review: master, branches, tags –  Commits history –  Branches comparison –  Pull requests –  Downloads [vedi demo] EGit •  EGit è un plug-­‐in di Eclipse (in Java, derivato da JGit) per ges.re i repository GIT e versionare il codice •  hCp://www.eclipse.org/egit/ Bitbucket Issue Tracker •  Bitbucket integra un sistema di base per tracciare bug, fixtures e issue: –  Tipi mul1pli di issue: bug, enhancement, proposal, task –  Sta1 di un issue: new, open, resolved, on hold, invalid, duplicate, wonJix –  Priorità: trivial, minor, major, cri.cal, blocker –  Componen1 e versioni configurabili –  Ricerca e filtri –  Watching e no1fica via mail –  Commit marking issue [vedi demo] Bitbucket Wiki •  Funzionalità wiki di base •  Diverse sintassi wiki e editor WYSIWYG •  E’ un repository Git! –  Clone –  Offline edi.ng –  Commit message –  Push e sincronizzazione Demo Eclipse, EGit e Bitbucket