A calendar management project, for events and activities related to communities fighting for freedoms. This can be related to software, art, data, hardware, content, commons, internet. https://www.agendadulibre.org
Go to file
Genevieve Bastien f89a2b1542 Documentation sur les conflits lors de mises à jour
Signed-off-by: Genevieve Bastien <gbastien@versatic.net>
2017-03-18 11:14:55 -04:00
app Libre en Fete banner back on the main page 2017-02-16 19:05:09 +01:00
bin Bundle update 2015-08-20 11:10:35 +02:00
config renamed files pt-BR 2017-01-18 21:50:05 -02:00
db Corrected migration, to populate the new tags table 2016-12-17 18:18:01 +01:00
deploy Bundle update 2016-04-24 20:30:24 +02:00
lib Correction: the nth day was off by 1 when it was exactly a multiple of 7. 2016-11-21 16:00:40 +01:00
log Version initiale 2013-11-13 23:09:38 +01:00
public Updated to libre en fête 2017 2017-01-19 14:54:50 +01:00
test Webshims and select2 removed, replaced with straight rails datetime select and jquery tags input 2016-12-17 16:59:11 +01:00
vendor/assets Webshims and select2 removed, replaced with straight rails datetime select and jquery tags input 2016-12-17 16:59:11 +01:00
.gitignore Assets compilées 2016-03-30 17:39:29 +02:00
.haml-lint.yml Configuration pour outils de qualité 2014-12-13 00:27:31 +01:00
.rubocop.yml Bundle update 2016-10-15 16:39:15 +02:00
config.ru Trouble with sqlite3 in production... 2015-02-28 18:21:06 +01:00
COPYING Un peu de documentation pour l'installation et la license AGPL 2014-03-03 23:54:44 +01:00
Gemfile Moving some gems to the assets/dev group 2017-01-02 10:47:45 +01:00
Gemfile.lock Bundle update 2017-02-16 20:21:09 +01:00
Guardfile Added guard-rails to automatically restart rails when need, and bundle audit, to scheck for security issues 2016-11-01 00:30:10 +01:00
Rakefile Mise à jour sur les styles du code, afin de mieux suivres les préconisations de rubocop 2014-08-06 14:47:47 +02:00
README.creole Documentation sur les conflits lors de mises à jour 2017-03-18 11:14:55 -04:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

== Agenda du libre

Ceci est une application permettant de lister des évènements sur un calendier,
évènements proposés par tout un chacun mais nécessitant une modération avant
d'être affichés.

Cette application est disponible sous la license AGPL version 3 ou supérieure.

Elle est hébergée ici: https://git.framasoft.org/agenda-libre/agenda-libre-ruby
et visible ici: http://agendadulibre.org

La technologie repose sur "Ruby on Rails", version 4 ou supérieure.

Il existe aussi des projets équivalents
https://git.framasoft.org/agenda-libre/agenda-libre-php
https://bitbucket.org/mlhamel/agendadulibre

=== Prérequis

Exemple d'installation pour Debian:
{{{
~ $ apt-get install sqlite3 libsqlite3-dev build-essential git
~ $ apt-get install ruby ruby-dev bundler
}}}

=== Code source

Pour installer l'Agenda du libre, vous devrez récupérer le code source à l'aide
de "git", puis installer les dépendances avec "bundler" (bundler est packagé
sous debian, mais peut aussi s'installer depuis http://bundler.io, une version
récente de préférence).

Par exemple:
{{{
~ $ git clone git@git.framasoft.org:agenda-libre/agenda-libre-ruby.git
~ $ cd agenda-du-libre
~ $ bundle install --path vendor/bundle --without production
}}}

=== Base de données

La base de données peut être "sqlite3", "postgresql" ou "mysql". Par défaut
sqlite3 est configurée, mais vous pouvez la modifier dans le fichier
`config/database.yml`.

Sous un environnement comme debian, il faut aussi les paquets "build-essential"
et "libsqlite3-dev" (ou "libmysqlclient-dev").

Mettez en place le schéma comme ceci:
{{{
~ $ bundle exec rake db:setup
}}}

=== Lancement

Puis lancez rails (avec tests et vérifications de sécurité):
{{{
~ $ bundle exec guard
}}}

Vous pouvez finalement accéder à l'agenda dans un navigateur à l'URL suivante:
http://localhost:3000

Votre premier modérateur admin est identifié par "admin@example.com", son mot de
passe étant "password".

=== Aide mémoire

Commande à utiliser en console rails pour créer plusieurs événements:
{{{
w = 0
Event.create(elt.attributes.merge( { start_time: elt.start_time+w.week, end_time: elt.end_time+w.week } )).start_time; w = 1
}}}

Commande à utiliser pour précompiler les assets avant leur déploiement dans un environnement de production
{{{
bundle exec rake assets:precompile RAILS_ENV=assets
}}}

=== Mise à jour

Pour mettre à jour l'agenda du libre, il faut d'abord aller chercher la version de master la plus récente sur le git
upstream (https://git.framasoft.org/agenda-libre/agenda-libre-ruby). Une fois cela fait, il faut y ré-appliquer les
changements qui auraient été effectués pour l'environnement donné et quelques conflits sont à prévoir. Le plus courant:

{{{
db/schema.rb: Ignorer les conflits. Prendre la version courante. Ce fichier est mis à jour à chaque migration et représente
l'état actuel de la base de données sur le serveur courant. Il est recommandé de versioner de fichier, mais à moins d'avoir
exactement le même type de base de données que les développeurs upstream, il va créer des conflits. Seule la dernière version
du fichier peut être conservée sur la branche de travail.
}}}

Lors des mises à jour de l'agenda du libre à une version plus récente, les commandes suivantes sont nécessaires:

{{{
~ $ bundle install --path vendor/bundle --without production
~ $ bundle exec rake db:migrate
}}}

Puis redémarrer avec:

{{{
~ $ bundle exec rails s
}}}

=== Discussions

https://kiwiirc.com/client/irc.freenode.net/agendadulibre

{{{
                         °           °           °
                       \ | /       \ | /       \ | /
                         |           |           |
                        ___         ___         ___
                      \     /     \     /     \     /
                         .         \_|_/         .
                                  \  |  /
}}}