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