Default Smarty version update after all solutions are on the newest version.
Deployment:
[ ] Create migration to add new Smarty version to solution_data.smarty_version enumeration.
[ ] Add new Smarty version to SmartyVersion enumeration in GraphQL.
[ ] Update tests in GraphQL for the SmartyVersion enumeration in GraphQL.
[ ] Add Smarty codebase files from src in smarty repo in github.
[ ] Smarty version update.
[ ] Update template compiler to use the new version.
[ ] Update template compiler to require the new Smarty version in composer.json.
[ ] Update Midgaard compile pipeline to use the new version.
[ ] Trigger a deploy of Midgaard to force a re-compile of the template for the new Smarty version.
[ ] use artisan solution:set-smarty-version {smartyVersion} to set the current version for all solutions in production.
[ ] use artisan solution:set-smarty-version {smartyVersion} {solutionId} command to update the version in the database for the top 10-20 largest solutions at low traffic times.
[ ] use artisan solution:set-smarty-version {smartyVersion} {clusterOption} command to update the version in the database for each clusters with a break in-between to ensure the NFS load doesn't get too high.
[ ] Update the server.inc config to set the smartyVersion to the new version.
[ ] use artisan solution:set-smarty-version {smartyVersion} to set the version to null for all solutions to force fallback to server.inc config.
[ ] Update server.inc.sample file defaults.
[ ] Announce that the Smarty version has been updated.
[ ] Clean-up unused Smarty versions from the database and SmartyVersion enumeration in GraphQL.