Ideal Shopify/Git Development Workflow supporting "Customization" changes directly to the live theme

mwex501
Shopify Partner
11 0 5

Hello:

 

We're looking to refine our Shopify development workflow, but face a challenge: How do we maintain content changes via "customization" made to the live theme?

 

A secondary challenge: What's the ideal approach to Shopify development that avoids the flurry of useless-message commits made to git? How can we support traditional commits with useful messaging?

 

In our environment we have 6 developers (adjusting theme files) and 3 content editors (customizing section content).

 

Our proposed workflow is as follows:

 

Typical Workflow Setup:

  • A production MAIN branch is synched with the live theme
  • A STAGING branch is synched with a library theme for managing merges and testing before pushing to MAIN
  • Each developer has their own branch/theme 
  • Developers make direct changes to the theme on Shopify which automatically syncs with their branch

Typical Workflow:

  • At completion of each task, squash all relevant commits and name the squash the Teamwork Task ID + brief description example: '1251273 added banner section' << This is to make sense of all the usage-message commits made by the Shopify theme to GIT. 
  • Each developer merges STAGING into their own branch downstream << This is to support content managers making "customization" section changes on the main theme.
  • Each developer merges their branch changes to STAGING upstream as tasks are completed, tested, verified. 
  • PM merges MAIN into STAGING downstream << This is to support content managers making "customization" section changes on the main theme.
  • PM tests STAGING for completion of tasks and against QA testing list
  • PM sends test failures back to devs
  • PM merges successfully tested STAGING into MAIN upstream

Workflow exceptions:

  • Hotfixes to MAIN must be propagated to the STAGING branch
    • Merge MAIN into STAGING downstream
  • Customizations to MAIN must be propagated to the STAGING branch
    • Merge MAIN into STAGING downstream

Additional Tasks:

  • Daily check for changes to MAIN, merge to STAGING downstream << in case a downstream merge was missed after a change to MAIN.

Possible Variations:

  • Would it be less complex, better to use CLI for theme development instead of having individual developer themes on the Shopify site?
  • Also considering eliminating the staging branch

Please advise - what is your approach? what would you change about this approach?

 

Thanks!

 

Replies 0 (0)