Code Development
Code Management Approach
End-to-End Process
-
Trunkis used for daily development. Developers are expected to update and commit their local working copies early and often. If a conflict that arises, then the developers are expected to resolve the conflict as soon as possible.
-
Branches are only used for situations where we are creating any new web sections and the development process takes a long period of time, say 2-3 months. A branch is created for the web section and daily development takes place on the branch/web section. Periodic merges from the /trunk should be merged into the branched code, say every 2 - 4 weeks so that the separate code bases do not get too out of sync.
-
Releases are created once development is completed and UX has approved the UI staged version. A release candidate is made in the /releases folder and once the release folder is created corresponding tridion developer should be contacted and let them know about the same.
-
The Tridion CMS developers will then do any necessary templating work and move the release candidate to DEV, ITG, PRO-STG and begin the QA process.
-
If any defects found during QA testing, code updates are made in the /releases folder as well as the /trunk.
-
If there are no defects are found during QA testing and there is a signs-off on the release candidate, the code is moved to PRO-Live and the UI team can consider the development cycle as complete.
-
Tags are created when the UI development cycle is complete. A label or tag is made in the /tags folder from the signed-off release candidate. The tag or label should be zipped and committed to the tags folder and the release candidate in /releases folder can be deleted.
-
Finally, if any defects arise in the PRO-Live after a period of time, the tag or label can be used to resolve any of the defects. The latest tag or label should be used and another release candidate is created in /releases folder.
-
The appropriate code updates are then made and unit tested is performed. Once Tridion developers have made updates and QA has signed-off, the code update is then merge it back to trunk, a separate tag is created, and the release candidate is deleted from the /releases folder.