Buongiorno a tutti, mi chiamo Jonathan e da pochi mesi mi sono affacciato al mondo di Ruby on Rails. Armato di documentazione di cui ho letto ottime recensioni in rete (Programming Ruby 1.9 - Agile Web Development with Rails) ho deciso di approfondire questo linguaggio che trovo molto, molto potente (provengo da PHP e da un lontano trascorso in Perl). Arrivo al dunque chiedendovi info e/o consigli: ho "ereditato" un progetto web costituito da due applicativi scritti in RoR, rispettivamente in: Ruby 1.8.6-p111 - gem list - actionmailer (2.3.4) actionpack (2.3.4) activerecord (2.3.4) activeresource (2.3.4) authlogic (2.1.2) builder (2.1.2) cgi_multipart_eof_fix (2.5.0) fxri (0.3.6) fxruby (1.6.12) gem_plugin (0.2.3) hoe (2.3.3) hoe-seattlerb (1.2.1) hpricot (0.6) json_pure (1.1.9) log4r (1.0.5) minitest (1.4.2) mongrel (1.1.5) mysql (2.8.1) rack (1.0.0) rails (2.3.4) rake (0.8.7, 0.7.3) rubyforge (2.0.2) rubygems-update (1.3.5) session (2.4.0) sources (0.0.1) win32-api (1.0.4) win32-clipboard (0.4.3) win32-dir (0.3.2) win32-eventlog (0.4.6) win32-file (0.5.4) win32-fie-stat (1.2.7) win32-process (0.5.3) win32-sapi (0.1.4) win32-shortcut (0.2.3) windows-api (0.2.0) windows-pr (0.7.2) Ruby 1.9.2-p136 - gem list - abstract (1.0.0) actionmailer (3.0.3) actionpack (3.0.3) activemodel (3.0.3) activerecord (3.0.3) activeresource (3.0.3) activesupport (3.0.3) arel (2.0.7, 2.0.6) builder (2.1.2) bundler (1.0.9) cgi_multipart_eof_fix (2.5.0) erubis (2.6.6) gem_plugin (0.2.3) i18n (0.5.0) mail (2.2.15, 2.2.12) mime-types (1.16) minitest (1.6.0) mongrel (1.1.5 x86-mingw32) mysql2 (0.2.6 x86-mingw32) polyglot (0.3.1) rack (1.2.1) rack-mount (0.6.13) rack-test (0.5.7, 0.5.6) rails (3.0.3) railties (3.0.3) rake (0.8.7) rdoc (2.5.8) rubygems-update (1.4.2) sqlite3-ruby (1.3.2 x86-mingw32) thor (0.14.6) treetop (1.4.9) tzinfo (0.3.24, 0.3.23) La mia esigenza attuale sarebbe quella di aggiornare i precedenti due applicativi web all'ultima versione di Ruby on Rails. Su Windows 7, seguendo le indicazioni del libro "Agile Web Development..." ho scaricato l'installer da railsintaller.org ed installato l'ultima versione di RoR (Ruby 1.9.3-p125 Rails 3.2). Ho a disposizione il database MySQL con il restore di tabelle e dati aggiornati. Penso, forse erroneamente, che il porting del progetto in 1.9.2 sia più facile, mentre quello in 1.8.6 presenti diverse difficoltà, tali da considerare forse il caso di riscrivere il codice da zero. Potreste gentilmente indirizzarmi o consigliarmi, tenendo conto della mia poca esperienza e quindi non dando nulla per scontato, sui passi da effettuare per poter aggiornare i due progetti in modo da avere un'unica installazione di RoR da manutenere ed aggiornare? Ringrazio tutti in anticipo! Jonathan
on 2012-07-30 14:54
on 2012-07-30 15:01
Ciao Jonathan, ti faccio una domanda per capire meglio la situazione. Ci sono dei test scritti per le applicazioni? Sante
on 2012-07-30 15:11
Ciao Sandro, si, nelle cartelle test delle due rispettive app sono presenti files per test. Decisamente più nutrita la sezione di test dell'app scritta in 1.8.6 Grazie per la prontissima risposta Jonathan
on 2012-07-30 15:16
2012/7/30 Jonathan Lecchi <jonathan@zzjona.it> > Ciao Sandro, > Sante! :P > si, nelle cartelle test delle due rispettive app sono presenti files per > test. Decisamente pi nutrita la sezione di test dell'app scritta in > 1.8.6 > Per l'app 3.0.3 potresti iniziare seguendo una guida nel passaggio da rails 3.0.x a rails 3.1.0 perch c' la variazione della cosiddetta Asset Pipeline. Sul resto non dovresti avere grosse difficolt. Naturalmente ti conviene creare un branch git (immagino il tutto usi gi git) di appoggio in cui fare la prova di upgrade. Fai continuamente girare i test finch non passano tutti, quello dovrebbe essere un punto di arrivo intermedio. Per l'altra app ti consiglio di cominciare a guardare se la test suite attuale effettivamente funzionante o l perch generata in automatico (consiglio valido in generale). Poi guarda se le gemme che utilizza sono tutte supportate (eventualmente in una nuova versione) con ruby 1.9 e rails 3.2.7. Molto probabilmente la risposta sar no, ma sperare gratis :) Sante
on 2012-07-30 15:32
Sante Rotondi wrote in post #1070680: > 2012/7/30 Jonathan Lecchi <jonathan@zzjona.it> > >> Ciao Sandro, >> > > Sante! :P Ops! Perdono Sante :p > > >> si, nelle cartelle test delle due rispettive app sono presenti files per >> test. Decisamente pi nutrita la sezione di test dell'app scritta in >> 1.8.6 >> > > Per l'app 3.0.3 potresti iniziare seguendo una guida nel passaggio da > rails > 3.0.x a rails 3.1.0 perch c' la variazione della cosiddetta Asset > Pipeline. Sul resto non dovresti avere grosse difficolt. Naturalmente ti > conviene creare un branch git (immagino il tutto usi gi git) di appoggio > in cui fare la prova di upgrade. Fai continuamente girare i test finch > non > passano tutti, quello dovrebbe essere un punto di arrivo intermedio. Ok, mi puoi consigliare qualche link in particolare? > > Per l'altra app ti consiglio di cominciare a guardare se la test suite > attuale effettivamente funzionante o l perch generata in automatico > (consiglio valido in generale). Poi guarda se le gemme che utilizza sono > tutte supportate (eventualmente in una nuova versione) con ruby 1.9 e > rails > 3.2.7. Molto probabilmente la risposta sar no, ma sperare gratis :) > > Sante Immaginavo presentasse complicazioni, vista anche la versione di RoR utilizzata... in ogni caso seguirò il tuo consiglio! Grazie ancora Sante : )
on 2012-07-30 15:40
Non dovresti avere troppi problemi a passare da 1.8.6 a 1.9.3. Non preoccuparti, non dovrai riscrivere il codice da zero. Nel passaggio da 1.9.2 a 1.9.3 probabilmente non dovrai fare nulla e forse non dovrai far nulla neppure nel passaggio dalla 1.8, ma buon per te che ti hanno lasciato un progetto con i test. A me non capita mai... Dove invece potrai avere dei problemi sarà con l'aggiornamento delle gemme a versioni più moderne, perché in alcuni casi si è obbligati ad usare versioni vecchie in quanto quelle nuove non sono compatibili con la 1.8. E non per essere snob, ma se il tuo server non è Windows programmando con Ruby e con Rails conviene lavorare con OS derivati da Unix, Linux o Mac. Non solo sono gli OS di riferimento per gli sviluppatori di Rails ma di solito i server sono Linux e ho visto sviluppatori penare su Windows cercando di tenersi compatibili. Non è tanto l'interprete ad essere problematico quanto tutto quello che ci sta attorno, soprattutto se hai script o servizi accessori in background. Tante volte ci sono delle dipendenze dall'OS. Una virtual machine risolve il problema e prima di andare in produzione ti serve comunque un server su cui provare che le installazioni funzionino. Dovresti trovare molto utile RVM o il suo equivalente Windows, PIK http://watirmelon.com/2011/01/17/easily-manage-you... In pratica ti permettono di avere più interpreti sulla stessa macchina e di passare dall'uno all'altro molto rapidamente. Sono l'ideale per te che dovrai lavorare con due versioni. Dovrai anche tener separate le gemme e a questo pensano bundler e/o i gemset di rvm. Pik non li ha ma ci sono dei workaround https://github.com/vertiginous/pik/issues/16 Paolo
on 2012-07-30 16:00
Paolo Montrasio wrote in post #1070683: > Non dovresti avere troppi problemi a passare da 1.8.6 a 1.9.3. Non > preoccuparti, non dovrai riscrivere il codice da zero. Nel passaggio da > 1.9.2 a 1.9.3 probabilmente non dovrai fare nulla e forse non dovrai far > nulla neppure nel passaggio dalla 1.8, ma buon per te che ti hanno > lasciato un progetto con i test. A me non capita mai... > > Dove invece potrai avere dei problemi sarà con l'aggiornamento delle > gemme a versioni più moderne, perché in alcuni casi si è obbligati ad > usare versioni vecchie in quanto quelle nuove non sono compatibili con > la 1.8. > > E non per essere snob, ma se il tuo server non è Windows programmando > con Ruby e con Rails conviene lavorare con OS derivati da Unix, Linux o > Mac. Non solo sono gli OS di riferimento per gli sviluppatori di Rails > ma di solito i server sono Linux e ho visto sviluppatori penare su > Windows cercando di tenersi compatibili. Non è tanto l'interprete ad > essere problematico quanto tutto quello che ci sta attorno, soprattutto > se hai script o servizi accessori in background. Tante volte ci sono > delle dipendenze dall'OS. Una virtual machine risolve il problema e > prima di andare in produzione ti serve comunque un server su cui provare > che le installazioni funzionino. > > Dovresti trovare molto utile RVM o il suo equivalente Windows, PIK > http://watirmelon.com/2011/01/17/easily-manage-you... > > In pratica ti permettono di avere più interpreti sulla stessa macchina e > di passare dall'uno all'altro molto rapidamente. Sono l'ideale per te > che dovrai lavorare con due versioni. Dovrai anche tener separate le > gemme e a questo pensano bundler e/o i gemset di rvm. Pik non li ha ma > ci sono dei workaround https://github.com/vertiginous/pik/issues/16 > > Paolo Ciao Paolo, ringrazio anche te per le preziose indicazioni di cui farò tesoro. Purtroppo il server finale è effettivamente Windows 7, per cui ho dovuto virtualizzarne un'installazione sul mio portatile e creare una situazione di sviluppo/test ex novo. RVM l'ho provato, sempre sul mio portatile, ed è una bomba! PIK non credo di poterlo installare se non sulla mia macchina di sviluppo... (purtroppo) Grazie ancora :) Jonathan
on 2012-08-22 13:12
A distanza di qualche tempo (complici anche le ferie sopraggiunte) volevo informarvi che sono riuscito ad effettuare il porting delle due app con successo e senza nemmeno tanti problemi come invece avevo temuto in un primo momento :) Ringrazio ancora Sante e Paolo per il prezioso aiuto e per l'interessamento! Avrei ancora diverse domande da fare, ma aprirò relativo post Buona giornata a tutti Jonathan
on 2012-08-23 09:30
Server Windows 7? Ma e` un SO per desktop, cos'e` una app che viene utilizzata da pochi utenti? Se hai problemi con Windows puoi anche Utilizzare JRuby > > Ciao Paolo, > ringrazio anche te per le preziose indicazioni di cui farò tesoro. > Purtroppo il server finale è effettivamente Windows 7, per cui ho dovuto > virtualizzarne un'installazione sul mio portatile e creare una > situazione di sviluppo/test ex novo. RVM l'ho provato, sempre sul mio > portatile, ed è > una bomba! PIK non credo di poterlo installare se non sulla mia macchina > di sviluppo... (purtroppo) > > Grazie ancora :) > > Jonathan
on 2012-08-23 21:04
Ciao, per curiosità l'applicazione rails 2.3.4 su che versione di ruby l'hai portata? La 1.9.2 o la 1.9.3. Ho visto che le versioni di rails 2.3 hanno dei problemi con il require della 1.9.3, perchè è cambiato la modalità di caricamento dei file.
on 2012-08-24 10:04
Penso abbia fatto il porting anche di rails alla 3.2 @Jonathan Per quanto riguarda la 1.8.6 probabilmente sei stato fortunato o l'applicazione era scritta in modalità lungimirante, quella versione di ruby ha un differente scope delle variabili (ora non ricordo bene, non esistevano solo nello scope dove erano create ma persistevano) e potevano essere beghe anche solo passare alla 1.8.7 Con la 1.8.7 siamo agli sgoccioli, fin'ora ha funzionato tutto ma ho trovato una gemma che non lo supportava più, teoricamente sarebbe opportuno aspettare rails 4 prima di abbandonarlo. Ruby 1.9.3 su windows, fino pochi mesi fa, non era rose e fiori e c'era sempre qualche gemma che dava noie tipo linecache, gemma indispensabile per il debug con gli ide. Come app server thin od il più recente puma che ho trovato meno prestazionale ma più stabile Per utilizzare differenti versioni di ruby in produzione io me lo gestisco a mano con le variabili di amb.iente e non mi trovo male, basta poi usarla prima degli script: set path=%RUBY_193%;%path% Avevo creato una guida tempo fa, appena riesco ad aggiornarla la metterò a disposizione
on 2012-08-24 10:24
francesco agati wrote in post #1073018: > Ciao, > per curiosità l'applicazione rails 2.3.4 su che versione di ruby l'hai > portata? La 1.9.2 o la 1.9.3. > > Ho visto che le versioni di rails 2.3 hanno dei problemi con il require > della 1.9.3, perchè è cambiato la modalità di caricamento dei file. Ciao Francesco, Marco mi ha preceduto nella risposta! Ho fatto il porting anche alla versione 3.2 di Rails Su Windows anche io come Marco ho utilizzato il set path per il lancio di eventuali script @Riccardo Si server con Windows 7 Professional. La scelta del SO è stata una decisione aziendale a cui mi sono dovuto adeguare, mentre le app in questione costituiscono la intranet aziendale: il carico di lavoro/chiamate è piuttosto ridotto. Grazie ancora a tutti e rimango in attesa della guida di Marco, qualsiasi info mi è molto d'aiuto Buona giornata Jonathan
on 2012-08-24 11:07
Ti posso inviare quella che ho: è un documento pdf che ho scritto ad inizio 2011 e descrive come installare ruby 1.9.2, configurarlo per un'architettura a 3 livelli, rails 3 su un server windows 2008 e sqlserver. L'avevo fatto per documentare il lavoro di installazione nella nostra intranet ma in maniera generica per cui credo possa seguirla chiunque. E' un pò che devo aggiornarla ma purtroppo non trovo mai il tempo.
on 2012-08-24 11:27
Ho aggiornato il link per poterla scaricare e la trovi sul mio blog, cerca sqlserver. Naturalmente sono ben accetti consigli. http://marcomastrodonato.blogspot.it
on 2012-08-24 12:39
Grazie Marco per la guida, l'ho già scaricata e la leggerò con attenzione Jonathan
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.