Newsgroup: it.lavoro.informatica
Titolo: [OT] versioning e pubblicazione

Ciao a tutti.
Un mio cliente mi chiede di realizzare un software che serva a gestire le 
versioni di software che scrive e la loro pubblicazione (ove per 
pubblicazione si intende: rendo disponibile la nuova pubblicazione al 
resto dell'azienda).
Le specifiche sono "qualcosa che riceva una mail e, sulla base della 
mail, compia alcune operazioni automatiche di archiviazione e depositi 
l'allegato come ultima versione".
NOTA: le specifiche non sono tassative, in realta' quelle che ho 
riportato erano le specifiche iniziali, emesse sulla base del fatto che 
storicamente le versioni aggiornate venivano inviate via mail al 
responsabile che aveva poi onere, a manina, di archiviarle opportunamente.
Dal momento che io non amo reinventare l'acqua calda se non strettamente 
necessario, mi sto chiedendo se esiste una 'cosa' che soddisfi questa 
esigenza. Personalmente, se scindessi la cosa in due, da un lato metterei 
svn (o un suo derivato, come ad esempio Tortoise), mentre dall'altro 
metterei un CMS. Il problema sta nel fatto che a) il passaggio da svn a 
cms deve essere automatico e b)... beh, probabilmente manco serve il CMS, 
dal momento che a tutt'oggi il cliente lavora su file system condiviso da 
un file server appositamente destinato.
Any idea?
-- 
Ciao!
Luca

 l'allegato come ultima versione".
perdonami la considerazione sul cliente, ma non sono specifiche un po'
naif per essere dettate da uno che scrive software? francamente non ho
capito cosa vuol fare, secondo me va semplicemente iniziato ad un
sistema di issue tracking (tipo trac) e gli va spiegato come si usa.
poi se per fare una versione occorre fare una serie di operazioni
queste si possono anche automatizzare ma è un discorso a parte
rispetto alla gestione dei rilasci.

 sistema di issue tracking (tipo trac) e gli va spiegato come si usa. 
Non so se e' quel che serve; il principio e': io sviluppo del firmware, 
magari per una commessa, lo deposito con un certo nome in una directory 
su file server. Quel nome lo collega indissolubilmente a una commessa. Se 
il reparto dell'azienda che produce schede ha bisogno di quel firmware, 
non fa altro che andare su file server nella famosa directory e prendere 
quel file.
La questione è che chi produce il firmware vorrebbe tenere lo storico 
delle releases (ecco perche' mi era venuto in mente il sistema di 
versioning, ma posso tranquillamente pensare alla cosa sbagliata) e fare 
in modo che su server vengano pubblicate, in una directory old parallela 
a quella che contiene un certo firmware, tutte le releases storiche. Il 
tutto in modo automatico dal PC di sviluppo, senza dover attraversare 
passaggi tediosi. 
-- 
Ciao!
Luca

GIT
e non capisco come un'azienda che scrive software e firmware ne possa 
fare a meno o addirittura non conoscerne l'esistenza.


Forse Maven.
Fra le molte altre cose Maven consente la gestione dei propri artefatti
software: "Release management and distribution publication: Without much
additional configuration, Maven will integrate with your source control
system such as CVS and manage the release of a project based on a
certain tag. It can also publish this to a distribution location for use
by other projects. Maven is able to publish individual outputs such as a
JAR, an archive including other dependencies and documentation, or as a
source distribution."
Molto comodi i plugin "site" per la distribuzione e "versions" per la
gestione delle versioni.
Ciao,
Tarin
-- 
Tarin Gamberini
www.taringamberini.com
7538 CCF0 5AEB 036F FB47 47DE 0A0D 9ADC 5343 17CE

Any idea?
Trovo comodo subversion e l'ottimo TortoiseSVN.
Gli utenti non possono semplicemente salvare gli allegati in una
cartella sul loro client e poi fare commit del file, includendo
eventualmente il testo dell'email nei commenti (sempre che la naming
convention sia rispettata) ?
-- 
Living in Barbaropoli
http://www.barbaropoli.com

 fare a meno o addirittura non conoscerne l'esistenza.
Se tu sapessi cosa c'e', la fuori...
;-)
-- 
Ciao!
Luca

 Any idea?
CruiseControl, CruiseControl.Net, TeamCity, TFS Build, Continuum,
Bamboo ... in generale, prova a guardare questa tabella su wikipedia:
http://en.wikipedia.org/wiki/Comparison_of_Continuous_Integration_Software
Io gestisco 10 server di CI, tutti con CCNet, una ventina di progetti
l'uno (un paio ne hanno una quarantina, su più servizi su porte
differenti). L'ultima versione di CCNet accetta parametri di build off
the shelves, ma hai veramente l'imbarazzo della scelta. In passato ho
usato anche TFS Build, ma mi trovo meglio con CCNet.
--
ale
http://ale.riolo.co.uk

 passaggi tediosi.
quello di cui hanno bisogno è di qualcuno che gli metta a punto il
"development process". probabilmente l'unico strumento necessario è
quello per il revision control dei sorgenti, che però va spiegato bene
come si usa (tags, branches, merge, etc...). il primo scoglio è
convincerli che i formalismi del processo non sono inutili orpelli e
per questo bisogna che per primo sia convinto chi glie lo spiega...

 usato anche TFS Build, ma mi trovo meglio con CCNet.
Grazie, Alessandro. Prendo nota e approfondisco. Temo pero', a un primo
sguardo, che non sia cio' che risolve il problema. Primo, non si deve
occupare del build (non avrebbe senso, si tratta di firmware), secondo,
il risultato deve essere disponibile al 'pubblico', ove pubblico = un
qualsiasi ufficio differente da quello di produzione, cui interessa
l'ultimo risultato.
Poi magari ho visto male io, per cui comunque approfondisco.
-- 
Ciao!
Luca

 un file server appositamente destinato.
a me sembra che il tutto urli CVS (inteso come categoria di prodotti,
non come il vetusto capofila) + interfaccia web dedicata + una suite
di script per automatizzare alcuni task. Poi fà un po' te ;^)
bye!

 l'ultimo risultato.
Io onestamente con CCNet ci faccio anche il caffè .. forse ancora no,
ma se mi pagano, lo faccio tranquillamente :)
Se vedi quello che ha scritto sotto Hermooz, CCNet fa quello
benissimo.
Tra le tante cose che ci faccio, oltre a CI, ad esempio ho decine di
backup di database backup che ad ogni nuova versione da rilasciare al
QA aggiorno automaticamente (la procedura è: restore backup da
cartella di rete, aggiornalo alla versione di interesse, fai backup in
altra locazione, manda email a chi di dovere), il tutto gestito da
interfaccia web (in questo caso, manualmente, clicco il bottoncino
sulla web gui, ma in altri casi tutto viene fatto automatiacamente,
secondo varie business rules, ad esempio per commit in uno specifico
file o sottoalbero di cartelle, oppure ogni tot di tempo, ogni data
ora, etc etc). Tempo fa ci orchestravo i system test su 16 macchine
differenti.
CCNet è flessibilissimo, ci puoi scrivere tutti i tuoi plugin che vuoi
(BTW, mi stupirei che quello che vuoi fare non lo potessi fare off the
shelves, ma se non lo potessi veramente fare, puoi tranquillamente
estendere CCNet per farlo), si integra con tantissimi altri prodotti,
ha la GUI parametrizzabile, etc etc ...
--
ale
http://ale.riolo.co.uk