Wordpress Projects Planning
Wordpress Sites Plan for Early 2018
Current state
Rough Roadmap
Websites
Project | Dev Site | Uses wp-a11y theme | UIO Plugin | Continuous Integration Status | Who | Notes |
---|---|---|---|---|---|---|
BIG IDeA | dev.bigidea.one | wp-a11y should be set up as a parent-child configuration and BIG IDeA theme changes on production site should be put into a child theme that is also version controlled. |
| |||
Our Doors are Open | No continuous integration. Theme was manually installed External users have made direct modifications to site theme. Updates to the wp-a11y theme will need to be applied manually to preserve existing customizations. wp-a11y should be set up as a parent-child configuration and Our Doors are Open theme changes on production site should be put into a child theme that is also version controlled. |
| ||||
DEEP | No continuous integration or versioning. |
| ||||
Inclusive Design | Pushes to idi-theme automatically deploys to production site using CI-Travis. Unknown at this point if production theme has been modified by the theme editor. |
| ||||
SNOW | snow-dev.idrc.ocadu.ca | Pushes to wp-a11y parent theme automatically deploys to production site using CI-Travis. Pushes to snow child theme automatically deploys to production site using CI-Travis |
| This is the only site at the moment configured with the parent-child theme relationship. | ||
IDRC | Rough mockups have been done. No dev work has started. |
| Currently MediaWiki. New site will be WP |
Wordpress Code Projects Maintained by IDRC
Project | Who | Notes |
---|---|---|
UI Options Wordpress Plugin | Justin | |
wp-a11y theme | Jon | Todo:
|
Feedback-post-plugin | Jon / Eloisa / Cindy |
Ongoing Wordpress Project Issues
Areas to improve upon:
- Make it easier and safer to develop Wordpress sites (versioning and continuous integration)
- Make it easier to maintain and fix problems (versioning and continuous integration)
- Make it easier to collaborate and coordinate (project coordination)
- Resources:
- Currently limited in-house resources for PHP / Wordpress projects
- Developing in-house knowledge takes time - needs to be built into deliverable timelines and budgets (which hasn't been the case thus far, or hasn't been clear).
Versioning and Backups of User Modifications
Currently there is no tracking of changes done through the Wordpress theme editor. Lack of tracking causes many problems for maintenance
- Looking into gitium as a possible tool to track changes to plugins and themes.
- gitium needs to be manually triggered after any changes - so not ideal for our use case as we would like something automatic.
- gitium also requires proc_open to be enabled to function.
- incron can be used to monitor changes to Wordpress directories and a script can be run to generate git commits based on the changes.
- git can be called from outside a repository directory by using git -C ./<repo_directory>/ add <filename>
- incron requires inotify to function
- todo: is it possible to create git commits where the author is the wordpress username?
- cron
- cron can be used to periodically generate git commits.
- todo: is it possible to create git commits where the author is the wordpress username?
- versionpress
- Revisr
- Requires PHP exec()
- Github Sync
Continuous Integration
- Todo: Generalize the wp-a11y theme as a parent theme, and create child themes for individual sites.
- Each production site will CI both wp-a11y theme and site's child theme (containing its customizations).
Project Coordination
- Currently there is no central way of coordinating and communicating WP project designs, documentation, bugs, etc.
- Should we use a wiki? If so, where should this be?
- Bugs and task tracking? Maybe use JIRA?
- What about a communication channel. Currently mostly done via emails and Skype calls.
- How do we on-ramp non-IDRC collaborators on projects? How do we ensure their contributions are done the right way?
- What is the "right way"? We need a strategy / resource for this kind of engagement on WP projects.
- There isn't a strict policy on Admin-level user access which has caused problems in the past.
- Also there currently isn't a clear process of defining scope, specs, or requesting features. This makes it difficult to estimate work and allocate resources.