Mise à jour

De Traduction du Wiki diaspora* (non officiel)
Aller à la navigation Aller à la recherche

Cette page contient des instructions spécifiques sur la façon de mettre à jour diaspora*, si des étapes spéciales sont nécessaires. Si aucune étape spéciale n'est nécessaire, vous pouvez vous en tenir au guide général de la section Mise à jour d'une installation de production vers une nouvelle version mineure.

Ces guides sont généralement destinés aux installations de production, si vous développez pour diaspora*, vous devez savoir quelles étapes sont pertinentes pour mettre à jour votre installation de développement. Les étapes générales sont disponibles dans la section Mise à jour d'une installation de développement. Si vous rencontrez des difficultés, demandez de l'aide via les canaux habituels.

Bookmark.png »» Note
La mise à jour de Diaspora est assez simple.
Mais parfois il y a des procédures spéciales ou des mises à jour, donc lisez toujours le changelog avant.


Mise à jour d'une installation de production vers une nouvelle version mineure

Tout d'abord, veillez à arrêter votre pod diaspora* avant de procéder à la mise à jour de votre installation. Si vous avez suivi l'installation recommandée et que vous êtes sur RVM, mettez à jour RVM et installez la version de Ruby actuellement recommandée :

rvm get latest
rvm install 2.6
Bookmark.png »» Note
Si vous recevez un message d'erreur indiquant que RVM n'a pas réussi à vérifier les signatures,
veuillez suivre la documentation de RVM à partir de "Install our keys" pour importer les clés actuelles.


Ensuite, nous devons mettre à jour le code :

git checkout Gemfile.lock # Discard uninteresting local changes, if any
git pull

Lisez la sortie ! Si vous avez apporté des modifications locales à des fichiers suivis dans git, il se peut que celui-ci refuse la mise à jour ou place des marqueurs de conflit dans les fichiers qui doivent être résolus. Si vous utilisez sur PostgreSQL et obtenez un message à propos de Gemfile.lock essayez d'abord git checkout Gemfile.lock. Si vous en recevez un à propos de db/schema.rb essayez git checkout db/schema.rb.

Si la version recommandée de Ruby a changé, vous devez l'installer. Vérifiez avec

cd .. && cd -

Si cela génère un avertissement en rouge, exécutez la commande qu'il vous donne et faites cd ... && cd - à nouveau.

Maintenant, nous devons mettre à jour les bibliothèques Ruby :

gem install bundler:1.17.3
script/configure_bundler
bin/bundle --full-index
Bookmark.png »» Note
Ignorez toutes les notes de migration que cette commande vous donne,
elles sont déjà faites pour vous ou explicitement conseillées dans notre changelog !


Ensuite, nous appliquons les mises à jour au schéma de la base de données, attention cela peut prendre un certain temps si vous avez déjà une grosse base de données :

RAILS_ENV=production bin/rake db:migrate

Mettre à jour le contenu statique, ce qui peut également prendre plusieurs minutes et ne pas donner de résultat au début :

RAILS_ENV=production bin/rake assets:precompile

Assurez-vous de vérifier les nouvelles options de configuration dans diaspora.yml.example. Des outils comme diff et vimdiff peuvent aider à transférer de nouvelles sections.

Maintenant, vous devez redémarrer Diaspora. Pour le faire avec la méthode de démarrage standard, vous devez vous rendre à l'endroit où vous exécutez ./script/server, appuyer sur Ctrl+C, ouvrir un nouveau shell, et l'exécuter à nouveau.

Guides de mise à jour des versions majeures

Si vous pouvez sauter les mises à jour des versions mineures, n'essayez pas de passer d'une version majeure à une autre version majeure en sautant une ou plusieurs versions intermédiaires. Par exemple, ne passez pas de la version 0.5 à la version 0.7, mais plutôt de la version 0.5 à la version 0.6, puis de la version 0.6 à la version 0.7.

Mise à jour de diaspora* 0.7 vers diaspora* 0.8-pre

Bookmark.png »» Note
diaspora* 0.8.0.0 n'est pas encore publié,
il s'agit d'exécuter la branche develop pour le moment. Vous ne devriez pas faire cela si vous ne savez pas exactement ce que vous faites...


Vous devez installer un autre paquet, libidn11-dev pour debian et ubuntu, pour exécuter la version de développement actuelle de diaspora*.

Assurez-vous d'avoir au moins NodeJS 12, Ruby 2.5 et Redis 4 pour exécuter diaspora* v0.8.0.0.

Mise à jour de diaspora* 0.6 vers diaspora* 0.7

