Goals
- Set up unattended self-updating Tiki
- This is for 12.3 -> 12.4 -> 12.5 but not for 12.x -> 13.x
- Will be very appealing for LTS versions (set and forget for a few years)
- Get a warning and abort update if a conflict is detected
- Run tiki-check.php to detect any changes on the OS which could cause issues
Steps
Install
- Install normally via SVN
- Make sure .htaccess is an alias of _htaccess to avoid merge conflicts
- Make as few changes to Tiki code as possible, and if you must, make them clean and self-contained to reduce changes of SVN merging conflicts.
Check if new version of Tiki is available
Check if the update would cause conflicts
Conflict detected
No conflict detected
Proceed to upgrade
- svn upgrade
- sh setup.sh -n fix
- php console.php database:update
- php console.php cache:clear
- php console.php index:rebuild
- lock the installer
Other ideas
- Would be nice to be able to have a parameter to decide how old your instances should be (ex.: use latest code vs code from a week ago). Why? Say you are running hundreds of Tiki instances. If a regression is introduced, it will hit all Tikis at once, which could be painful. Alternatively, you could have 10% of your instances which use the most recent code which users code from 10 days ago. Thus, if a regression is detected / reported via the 10% of instances, you have some time to react. Typically by putting the update process on hold until the regression is resolved.
Todos
- Make it better and commit to Tiki
- Maybe add it to the existing svnup.sh script?
- Add lock installer command
- Double check the conflict detection
Related links
!! Goals
* Set up unattended self-updating Tiki
** This is for 12.3 -> 12.4 -> 12.5 but not for 12.x -> 13.x
* Will be very appealing for LTS versions (set and forget for a few years)
* Get a warning and abort update if a conflict is detected
* Run tiki-check.php to detect any changes on the OS which could cause issues
!! Steps
!!! Install
* Install normally via SVN
* Make sure .htaccess is an alias of _htaccess to avoid merge conflicts
* Make as few changes to Tiki code as possible, and if you must, make them clean and self-contained to reduce changes of SVN merging conflicts.
!!! Check if new version of Tiki is available
* ((Update notifier))
!!! Check if the update would cause conflicts
* ((Check if the update would cause conflicts))
!!!! Conflict detected
* Alert site admin
!!!! No conflict detected
!!! Proceed to upgrade
* svn upgrade
* sh setup.sh -n fix
* php console.php database:update
* php console.php cache:clear
* php console.php index:rebuild
* lock the installer
!! Other ideas
* Would be nice to be able to have a parameter to decide how old your instances should be (ex.: use latest code vs code from a week ago). Why? Say you are running hundreds of Tiki instances. If a regression is introduced, it will hit all Tikis at once, which could be painful. Alternatively, you could have 10% of your instances which use the most recent code which users code from 10 days ago. Thus, if a regression is detected / reported via the 10% of instances, you have some time to react. Typically by putting the update process on hold until the regression is resolved.
!!! Todos
* Make it better and commit to Tiki
** Maybe add it to the existing [https://sourceforge.net/p/tikiwiki/code/HEAD/tree/trunk/doc/devtools/svnup.sh|svnup.sh] script?
* Add lock installer command
* Double check the conflict detection
!! Related links
* http://make.wordpress.org/core/2013/09/24/automatic-core-updates/
** http://philonthe.net/2011/02/wordpress-automatic-update-feature-good-or-bad/
* https://maxmorgandesign.com/simple_php_auto_update_system/
* http://stackoverflow.com/questions/2439160/how-to-self-update-phpmysql-cms