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
- 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 svnup.sh script?
- Add lock installer command
- Double check the conflict detection