Skip to content

Smarty Deployment

Repositories:

  • SmartWeb
    • server.inc.sample file defaults.
    • Add Smarty codebase files from src in smarty repo in github.
    • Update tests in GraphQL for the SmartyVersion enumeration.
  • Template Compiler
    • Smarty version update.
  • SmartWeb Config
    • 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.

Helpful Tools:

  • Metrics
    • Useful for monitoring general traffic and NFS load.