All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- [0.2.9] - 2017-11-07
- [0.2.8] - 2017-11-06
- [0.2.7] - 2017-11-01
- [0.2.6] - 2017-10-31
- [0.2.5] - 2017-10-20
- [0.2.4] - 2017-10-19
- [0.2.3] - 2017-10-10
- [0.2.2] - 2017-10-08
- [0.2.1] - 2017-10-05
- 2017-09-20
- [0.1.0] - 2017-09-14
High level:
- Installation et configuration du plugin
MainWP-Child
avec clef "secrète" - Added procedure in HOWTOs to explain how to update WP php files from historical repository
Low level:
- Extraction de la configuration du plugin
MainWP-Child
puis modification du nécessaire pour l'ajouter à la liste des plugins à installer. - La clef secrète est actuellement mise dans la configuration générique du plugin.
- On ne créé plus d'instance de
WPSite
dansjahia2wp.py
. C'est désormais fait dansWPPluginConfigExtractor
(déjà demandé dans PR64 mais refait aussi ici pour que ça soit propre également). - Ajout des scripts js pour le bon fonctionnement du menu déroulant du header EPFL: epfl-si/jahiap#126
- Le fichier "modernizr.custom.js" est renommé "modernizr.js": epfl-si/jahiap#279
- J'ai enlevé l'appel de toutes les images de fond inutiles dans la feuille de style epfl.scss (les images sont remplacées par des pictos avec FontAwesome): epfl-si/jahiap#279
Updated Theme from following bugfixes on repo jahiap:
Id | Description |
---|---|
240 | Texte centré en vertical sur WP mais pas sur Jahia |
129 | Les titres sont tout en majuscule |
188 | Mauvais format des listes à puce |
92 | Les ligne de tableau invisible sont visibles |
85 | Menu déroulant "personnes" en haut à droite ne déroule pas |
192 | Affichage d'un rectangle gris à la place d'une division vide |
170 | La boite rouge dans le corps de page ne se colle pas à droite |
169 | Une div se colle à gauche au lieu de flotter à droite |
89 | Séparateur gris clair en trop dans les tableaux |
239 | couleur de background de paragraphe manquante |
225 | Dans les paragraphes des pages, il manque le surlignage en couleur de cert[...] |
high level:
-
new commands
backup
andbackup-many
to backup one single site or all sites in source of trust.$ python jahia2wp.py backup $WP_ENV http://localhost ... $ python jahia2wp.py backup-many path/to/csv ...
-
Backups are
full
by default, but can beinc
remental by using option--backup-type
$ python jahia2wp.py backup $WP_ENV http://localhost --backup-type=inc ...
-
new environment variable
BACKUP_PATH
to define where to store backups (by default:jahia2wp/data/backups
)
low level:
A backup of a WordPress site relies on a WPConfig
, and is called/used in a similar way as WPGenerator
. It creates three files:
- a
.tar
of all WP files (php, assets, media) - a
.list
reference file for incremental backups - a
.sql
dump of the database
Backups are stored in BACKUP_PATH
(by default: jahia2wp/data/backups
), with the following name convention: <wp_site_name>[_<timestamp>]_fullN[_incM].<tar|list|sql>
DISCLAIMER: next iteration might revise this structure for something more easily exploitable, such as:
backups
├── site_1
│ ├── 2017-10-31
│ │ ├── full-201710310945.tar
│ │ ├── inc-201711012300.tar
│ │ ├── inc-201711022301.tar
│ │ └── inc-201711032310.tar
│ └── 2017-11-06
│ └── full-201711060946.tar
├── site_2
│ └── 2017-11-06
│ ├── full-201711060947.tar
│ └── inc-201711060946.tar
└── site_3
High level changes:
- L'extraction des informations de configuration d'un plugin est faite de manière interactive (le script se met en attente jusqu'à ce que la configuration soit faite). Une option
extract-plugin-config
a été ajoutée àjahia2wp.py
- les commandes
generate
etgenerate-many
utilisent les nouveaux fichiers de configuration des plugins (YAML) de manière transparente pour installer et configurer les plugins
DISCLAIMER : Les fichiers de configuration sont pour l'instant créés manuellement, de manière indépendante de la source de vérité. Une prochaine itération reverra ce système pour redonner la main à la source de vérité, et pouvoir générer tous les fichiers de configuration automatiquement
Low level changes:
- le fichier config.py a été éclaté en config.py, plugins.py et themes.py
- Les classes suivantes ont été ajoutées pour la gestion des plugins (dans plugins.py):
WPPluginConfigManager
fourni des accès MySQL et des informations sur la structure des tables où sont stockées les informations de configuration des pluginsWPPluginConfigExtractor
(hérite deWPPluginConfigManager
) permet d'extraire les informations de configuration d'un plugin (stockées potentiellement dans X tables différentes) et de les sauver dans un fichier YAMLWPPluginConfigRestore
(hérite deWPPluginConfigManager
) permet de restaurer les informations de configuration d'un plugin à partir d'une instance deWPPluginConfigInfos
(décrite ci-dessous).WPPluginConfigList
fourni la liste des plugins à installer/configurer pour un site web donné par un id unique (cet ID doit encore être ajouté dans la source de vérité).WPPluginConfigInfos
permet de reconstruire les informations de configuration d'un plugin à partir d'une configuration générique à X sites et d'une potentielle configuration spécifique pour un site donné. Ces informations sont ensuite utilisées parWPPluginConfigRestore
afin d'être mises dans la DB.
- Du fait que l'on doit potentiellement remettre des options dans d'autres tables que la table "options" et que WPCLI ne permet que d'ajouter des informations dans cette dite-table, l'utilisation d'un package pip (
PyMYSQL
) pour faire les requêtes dans la DB a été faite. WPCLI n'est donc plus utilisé pour mettre les options dans la DB, tout est fait depuis le package. - Pour ce qui est de la configuration spécifique des plugins, pour le moment, seule la table
options
est gérée par le code. - Les nouvelles classes créées sont utilisées pour paramétrer les plugins lors de la génération d'un site.
high level:
- Installation and activation of plugins
- add-to-any
- BasicAuth
- black-studio-tinymce-widget
- tinymce-advanced
- epfl_infoscience
- Configuration of add-to-any
- Create Main menu
low level:
- possibilité de surcharger le port ssh du conteneur de
mgmt
avec la variableWP_PORT_SSHD
, et celui du conteneur phpmyadmin avecWP_PORT_PHPMA
.
high level:
- added command
download
- added vars
JAHIA_*
in.env.sample
, please update your.env
file to make use of the download command - Ajout d'un pull des images lorsque l'on fait un 'up'
- Ajout d'une règle 'clean' pour nettoyer les fichiers WordPress et ceux de la DB en local.
low level:
- migrate crawler from jahiap
- break code into modules
SessionHandler
,JahiaConfig
,JahiaCrawler
- support username, password, host from either .env or CLI arguments
- added tests
Features deprecated in 0.2.3
check-one
,generate-one
andclean-one
deprecated. Usecheck
,generate
andclean
instead
high level:
- added command
version
- added command
admins
- added command
inventory
- improved command
check-one
: actually checks that config is ok with wp-cli - improved command
generate-one
with parameter--admin-password
to force password for admin instead of creating a random one - improved CLI messages when running jahia2wp.py script
low level:
- improved commands (
run_command
,run_mysql
,run_wp_cli
), which actually return output, do not displaystderr
, but keep it available on error cases - extended
Utils
to read csv from strings and to providerun_command
- improved
WPSite
with a factory method which take openshift_env and path instead of url - improved model
WPUser
to get role - improved
WPRawConfig
which now gives access to wp-config variables, and users openshift_env and url - used
veritas.validators
in wordpress models - added deprecated decorator in utils.py
No need to rely on fixed container names
- Find containers by com.docker.compose.service label in Travis
- Find the "mgmt" container by an ad-hoc label for "make exec"
- Inter-Docker references by host name (e.g. "db") keep working, thanks to Docker's magic
Organize the Makefile rules to make them more fool-proof
- Make as many targets as possible idempotent (= won't hurt if run twice)
- Split out Makefile.mgmt for targets that only make sense from inside Docker; have that file show up as "the" Makefile from the container (by way of a Docker volume)
- Make the "make bootstrap-mgmt" step implicit for the interactive use case (vjahia2wp)
- possibilité de surcharger les variables du Makefile
WP_ENV
,WP_PORT_HTTP
etWP_PORT_HTTPS
par les celles d'environnement ou par la ligne de commande (par exempleWP_PORT_HTTP=81 WP_ENV=my-env make vars
)
- création et suppression d'un Wordpress (avec le thème EPFL) par
generate-one
etclean-one
- création de plusieurs sites à partir d'un CSV avec
generate-many
- consolidation du docker-compose et du Makefile pour créer un environnement local identique à l'environnement de production. Description dans le
README
et leINSTALL_DETAILED
- added .env(.sample) file to define all environment vars
- updated make, docker-compose consequently
- added phpmyadmin in docker-compose
- updated
README
- initial revision