Étant donné que la mise à jour vers 0.7 comporte quelques changements majeurs qui impliquent une action manuelle, nous fournissons un guide étape par étape. Veuillez vous assurer de mettre à jour vers diaspora* 0.6 avant ces étapes.

Bookmark.png »» Note
Si, et seulement si, vous testiez la release candidate,
sautez ce guide, exécutez git checkout master && git pull et procédez aux instructions de mise à jour de la version mineure ci-dessus.


  1. Sauvegardez votre base de données, exécutez les étapes suivantes dans une session screen ou tmux afin qu'elles ne puissent pas être interrompues lorsque par exemple votre connexion SSH tombe. Exécutez toutes les commandes à partir de votre chemin d'installation de diaspora*.
  2. Mettez à jour RVM avec rvm get latest et installez Ruby 2.4 avec rvm install 2.4. Ruby 2.1 et Ruby 2.2 ne sont plus supportés. Ruby 2.3 est cependant supporté.
  3. Arrêtez diaspora* maintenant, il ne doit pas être en cours d'exécution pendant la mise à jour, sinon les migrations vont échouer.
  4. Mettez à jour diaspora* en exécutant git checkout db/schema.rb et git pull; git checkout master.
  5. Exécutez git status et supprimer tous les "fichiers Untracked", assurez-vous surtout de supprimer public/.well-known/host-meta, car cela empêcherait la fédération de fonctionner correctement.
  6. Activez le nouveau Ruby avec cd .. && cd -.
  7. Installez la dernière version de Bundler avec gem install bundler.
  8. Parfois la configuration du bundler est cassée, alors lancez script/configure_bundler pour s'assurer que c'est correct.
  9. Installez les dépendances avec bin/bundle. ATTENTION : N'exécutez pas les commandes qui sont suggérées à la fin de la sortie du terminal ; cela a déjà été fait pour vous.
  10. Mettez à jour la base de données avec RAILS_ENV=production bin/rake db:migrate.
  11. Lorsque la base de données a été mise à jour avec succès, mettez à jour les actifs avec : RAILS_ENV=production bin/rake tmp:cache:clear assets:precompile.
  12. Ensuite, vous pouvez redémarrer diaspora*. N'oubliez pas d'ajuster la version de Ruby dans les scripts de démarrage que vous pouvez avoir.

Vous devriez maintenant comparer votre config/diaspora.yml à la mise à jour config/diaspora.yml.example, par exemple avec vimdiff.

Consultez le changelog pour avoir une liste complète des modifications.

Mise à jour de diaspora* 0.5 vers diaspora* 0.6

Étant donné que la mise à jour vers 0.6 comporte quelques changements majeurs qui impliquent une action manuelle, nous fournissons un guide étape par étape. Veuillez vous assurer de mettre à jour vers diaspora* 0.5 avant ces étapes.

Bookmark.png »» Note
Cette mise à jour prendra un peu plus de temps
car elle inclut quelques migrations potentiellement longues, en particulier pour les grandes bases de données.


  1. Tout d'abord, assurez-vous d'arrêter votre pod diaspora* avant de procéder à la mise à jour de votre installation.
  2. Sauvegardez votre base de données, exécutez les étapes suivantes dans une session screen ou tmux afin qu'elles ne puissent pas être interrompues lorsque par exemple votre connexion SSH tombe. Exécutez toutes les commandes à partir de votre chemin d'installation de diaspora*.
  3. Mettez à jour RVM avec rvm get latest et installez Ruby 2.3 avec rvm install 2.3. Ruby 2.0 n'est plus supporté et Ruby 2.2 n'est pas officiellement supporté mais peut fonctionner. Ruby 2.1 est toutefois pris en charge.
  4. Arrêtez diaspora* maintenant, il ne doit pas être en cours d'exécution pendant la mise à jour, sinon les migrations vont échouer.
  5. Avec l'ancien Ruby 2.1 toujours activé, exécutez RAILS_ENV=production bundle exec sidekiq (ajoutez DB=postgres à la commande si vous êtes un utilisateur de PostgreSQL), attendez 5 minutes et redémarrez-le avec Ctrl+C.
  6. Assurez-vous d'activer le nouveau Ruby avec rvm use 2.3.
  7. Installez la dernière version de Bundler avec gem install bundler --version 1.15.4.
  8. Mettez à jour diaspora* en exécutant git checkout Gemfile.lock db/schema.rb et git pull; git checkout v0.6.7.0.
  9. La variable d'environnement DB a disparu, à la place, nous devons maintenant indiquer à Bundler quel support de base de données installer. Exécutez bin/bundle install --full-index --with mysql --deployment pour le support MySQL, exécuté bin/bundle install --full-index --with postgresql --deployment pour le support PostgreSQL. Bundler se souvient de ce choix et vous n'aurez pas à le spécifier à nouveau. Ignorez toutes les notes de migration que cette commande vous donne, elles sont déjà exécutées pour vous.
  10. Mettez à jour la base de données avec RAILS_ENV=production bin/rake db:migrate. Cela prendra un certain temps, soyez patient.
  11. Après ou pendant la mise à jour de la base de données, examinez certains des nouveaux paramètres par défaut pour la configuration. Le changement le plus important est que le serveur d'application n'écoute plus le port 3000 par défaut, mais un socket UNIX à l'adresse suivante tmp/diaspora.sock. Vous devez soit mettre à jour la configuration de votre reverse proxy pour utiliser le socket, soit mettre à jour config/diaspora.yml et le configurer explicitement pour écouter le port 3000. Vous trouverez ci-dessous un résumé des autres changements importants.
  12. Lorsque la base de données a été mise à jour avec succès, mettez à jour les actifs avec : RAILS_ENV=production bin/rake tmp:cache:clear assets:precompile.
  13. Ensuite, vous pouvez redémarrer diaspora*. N'oubliez pas d'ajuster la version de Ruby dans les scripts de démarrage que vous pouvez avoir.
  14. Enfin, vous devez migrer tous les travaux des anciennes files d'attente Sidekiq vers les nouvelles, pour ce faire, exécutez RAILS_ENV=production bin/rake migrations:legacy_queues.

