SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Release This!
Tools for a smooth release cycle
Frank Compagner.
Lead Tools Programmer.
Guerrilla Games – Sony Computer Entertainment.
Contents


  •  Problem background
           Stumbling though a release cycle

  •  An improved process
          A steady crawl with the occasional scramble

  •  Release Tools
         Tools for the marathon of a full release cycle

  •  Conclusion
          Limitations and extensions
Problem background
       Stumbling though a release cycle
Project overview


       Duration        2.5 years

       Developers:     120 local
                       80 remote

       QA staff        10 local
                       60 remote

       Head revision   350 GB
                       700.000 files

       Change / week   15 GB

       Depot size      2 TB
The old approach


  •  Create a release branch a month before each deliverable.
  •  Test and fix (mostly) on the branch
  •  Release whenever branch has stabilized enough
  •  Hope that happens before the deadline


                   change                    release

        release


       main
The old problems

•  Large head revision makes branch switching painful
•  Hard to test changes break the release build
•  No control over what goes on the branch when
•  Hard to find out which changes made it into which build
•  Panic and chaos surround each release

                   change                     release

        release


       main
An improved process
 A steady crawl with the occasional scramble
Improved process


  •  Work on main, test on release
  •  Only a few selected fixes integrated to stabilize release
  •  Intermediate release at end of week
  •  Full copy up at start of next week
  •  Final cycle takes 2-3 weeks

        release


       main
Better, but...


                           FUD




          Divergence                   Change status
                                         unknown




           Overcautious               Build status
            integration                unknown




          Only sustainable for a couple of weeks
Release Tools
 Tools for the marathon of a full release cycle
Tools change everything


 •  Improve visibility of changes on release branch
 •  Make it easy to see which change is in which build
 •  User to request integration to release branch
 •  Allow classification and review of changes
 •  Facilitate integration by build team
 •  All relevant information in one place
 •  Full dependency information
Release Manager – User Changes
Release Manager – Change Details
Release Manager – Pending Changes




       release


     main
Release Manager – Released Changes
Release Manager - Implementation


 •  1500 lines of Python, using CherryPy, P4Python and jQueryUI
 •  Integrates with CruiseControl, DevTrack and P4Web
 •  First version done in two weeks (followed by lots of tweaking)
 •  Manages change relations through changelist comments

        Background thread                       UI thread

              Update builds                  Update user changes

         Update release submits             Update change status

         Update dependencies                Update dependencies
Release Tool – Does the real work




 Description :   Integrate //depot/KZ3/...@1237004 to //depot/KZ3-Release/...
                 Original message:
                 Change 1237004 by alex@busby7 On Sun 19-Dec-2010 13:30
                 Fix for bug 21962. Reset the fade out delay on clean up.
Conclusion
             Limitations and extensions
Limitations and extensions


•  Requires in-depth knowledge at the build team
•  Large feature development on main cause conflicts
•  Constant effort needed to control divergence


•  Would benefit from proper jobs / bug integration
•  Dependency information can be extended
•  User groups, search functionality needed
•  Performance becomes a concern at > 10.000 changes
How I learned to stop worrying and embrace the merge-up



              Complete and accessible information


          Reduced confusion, improved communication


              Awareness and confidence boosted


             Better decisions made under pressure


                       Control regained
Questions?

Weitere ähnliche Inhalte

Ähnlich wie Release This! - Tools for a Smooth Release Cycle

Getting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptx
Getting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptxGetting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptx
Getting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptx
OpenStack Foundation
 
Chrome release cycle
Chrome release cycleChrome release cycle
Chrome release cycle
Jolicloud
 
Releasing To Production Every Week India
Releasing To Production Every Week   IndiaReleasing To Production Every Week   India
Releasing To Production Every Week India
exortech
 

Ähnlich wie Release This! - Tools for a Smooth Release Cycle (20)

Release This! Tools for a Smooth Release Cycle
Release This! Tools for a Smooth Release CycleRelease This! Tools for a Smooth Release Cycle
Release This! Tools for a Smooth Release Cycle
 
SQL Server DevOps Jumpstart
SQL Server DevOps JumpstartSQL Server DevOps Jumpstart
SQL Server DevOps Jumpstart
 
Getting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptx
Getting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptxGetting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptx
Getting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptx
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Control
 
Taking Database Development to the 21st Century
Taking Database Development to the 21st CenturyTaking Database Development to the 21st Century
Taking Database Development to the 21st Century
 
An introduction to Git and GitFlow
An introduction to Git and GitFlowAn introduction to Git and GitFlow
An introduction to Git and GitFlow
 
Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...
Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...
Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...
 
Git - A soft introduction
Git - A soft introductionGit - A soft introduction
Git - A soft introduction
 
Continuous Delivery for the Rest of Us
Continuous Delivery for the Rest of UsContinuous Delivery for the Rest of Us
Continuous Delivery for the Rest of Us
 
