Wikini

DistributionDeWikini

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-3-227-254-12.compute-1.amazonaws.com

Nouvelles versions et mode de distribution


Besoins


I. Philosophie de WikiNi : léger, simple, tout terrain, rapide

Il me semble important de pouvoir conserver un noyau de base qui fait que WikiNi garde ses qualités intrinsèques, à savoir :

II. L'ouverture vers un moteur plus riche

Il me semble également important de pouvoir intégrer au projet WikiNi toutes nouvelles contributions, cette intégration ne devant pas se faire au détriment des qualités sus-citées.
Je propose à partir de cette base, de réfléchir à un nouveau mode de distribution de WikiNi.

-- DavidDelon

Solution provisoire

Tant que WikiNi reste d'un poids raisonnable (environ 600 Ko non compressé, soit environ 3 minutes de téléchargement pour un modem 56Kbit/s), il sera livré sous la forme :
Cette solution reste valable tant que WikiNi n'augmente pas fortement de poids et tant qu'une autre solution n'est pas mise en oeuvre.


Premières pistes de reflexion


-- DavidDelon

Je serais plutôt d'accord avec l'option WikiNi et WikiNi-contrib. --GarfieldFr

Oui pour tout David, notamment en étudiant de près les procédures d'intégration dans le noyau de WikiNi des fonctionnalités les plus utilisées.
J'ajouterai, qui me paraît fondamental : améliorer nos procédures de publication d'une nouvelle version. C'est vrai que la dernière version stable 0.1.3 ne reflète pas du tout les progrès de WikiNi. Personnellement, je n'ai jamais rien compris aux mystères des variables de configuration wakka_version et wikini_version... notamment, pourquoi deux variables ? ne peut-on simplifier tout ça ? [Tiens, bonne remarque ça... :) -- ProgFou] et qu'est-ce qui nous empêche actuellement de passer 0.4.1 en stable ? [Plus rien ? ;-) -- ProgFou] -- CharlesNepote

Un accord sur la proposition de découpage. Je ne pense pas qu'il soit judicieux de distribuer Wikini, sans une distribution de base, expurgée de la doc. -- DavidDelon

Le projet WakkaFr, qui est devenu Wikini, est né de la volonté de disposer d'un outil léger, facile à installer, chez la majorité des hébergeurs acceptant php/mysql. Phpwiki existait et dans ses premières versions, répondait à ces critères, malheureusement la dernière version disponible, était difficile à installer et à paramétrer pour un débutant, fonctionnait difficilement chez tous les hebergeurs, j'ai trouvé Wakka que j'ai commencé à adapter : avec cette idée en tête, ne jamais se retrouver avec une uzine à gaz difficille à installer, avoir toujours la possibilité d'installer les fonctionnalités miminum. Je ne vois pas pourquoi il ne serait pas possible d'installer un Wikini sans la documentation, sans des actions qui sont certes utiles mais d'un usage anedoctique pour un débutant (coloration syntaxique par exemple (rien de personnel GardfieldFr? ;-) !). En fait, on peut dire que, pour moi, c'est cet article : http://webgeneraction.levillage.org/article.php3?id_article=182 de Walk (un des premiers participants à WakkaFr !) qui a été le moteur de mon investissement dans un projet tel que WikiNi. -- DavidDelon

Ok. Donc si je comprends bien ta réponse subtile à ma question : tu souhaites qu'on fasse le tri avant la sortie de la version 0.4.1, c'est bien ça ? Pas de problème de mon coté : je ne suis pas dans l'urgence. Je pousse juste un peu histoire d'arriver un jour à se décider à sortir une version stable. ;-) -- ProgFou

On peut très bien distribuer une version allégée et une version complète non ? Si on ne peut pas se mettre d'accord sur les actions à retirer on peut, il me semble, au moins proposer une version sans la documentation : à quoi sert elle quand on veut installer un WikiNi rapidement comme espace de travail (style tableau blanc), dans un coin du web ? -- DavidDelon

Proposition de découpage