Vous devriez maintenant comparer votre config/diaspora.yml à la mise à jour de config/diaspora.yml.example, par exemple avec vimdiff. Les changements notables, qui ne se limitent pas seulement à la configuration, sont :

  • Nous avons abandonné le support des espaces de noms Redis dans cette version. Si vous avez précédemment défini un espace de noms personnalisé, veuillez noter que diaspora* n'utilisera plus la valeur configurée. Par défaut, Redis supporte jusqu'à 8 bases de données qui peuvent être sélectionnées via l'URL Redis dans config/diaspora.yml. Veuillez consulter les exemples fournis dans notre fichier d'exemples de configuration.
  • diaspora* 0.5 a introduit une fonctionnalité de chat expérimentale en utilisant Vines. En raison de nombreux problèmes avec Vines, nous avons décidé de le supprimer et de proposer une configuration d'exemple Prosody à la place. Consultez Integration/Chat pour plus d'informations sur la façon de migrer vers Prosody si vous utilisiez Vines auparavant. Malheureusement, cette fonctionnalité est encore expérimentale et nous vous recommandons de bien réfléchir avant de l'activer.
  • Avec le portage vers Bootstrap 3, app/views/terms/default.haml a une nouvelle structure. Si vous avez créé un fichier app/views/terms/terms.haml ou app/views/terms/terms.erb personnalisé, vous devrez modifier ces fichiers pour que vos personnalisations soient basées sur le nouveau fichier default.haml.

Consultez le changelog pour avoir une liste complète des modifications.

Mise à jour de diaspora* 0.4 vers diaspora* 0.5

Étant donné que la mise à jour vers la version 0.5 comporte quelques changements majeurs qui impliquent une une action manuelle, nous fournissons un guide étape par étape. Veuillez vous assurer de mettre à jour vers diaspora* 0.4 avant ces étapes.

