Oupsnow de Merb à Rails

Dernièrement, j'ai fini par me décider de migrer Oupsnow, de Merb à Rails.

Alors que je finissais une migration de SQL à MongoDB, j'en entame une nouvelle. Celle-ci beaucoup plus profonde.

La raison de ma migration ?

Rails 3. En effet, depuis Décembre 2008, soit presque un an, Merb s'est figé. Certain me diront que la communauté Merb est en train de revivre et c'est tout à fait vrai. J'en suis même ravi. Mais Merb a pris un immense retard en presque un an. Même si Rails n'a pas vraiment avancé dans sa version stable, sa version Edge a elle énormément avancée.

Voulant toujours tester les nouvelles technologies en Ruby, je voudrais tester Rails 3. Mais aucun système n'existe pour passer de Merb à Rails 3. Un rapide test m'a montré que la différence était par contre minime entre Rails 2.3.x et Rails 3. La migration de Rails 2.3.x à Rails 3 en sera donc d'autant plus simple.

Voulant vraiment sortir une version stable le plus vite possible, j'ai donc pris la décision de migrer Oupsnow vers Rails 2.3.x pour ensuite migrer sur Rails 3 pour cette fois sortir une version de Oupsnow compatible Rails 3.

Oupsnow devient donc un projet Rails/MongoMapper et non plus Merb/DataMapper comme sa dernière version. Toute aide est bien-sûr la bienvenue.

English translation

[...]
Published on Mer 18 nov 2009 22:47
3 commentaires

Migration basée sur l'heure utc et plus incremental

Depuis la revision r9122, les migrations de Ruby on rails ne sont plus incrémentale comme précédemment. En effet, elles sont désormais basé sur le temps UTC. Cette évolution a comme principale intérêt d'éviter les problèmes de conflits entre différentes branches de développement grâce à un prefix unique.

Désormais lors de la création d'un fichier de migration vous aurez ainsi ceci :

$ ./script/generate migration create_user
      create  db/migrate/20080422122512_create_user.rb

Pour compléter cette évolution, il y a eu l'ajout de 2 nouvelles tâches rake. rake db:migrate:up et rake db:migrate:down. Il faut adjoindre à ces tâche la la variable VERSION étant le numero de la VERSION a ajouter(up) ou enlever(down). Les versions peuvent ainsi être ajoutées ou supprimées indépendamments.

On pouvait avoir cette fonctionnalité dans la version 2.0 de rails avec le plugin enhanced migrations plugin

[...]
Published on Mer 23 avr 2008 21:36
2 commentaires

Migration vers Typo 5.0

Ca y est ce blog a été migré vers la branche 5.0 Stable de Typo. Cette nouvelle version apporte énormément de changement que je ne détaillerais pas ici, car elles ont tout à fait bien été décrite.

J'ai même eu la chance d'avoir vu plusieurs de mes patchs intégrés à cette version.

Pour effectuer la migration vers cette nouvelle version de Typo, j'ai dû hélas faire quelques petites modifications. En effet, j'ai appris par Frédéric, qu'il y avait un petit bug à l'heure actuel. Les tags ne peuvent pas avoir de point dans leur nom. J'ai ainsi indiqué sur ce ticket la modification ci-jointe que j'ai réalisé pour faire passer la pillule à Typo. Hélas cela n'est qu'un contournement. Il suffit donc d'utiliser la magie de la console Rails pour éviter le problème en supprimant le point dans son tag.