En attendant que le projet packageur/installateur mûrisse un peu plus (j'ai pas dit "pourrisse" :))), il est facile de packager des Wikini selon quelques critères simple :

Un wikini de base : wikini-0.4.1-base.tar.gz contenant au 11/03/2004 les fichiers suivants :

wikini/COPYING
wikini/INSTALL
wikini/LICENSE
wikini/README
wikini/index.php
wikini/interwiki.conf
wikini/wakka.basic.css
wikini/wakka.css
wikini/wakka.php
wikini/actions/backlinks.php
wikini/actions/footer.php
wikini/actions/header.php
wikini/actions/include.php
wikini/actions/interwikilist.php
wikini/actions/listpages.php
wikini/actions/listusers.php
wikini/actions/mychanges.php
wikini/actions/mypages.php
wikini/actions/orphanedpages.php
wikini/actions/pageindex.php
wikini/actions/recentchanges.php
wikini/actions/recentchangesrss.php
wikini/actions/recentcomments.php
wikini/actions/recentlycommented.php
wikini/actions/redirect.php
wikini/actions/resetpassword.php
wikini/actions/textsearch.php
wikini/actions/trail.php
wikini/actions/usersettings.php
wikini/actions/wantedpages.php
wikini/formatters/action.php
wikini/formatters/code.php
wikini/formatters/coloration_php.php
wikini/formatters/raw.php
wikini/formatters/wakka.php
wikini/handlers/page/acls.php
wikini/handlers/page/addcomment.php
wikini/handlers/page/claim.php
wikini/handlers/page/deletepage.php
wikini/handlers/page/diff.php
wikini/handlers/page/edit.php
wikini/handlers/page/raw.php
wikini/handlers/page/referrers.php
wikini/handlers/page/referrers_sites.php
wikini/handlers/page/revisions.php
wikini/handlers/page/show.php
wikini/handlers/page/xml.php
wikini/setup/default.php
wikini/setup/footer.php
wikini/setup/header.php
wikini/setup/install.php
wikini/setup/writeconfig.php
wikini/setup/doc/_root_page_base.txt
wikini/setup/doc/BacASable.txt
wikini/setup/doc/DerniersChangements.txt
wikini/setup/doc/DerniersCommentaires.txt
wikini/setup/doc/PagesACreer.txt
wikini/setup/doc/PagesOrphelines.txt
wikini/setup/doc/ParametresUtilisateur.txt
wikini/setup/doc/ReglesDeFormatage.txt
wikini/setup/doc/RechercheTexte.txt


Un wikini avancé (complet ? ...) wikini-0.4.1-complet.tar.gz contenant au 11/03/2004 les fichiers suivants :

wikini/COPYING
wikini/INSTALL
wikini/LICENSE
wikini/README
wikini/index.php
wikini/interwiki.conf
wikini/wakka.basic.css
wikini/wakka.css
wikini/wakka.php
wikini/actions/backlinks.php
wikini/actions/footer.php
wikini/actions/header.php
wikini/actions/include.php
wikini/actions/interwikilist.php
wikini/actions/listpages.php
wikini/actions/listusers.php
wikini/actions/mychanges.php
wikini/actions/mypages.php
wikini/actions/orphanedpages.php
wikini/actions/pageindex.php
wikini/actions/recentchanges.php
wikini/actions/recentchangesrss.php
wikini/actions/recentcomments.php
wikini/actions/recentlycommented.php
wikini/actions/redirect.php
wikini/actions/resetpassword.php
wikini/actions/textsearch.php
wikini/actions/trail.php
wikini/actions/usersettings.php
wikini/actions/wantedpages.php
wikini/formatters/action.php
wikini/formatters/code.php
wikini/formatters/coloration_php.php
wikini/formatters/raw.php
wikini/formatters/wakka.php
wikini/handlers/page/acls.php
wikini/handlers/page/addcomment.php
wikini/handlers/page/claim.php
wikini/handlers/page/deletepage.php
wikini/handlers/page/diff.php
wikini/handlers/page/edit.php
wikini/handlers/page/raw.php
wikini/handlers/page/referrers.php
wikini/handlers/page/referrers_sites.php
wikini/handlers/page/revisions.php
wikini/handlers/page/show.php
wikini/handlers/page/xml.php
wikini/setup/default.php
wikini/setup/footer.php
wikini/setup/header.php
wikini/setup/install.php
wikini/setup/writeconfig.php
wikini/setup/doc/ActionBacklinks.txt
wikini/setup/doc/ActionInclude.txt
wikini/setup/doc/ActionListPages.txt
wikini/setup/doc/ActionListUsers.txt
wikini/setup/doc/ActionOrphanedPages.txt
wikini/setup/doc/ActionPageIndex.txt
wikini/setup/doc/ActionRecentChanges.txt
wikini/setup/doc/ActionRecentlyCommented.txt
wikini/setup/doc/ActionRedirect.txt
wikini/setup/doc/ActionTextSearch.txt
wikini/setup/doc/ActionTrail.txt
wikini/setup/doc/ActionUserSettings.txt
wikini/setup/doc/ActionWantedPages.txt
wikini/setup/doc/AideWikiNi.txt
wikini/setup/doc/BacASable.txt
wikini/setup/doc/ControlerLAccesAuxPages.txt
wikini/setup/doc/DerniersChangements.txt
wikini/setup/doc/DerniersCommentaires.txt
wikini/setup/doc/IndexDesPages.txt
wikini/setup/doc/IndexDesPagesBis.txt
wikini/setup/doc/ListeDesActionsWikini.txt
wikini/setup/doc/MotWiki.txt
wikini/setup/doc/NomWiki.txt
wikini/setup/doc/PagesACreer.txt
wikini/setup/doc/PagesOrphelines.txt
wikini/setup/doc/ParametresUtilisateur.txt
wikini/setup/doc/PlanDuSite.txt
wikini/setup/doc/RechercheTexte.txt
wikini/setup/doc/ReglesDeFormatage.txt
wikini/setup/doc/TableauDeBordDeCeWiki.txt
wikini/setup/doc/_root_page.txt


Soit le même qu'au dessus, avec en plus quelques morceaux de doc faisant 180Ko qui n'en font que 7 de moins a télécharger
une fois tgz-isé. Est-ce que ça vaut vraiment la peine de s'embéter pour ça ?
En plus, ces .txt pourraient dégager une fois l'install terminée puisqu'ils ne servent plus à rien une fois qu'ils sont en base.
Au pire, on pourrait proposer de ne pas les installer si c'est l'espace mysql qui est limité. -- PiiF

Des wikini contrib

Des wikini localisés (?)

wikini-0.4.1-base-de.tar.gz
wikini-0.4.1-base-en.tar.gz
wikini-0.4.1-complet-en.tar.gz
etc ...

-- DavidDelon





Processus d'installation


Pour le processus d'installation, je ne vois pas ce que tu lui reproche, il me semble très clair et simple d'utilisation. Quand tu vois le processus d'installlation de produit comme PHPNuke, WikiNi est très simple à installer. --GarfieldFr

Oui il est clair, mais il peut être amelioré, par exemple il peut y avoir, comme avec spip, un mécanisme de détection automatique des bases de données présentes. D'autre part, la multiplication récente du nombre de fichier de la distribution, suite à l'ajout de la documentation (ce n'est pas un reproche GarfieldFr !), rend l'installation sur un serveur relativement longue, sur free par exemple, même avec de l'ADSL 1024/128. D'autres solutions peuvent être étudiées : je pensai à l'installation automatique que propose spip http://www.spip.net/spip-dev/INSTALL/ ou a une procédure de packetage à la templeet : http://www.templeet.org/download.fr.html .

-- DavidDelon
Je suis de l'avis de David sur l'installation. Cela fait un moment que nous avons évoqué la facilité d'installation. Je voudrais également proposer de développer une solution d'installation de wikini 'séparée', c'est à dire qu'on la ferait de bout en bout. Cela nous permettrait de mettre ce nouveau code en licence GNU GPL. -- PatrickPaul

L'installation type Spip avec un seul fichier qui récupère tous ce qu'il faut depuis le site principal est en effet très séduisante mais :
Par contre, l'avantage est d'avoir la dernière version de WikiNi, ce qui est plutôt bien. En plus, ce processus permet d'installer que les handlers/actions nécessaire et pas tous ceux présent. --GarfieldFr


Oui, je verrais bien un truc comme cela : (Ca pourrait même être un projet d'installateur web php, indépendant de Wikini, l'équivalent des installateurs que l'on peut trouver pour Windows ou autre).

Procédure d'installation (à revoir ...)
-- DavidDelon

Les perspectives que vous évoquez sont vraiment très intéressantes ! Personnellement, je rêve d'une installation à la Templeet, à condition qu'elle fonctionne n'importe où (intranet et local compris)... J'ai cependant un peu peur du temps que cela va prendre... je pense en effet que cela devrait être un projet à part entière qui ne devrait pas géner le développement de WikiNi. Peut-être serait-il intéressant que vous contactiez les développeurs de Templeet pour leur proposer la naissance d'un tel projet ?
Pour l'installation des sources, la solution 1 me paraît intéressante pour celui qui ne veut qu'examiner les sources.
-- CharlesNepote

Oui ce projet est un "must" que nous devrions réaliser. Comme dit CharlesNepote, et dans l'esprit du commentaire que j'ai fait plus haut, je pense qu'il faut en effet faire ce projet indépendemment. Je rappelle que cela permettrait de mettre le code en GNU GPL.
-- PatrickPaul

Une autre idée que je n'ai à priori pas vue ici serait de permettre l'installation avec la commande pear (voir http://pear.php.net/manual/fr/installation.cli.php [fr]).
Ainsi, il suffirait de faire en ligne de commande
pear install http://www.wikini.net/wikini-last.tgz
pour avoir la dernière version de Wikini installée, avec éventuellement les packages nécessaires. Ces packages pourraient être des packages optionnels fournis eux-aussi sur le site de Wikini, ou des packages PEAR de base utilisés par Wikini, comme par exemple le nouveau package Text_Wiki (voir http://pear.php.net/package/Text_Wiki [en]) quand il sera stabilisé.
-- NicolasHoizey

Est-ce que ça marche également autrement qu'en ligne de commande ? Est-ce qu'on peut utiliser ça chez free, ovh ou l'autre.net ? -- PiiF


Gestion des contributions


Une première approche pragmatique est de centraliser les contributions dans une page ContributionWikini et de proposer un format de documentation. (Voir Jedit : http://community.jedit.org/cgi-bin/TWiki/view/Plugins/WebHome [en] , Jedit est un editeur en Java multi-language (php, c, java etc.) avec coloration syntaxique et plein de plugins : navigateur code, gestion de projet, cvs, ftp, editeur xml ...).

Est-ce qu'il a déjà été question du principe des MOD de phpBb ici ? (je me souviens en avoir parlé, mais je sais plus si c'était ici ou chez spip :-) Ça permettrait de faire une distrib minimale puis de proposer l'installation de différents éléments après coup, via une interface réservée aux administrateurs. -- PiiF


Intégration d'autres fonctionnalités dans le noyau


C'est une question que je me pose depuis quelques temps. Est-il possible d'intégrer facilement des fonctionnalités au noyau ? Comment ? Je pense notamment à des classes PHP permettant de gérer flux RSS, des interfaces avec Jabber, mon wikini sémantique, etc.
J'ai fait des tests avec des includes etc. mais qui n'ont pas été concluants.
-- CharlesNepote

Moi je vois une solution qui demanderai un gros travail de préparation : une réécriture du noyau. Mais je pense qu'il faudrait vraiment faire un cahier des charges bien complet, puis une analyse fonctionelle et enfin passer à la pratique lorsque tout ça aura bien murit.
-- PatrickPaul


Publication semi-automatisée des versions de WikiNi sur wikini.net

Il me paraît intéressant de pouvoir fournir des versions à jour de WikiNi sur wikini.net :
La création et la publication de ces fichiers doit pouvoir être automatisée facilement. J'ai créé un petit script shell permettant sous Linux de réaliser les archives à partir du CVS. Ce script est largement perfectible et je compte sur les gourous Unix parmis nous pour l'améliorer :

# Script de fabrication des fichiers wikini.zip et wikini.tar.gz
# par Charles Népote v. 0.1 du 23/06/2004

# Pour faire fonctionner ce script, ne pas oublier d'installer zip et unzip
# qui ne le sont pas toujours par défaut (exemple Debian)


# date format YYYYMMDDHHmmss
TIME_STAMP=`date +"%Y%m%d%H%M""%S"`

# Création du répertoire
mkdir Wikini99
cd Wikini99

# Récupération du CVS
cvs -qd:pserver:anonymous@cvs.gna.org:/cvs/wikini co wikini
#cvs -qd:pserver:anonymous@cvs.gna.org:/cvs/wikini export wikini
cvs update -PdCRq

# Fabrication du tar.gz et du .zip
# TODO : introduire la date et heure du jour dans le nom du fichier ?
tar -vvczf wikini.${TIME_STAMP}.tar.gz ./wikini
zip -r9 wikini.${TIME_STAMP}.zip ./wikini


# Transfert par FTP sur le site wikini.net
# ftp -n ftp://site.org << EOF
# user login motDePasse
# cd /xxx/zzz/vvv/
# put wikini.${TIME_STAMP}.tar.gz
# put wikini.${TIME_STAMP}.zip
# EOF

# Retour au répertoire racine
cd ..

# Effacer le répertoire Wikini99 ?
# rmdir Wikini99


#################################################################
#mkdir Wikini0.4
#cd Wikini0.4
#cvs -qd:pserver:anonymous@cvs.gna.org:/cvs/wikini export -r nomDeBranche repertoireRacine


J'ai cependant quelques problèmes :
L'idéal serait de placer ce(s) script(s) dans le cron d'une machine connectée 24/24 d'un admin complaisant...
Qu'en pensez-vous ?
-- CharlesNepote

# date format YYYYMMDDHHmmss
TIME_STAMP=`date +"%Y%m%d%H%M""%S"`

tar zcvf wikini_${TIME_STAMP}.tar.gz ` find wikini|grep -v "CVS"`

https://gna.org/support/index.php?func=detailitem&item_id=264
sftp cnepote@download.cvs.gna.org/upload/wikini << EOF
put wikini_${TIME_STAMP}.tar.gz
EOF
il te faut une clé SSH valide / opérationnelle
-- BenoitAudouard 20040624

Merci BenoitAudouard pour le coup du ${TIME_STAMP}, je vais tester ça. Petite remarque, je souhaite uploader mon fichier sur wikini.net et non sur gna.org (le code donné par PiIf ci-dessus devrait aller en y ajoutant ton time_stamp). Par ailleurs, je ne comprends pas bien la fonctionnalité mise en place sur gna.org. La page que tu mets en référence est illisible pour un néophyte... le lien http://cvs.gna.org/daily/wikini.tar.gz (j'ai cru comprendre qu'il s'agissait de cela) ne donne toujours pas de bons résultats. Au final, je préfère faire la manip moi même car je veux aussi le fichier en .zip pour malheureux utilisateurs de windows... -- CharlesNepote

Discussion



Pour les amateurs de l'auto installation, on peut regarder du côté de PhpZip? : http://www.phpconcept.net/phpzip/index.php. La doc mentionne :
"En mode auto-extraction le fichier d'auto-start, s'il est présent, est automatiquement lancé. Cela correspond à un embryon d'application d'installation."
-- CharlesNepote

Dans spip, l'auto-installeur est effectivement un outil épatant, mais c'est surtout une usine à gaz très difficile à maintenir en fonction des différents cas d'hébergeurs (droits à la con, possibilité de download, disponibilité de certaines fonctions ...). Ça me parait donc très chaud à faire, à moins de ressortir l'historique de ce produit et d'en faire un produit indépendant. (je ne suis pas volontaire pour me lancer la dedans :-) -- PiiF

Un peu plus haut, j'ai évoqué les MOD de chez phpBB. L'idée serait la suivante :
L'intéret majeur, c'est une simplicité d'installation (y compris pour d'éventuelles interventions en bdd), des mods immédiats pour les contribs de type action ou handler, et une certaine indépendance de la version (un MOD étant plus souple qu'un patch).
La difficulté, c'est l'upgrade : soit on réinstalle et on réapplique tous les MOD (mais on risque fort de paumer des morceaux), soit les upgrades doivent eux aussi être des MOD (mais c'est assez chaud à faire quand il y a des évolutions lourdes).
Personnellement, je n'ai pas d'expérience d'écriture de MOD, je suis donc peut être en train de réver debout, mais j'ai appliqué plusieurs MOD successifs assez balaises sur un phpBB sans le casser, ce qui est assez épatant. -- PiiF

Pour plus de précision voir le modèle des MOD [en]. Sur le principe ça à l'air bien mais il faut voir la difficulté d'intégration. -- CharlesNepote

Une première version d'un utilitaire, reprenant les idées exprimées ici est disponible en test : http://www.wikini.net/contrib. Par contre les MODS étant trop spécifiques à mon goût, j'ai préféré utiliser le format diff : les outils pour le produire existant sur tous les systèmes et étant simples d'emploi; il ne manquait plus qu'un outil pour pouvoir patcher en php, j'en est écrit un en me basant sur la Libxdiff, de façon à pouvoir être indépendant de l'hebergeur sur ce point là. -- DavidDelon

Distribution monolithique ou sur mesure ?

On tergiverse et on n'arrive pas à se mettre d'accord sur quelque chose somme toute assez simple : faut-il un seul type de distribution de Wikini, ou créer des distributions sur mesures (allégées, traduites etc.) ? -- DavidDelon
Je m'incline devant la majorité. Je reste persuadé qu'il est important de proposer un wikini allégé. J'envisage de le faire passer en contrib, mais je crains de créer une confusion avec la distribution officielle. -- DavidDelon


Que doit-on intégrer dans les backports ?

J'aimerai avoir votre avis sur ce que l'on doit intégrer ou non dans les backports vers les versions précédentes de WikiNi.
Question subsidiaire : faut-il republier une version à jour immédiatement après un backport ? comment le nomme-t-on ?
Pour ma part je pense :
-- CharlesNepote

Sur la question de ce qu'on doit intégrer, mon avis est qu'il ne faut mettre que ce qui est indispensable pour un fonctionnement correct et sécurisé de WikiNi, c'est à dire les mises à jour de sécurité et les bogues ayant pour conséquence des pertes de données, rien d'autre. -- ProgFou

Quelle politique pour la numérotation des versions ?

Je pense qu'il faut se fixer quelques règles afin de simplifier les changements de versions.
Je propose de suivre le modèle classique majeur.mineur.bogues (ex : 0.4.1, 0.4.2, 0.5.0, ...).
-- ProgFou

Oui, je rajouterai éventuellement le numéro de révision, mais bon, ce que décrit ProgFou est suffisant je pense pour l'instant ...
version MAJEUR.MINEUR.REVISION.CORRECTION
--ThierryBazzanella

Totalement d'accord avec ProgFou. C'est le système le plus simple et qui est d'ailleurs largement employé dans les logiciels libres.
-- CharlesNepote


Il n'y a qu'a faire 1 systeme de patchs ! avec :
Les extensions auraient comme dossier /wikini/extensions/.
Ce serait un peu comme Actions mais dans le tableau de bord serait disponible la liste des patchs et on pourra y acceder pour les configurer, les utiliser, etc... ils seront représentés comme des fichiers de code.

J'ai aussi une autre idée. Il s'agirait d'un systeme de themes.
Cela serait beaucoup plus pratique que de changer wakka.css et les newbies s'en serviraient plus facdilement. Il faudrait aussi un générateur de theme (dans une extension ajoutable) qui permetrrait aux newbies de créer leurs propres themes facilement et ainsi de "doper" la création de themes Css pour WikiNi :-)

Voila, Aweb


Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]