Kernel Recipes 2015: How to choose a kernel to ship with a product
Kernel Recipes 2015: How to choose a kernel to ship with a productKernel Recipes 2015: How to choose a kernel to ship with a product
Kernel Recipes 2015: How to choose a kernel to ship with a product
 
Source control - what you need to know
Source control - what you need to knowSource control - what you need to know
Source control - what you need to know
 
Ignite Devops Fast Moving Software
Ignite Devops Fast Moving SoftwareIgnite Devops Fast Moving Software
Ignite Devops Fast Moving Software
 
Chrome release cycle
Chrome release cycleChrome release cycle
Chrome release cycle
 
Intro to Gitflow
Intro to GitflowIntro to Gitflow
Intro to Gitflow
 
GIT INTRODUCTION
GIT INTRODUCTIONGIT INTRODUCTION
GIT INTRODUCTION
 
systemd @ Facebook in 2019
systemd @ Facebook in 2019systemd @ Facebook in 2019
systemd @ Facebook in 2019
 
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared LibraryCodifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
 
Releasing To Production Every Week India
Releasing To Production Every Week   IndiaReleasing To Production Every Week   India
Releasing To Production Every Week India
 
White Paper: Release This! - Tools for a Smooth Release Cycle
White Paper: Release This! - Tools for a Smooth Release CycleWhite Paper: Release This! - Tools for a Smooth Release Cycle
White Paper: Release This! - Tools for a Smooth Release Cycle
 
Planning and executing the Linaro cycle
Planning and executing the Linaro cyclePlanning and executing the Linaro cycle
Planning and executing the Linaro cycle
 

Mehr von Perforce

Mehr von Perforce (20)

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPs
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Kürzlich hochgeladen (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

Release This! - Tools for a Smooth Release Cycle

  • 1. Release This! Tools for a smooth release cycle Frank Compagner. Lead Tools Programmer. Guerrilla Games – Sony Computer Entertainment.
  • 2. Contents •  Problem background Stumbling though a release cycle •  An improved process A steady crawl with the occasional scramble •  Release Tools Tools for the marathon of a full release cycle •  Conclusion Limitations and extensions
  • 3. Problem background Stumbling though a release cycle
  • 4. Project overview Duration 2.5 years Developers: 120 local 80 remote QA staff 10 local 60 remote Head revision 350 GB 700.000 files Change / week 15 GB Depot size 2 TB
  • 5. The old approach •  Create a release branch a month before each deliverable. •  Test and fix (mostly) on the branch •  Release whenever branch has stabilized enough •  Hope that happens before the deadline change release release main
  • 6. The old problems •  Large head revision makes branch switching painful •  Hard to test changes break the release build •  No control over what goes on the branch when •  Hard to find out which changes made it into which build •  Panic and chaos surround each release change release release main
  • 7. An improved process A steady crawl with the occasional scramble
  • 8. Improved process •  Work on main, test on release •  Only a few selected fixes integrated to stabilize release •  Intermediate release at end of week •  Full copy up at start of next week •  Final cycle takes 2-3 weeks release main
  • 9. Better, but... FUD Divergence Change status unknown Overcautious Build status integration unknown Only sustainable for a couple of weeks
  • 10. Release Tools Tools for the marathon of a full release cycle
  • 11. Tools change everything •  Improve visibility of changes on release branch •  Make it easy to see which change is in which build •  User to request integration to release branch •  Allow classification and review of changes •  Facilitate integration by build team •  All relevant information in one place •  Full dependency information
  • 12. Release Manager – User Changes
  • 13. Release Manager – Change Details
  • 14. Release Manager – Pending Changes release main
  • 15. Release Manager – Released Changes
  • 16. Release Manager - Implementation •  1500 lines of Python, using CherryPy, P4Python and jQueryUI •  Integrates with CruiseControl, DevTrack and P4Web •  First version done in two weeks (followed by lots of tweaking) •  Manages change relations through changelist comments Background thread UI thread Update builds Update user changes Update release submits Update change status Update dependencies Update dependencies
  • 17. Release Tool – Does the real work Description : Integrate //depot/KZ3/...@1237004 to //depot/KZ3-Release/... Original message: Change 1237004 by alex@busby7 On Sun 19-Dec-2010 13:30 Fix for bug 21962. Reset the fade out delay on clean up.
  • 18. Conclusion Limitations and extensions
  • 19. Limitations and extensions •  Requires in-depth knowledge at the build team •  Large feature development on main cause conflicts •  Constant effort needed to control divergence •  Would benefit from proper jobs / bug integration •  Dependency information can be extended •  User groups, search functionality needed •  Performance becomes a concern at > 10.000 changes
  • 20. How I learned to stop worrying and embrace the merge-up Complete and accessible information Reduced confusion, improved communication Awareness and confidence boosted Better decisions made under pressure Control regained