3. RELEASE MANAGEMENT
Project Teams
Project Managers Developers
Who is this
presentation
for?
3
Basic technical concepts
Example workflows
Set reasonable expectations
Stakeholders
6. RELEASE MANAGEMENT
USE GIT
Distributed Version Control System --
allows multiple collaborators
History -- go back in time
Code snapshots (tags) for deployments
Open Source workflows 6
14. RELEASE MANAGEMENT
Git Workflow
Matches Needs
Larger teams benefit from tighter,
more restricted workflows
Small teams are more efficient with a
limited workflow
14
18. RELEASE MANAGEMENT
● Checkout master, branch off as a ticket
branch
● Commit a code fix
● Submit a Pull Request to the develop
branch, add a reviewer
● Reviewer approves, merges
● See how JIRA ticket is updated with Pull
Request, commit based on ticket number
in the commit message and the name of
the branch.
Developer Approach --
step by step
18 18
21. RELEASE MANAGEMENT
Your LOCAL
Mock Deployment
1. Checkout the production
branch.
2. Reload the database and
clear cache.
3. Checkout ticket branch.
4. Run the database update
script.
5. Confirm code works
6. *ONLY NOW* can you
submit your Pull Request.
21
● MAMP/WAMP
● Homebrew
● Vagrant VM
● Acquia Dev Desktop
● Docker containsers like
Devtools, Kalabox
22. RELEASE MANAGEMENT
Dev / Integration
• Runs the “develop” branch
• Often set up for
auto-deployment after PR
is merged
• Developer confirms fix here
• CI tests run here
22
23. RELEASE MANAGEMENT
Test / Staging
• Runs the release candidate
branch
• Mock production
deployment is run here
• Comprehensive testing
suite can be run here
23
27. RELEASE MANAGEMENT
PREDICTABILITY • Guidelines to follow
• Routine is good
• Failure indicates need for
improvements in
procedure
27
Established Procedure
30. RELEASE MANAGEMENT
● Code is deployed to the dev environment.
Developer reviews, merges fix. *
● Ticket is assigned to the reporter for
review.
● Reviewer approves fix, marks ticket as
ready to deploy.
● Developer submits PR into RC branch.
● Release manager approves, merges.
● Ticket’s “Fix Version” updated to RC name
Preparing for Release
30 30
31. RELEASE MANAGEMENT
● The release candidate is merged into the
master and production branches*
● Production release tagged
● Test deployment performed on Staging
(review steps from slide 21)
● More testing...
● Ready to schedule the Production
Deployment!
Ready for Production
31 31
33. RELEASE MANAGEMENT
● Release manager merges
● Document merge steps in commit
message
● Use a good merge tool
Merge Conflicts
33
Manual Merge
...of Staging
34. RELEASE MANAGEMENT
● Re-branch from master
● git cherry-pick commits in order
Improper
Branching
34
The Cherry Pick
...of Staging
35. RELEASE MANAGEMENT
● Local History
● git add -p
Lets you stage each hunk
individually
Merging
35
Use your IDE
...of Staging
36. RELEASE MANAGEMENT
● Branch from master
● Merge directly into master
● Tag and deploy a release
● Be sure to deploy to Staging first
● Merge master back into develop,
release candidate
Hotfix
36