Bookmark.png »» Note
Cette mise à jour prendra entre une demi-heure et plusieurs heures,
car elle contient une migration longue durée, notamment sur MySQL/MariaDB.


  1. MySQL/MariaDB. Assurez-vous d'arrêter votre pod diaspora* avant de procéder à la mise à jour de votre installation.
  2. Faites au moins une sauvegarde de la base de données.
  3. Si vous êtes sur PostgreSQL, exécutez export DB=postgres RAILS_ENV=production, si vous êtes sur MySQL/MariaDB, exécutez export DB=mysql RAILS_ENV=production. Si vous rencontrez un rake aborted! NameError: uninitialized constant Rack::SSL dans la suite de ce guide, cela signifie que vous n'avez pas exécuté cette étape correctement.
  4. Exécutez bundle exec sidekiq, attendez 5 minutes et redémarrez-le avec Ctrl+C.
  5. Si vous avez modifié public/default.html, public/404.html, public/422.html ou public/500.html prendre une sauvegarde des modifications, elles seront perdues ou écrasées. Exécuter git checkout Gemfile.lock db/schema.rb public/*.html. Exécutez git stash pour préserver toutes les autres modifications non validées. Vous pouvez plus tard restaurer les changements cachés avec git stash pop.
  6. Mettre à jour RVM avec rvm get stable. Installer Ruby 2.1 avec rvm install 2.1.
  7. Mettre à jour la diaspora avec git pull; git checkout v0.5.10.2.
  8. Activez le nouveau Ruby avec cd .. && cd -.
  9. Installez la dernière version de Bundler avec gem install bundler --version 1.12.6.
  10. Installez les dépendances avec bin/bundle install --full-index --without development test. ATTENTION : N'exécutez pas les commandes qui sont suggérées à la fin de la sortie du terminal ; cela a déjà été fait pour vous.
  11. Vérifiez que vous n'avez pas exécuté de commandes supplémentaires déjà faites pour vous, puis lancez git status et supprimez tous les fichiers non suivis résidant dans db/migrate.
  12. Éditez config/initializers/secret_token.rb, remplacez secret_token par secret_key_base:
    # Ancien
    Rails.application.config.secret_token = '***********...'
    
    # Nouveau
    Diaspora::Application.config.secret_key_base = '*************...'
    
  13. Si vous utilisez MySQL/MariaDB, éditez config/database.yml: Remplacez charset: utf8 par encoding: utf8mb4, Remarquez comment la clé a changé ! Remplacez collation: utf8_bin par collation: utf8mb4_bin. Jetez un coup d'œil à la mise à jour config/database.yml.example si vous avez besoin de conseils supplémentaires pour cette étape.
  14. Run bin/rake db:migrate, Cela prendra un certain temps, mais vous devriez vérifier de temps en temps s'il a échoué et demander de l'aide s'il a échoué.
  15. Run bin/rake tmp:cache:clear assets:precompile. Cette étape génère maintenant public/404.html, public/422.html et public/500.html.
  16. Vous pouvez maintenant relancer diaspora* comme vous en avez l'habitude.

Vous devriez maintenant comparer votre config/diaspora.yml à la mise à jour de config/diaspora.yml.example, par exemple avec vimdiff. Les changements notables, qui ne se limitent pas seulement à la configuration, sont :

  • Le balisage environnant de la page d'accueil personnalisée a été légèrement modifié, veuillez consulter le changelog.
  • Si vous utilisez les dons Paypal, les paramètres dans diaspora.yml pour celui-ci ont changé, afin de supporter le bouton non hébergé. Veuillez jeter un coup d'oeil à la mise à jour diaspora.yml.example.
  • La valeur par défaut pour inclure jQuery à partir d'un CDN a changé. Si vous souhaitez continuer à l'inclure depuis un CDN, veuillez définir explicitement le paramètre jquery_cdn à true dans diaspora.yml.
  • Une nouvelle fonctionnalité permet d'élaguer automatiquement les comptes inactifs. Si vous souhaitez l'activer, veuillez consulter le journal des modifications [1].
  • Il existe une nouvelle fonctionnalité permettant de proxyer les images intégrées provenant de sources externes via votre serveur, renforçant ainsi la confidentialité de vos utilisateurs. Si vous souhaitez l'activer, veuillez vous référer à Camo.
  • diaspora* 0.5 inclut un aperçu de la nouvelle fonctionnalité de chat, si vous voulez jouer avec, jetez un œil à Vines. Nous ne recommandons généralement pas de l'activer pour le moment.

Nettoyage après mise à jour

Après avoir vérifié que tout fonctionne à nouveau, vous pouvez libérer de l'espace.

Nettoyer les anciens actifs

Vous pouvez supprimer les actifs précompilés inutilisés en exécutant :

RAILS_ENV=production bin/rake assets:clean

Nettoyer les anciens gems

Vous pouvez supprimer les gems inutilisées en exécutant :

bin/bundle clean

Veillez à ne l'exécuter que si vous ne partagez pas de gems avec une autre application.


Nettoyer les anciennes installations de Ruby

Si vous utilisez RVM ou un autre gestionnaire de version de Ruby, et que vous êtes passé à une autre version de Ruby pendant la mise à jour, vous pouvez abandonner l'ancienne version de Ruby. Par exemple pour RVM avec :

rvm uninstall 2.1

Veillez à ne l'exécuter que si vous ne partagez pas l'installation de Ruby avec une autre application.

Mise à jour d'une installation de développement

Il suffit de vérifier la branche de développement, de faire un pull (depuis upstream), de reconstruire et de migrer la base de données :

cd diaspora
git checkout develop
git pull # Or git pull upstream develop if you cloned from your fork
cd .. && cd -
bin/bundle --full-index
bin/rake db:migrate