rails@shinydedi /var/rails/typoblog-dev/current $ ./script/console production
Loading production environment.
>> t = Tag.find_by_name "rubyonrails2.0"
=> #"rubyonrails2.0", "updated_at"=>"2007-09-29 23:48:11.980446", "id"=>"18", "display_name"=>"rubyonrails2.0", "created_at"=>"2007-09-29 23:48:11.980446"}>
>> t.name "rubyonrails-2-0"
=> "rubyonrails2.0"
>> t.display_name = "rubyonrails-2-0"
=> "rubyonrails-2-0"
>> t.name = "rubyonrails-2-0"
=> "rubyonrails-2-0"
>> t
=> #"rubyonrails-2-0", "updated_at"=>"2007-09-29 23:48:11.980446", "id"=>"18", "display_name"=>"rubyonrails-2-0", "created_at"=>"2007-09-29 23:48:11.980446"}>
>> t.save
=> true

J'ai ensuite eu un nouveau petit problème lors du lancement de la tâche de migration de la base de donnée. Il me manquait le gem Rcov. Comme le serveur est mon serveur de production, j'ai préféré enlevé le fichier qui me demandait cette dépendance que d'installer ce gem. Par contre j'ai récupéré les sources du SVN de Typo. Donc peut-être que sur les versions releasés, ce fichier a été enlevé.

rails@shinydedi /var/rails/typo-5-0-stable $ rm lib/tasks/rcov.rake

Et après tout est passé. A part ma petite erreur d'oubli de changement de localisation du dossier static pour mon serveur. Mais là c'est que de l'administration pur et dur.

Enfin au niveau des modifications, j'ai aussi changé de thème pour conserver le nouveau thème par défaut de Typo. J'ai juste réalisé quelques modifications au niveau du fichier CSS pour que ça corresponde plus à mes envies. Je vous fournis les modifications pour les curieux.

Index: themes/dirtylicious/stylesheets/application.css
===================================================================
--- themes/dirtylicious/stylesheets/application.css     (révision 1624)
+++ themes/dirtylicious/stylesheets/application.css     (copie de travail)
@@ -21,8 +21,8 @@

 li {list-style: none;}

-h1 {font: normal 1.8em Tahoma,sans-serif;}
-h2 {font: normal 1.6em sans-serif;}
+h1 {font: normal 2.3em Tahoma,sans-serif;}
+h2 {font: normal 2em sans-serif;}
 h3 {font: bold 1em Tahoma,sans-serif;}

 h1,h2,h3 {padding-top: 6px; color: #553; margin-bottom: 4px;}
@@ -167,6 +167,16 @@
     color: #654;
 }

+#sidebar #categories li a {
+    display: inline;
+    padding: 0 0 0 5%;
+}
+
+#sidebar #archives li a {
+    display: inline;
+    padding: 0 0 0 5%;
+}
+
 /* footer */
 #footer {
     background: #949490;
@@ -325,3 +335,26 @@
 #sidebar table tfoot #next a {text-align:center;}

 #searchform {padding: 10px;}
+
+#delicious {
+    border: 4px solid rgb(188, 204, 235);
+    padding-left: 5%;
+    padding-right: 2%;
+    padding-bottom: 10px;
+}                                                   
+
+pre {
+    background-color: black;
+    color: white;
+    font-size: 1.3em;
+    padding: 2%;
+}
+
+.content h1 {
+    font-size:1.6em;
+}
+
+.content h2 {
+    font-size: 1.4em;
+    padding-left: 5%;
+}

[...]
Published on Ven 11 jan 2008 21:17
0 commentaires

Un script pour tester votre application pour Rails 2.0

Mislav Marohnic a réalisé un petit script Ruby pour tester si votre application Rails valide 1.2.3 l'est aussi pour la prochaine migration à Rails 2.0 (attendu avec impatience). Ce script fait une vérification de toutes les alertes (warning) que vous avez concernant les méthodes déprécié (deprecated)

Pour tester ce script, il suffit de lancer la commande suivante quand vous êtes dans le dossier de votre application :

wget http://pastie.caboo.se/99900.txt?key=krcevozww61drdeza13e3a -q -O- | ruby -

Sinon vous pouvez aussi regarder les sources

source issue de : Peter Cooper

[...]
Published on Sam 29 sept 2007 21:44
0 commentaires

RSS