Upload
ching-hwa-yu
View
291
Download
1
Embed Size (px)
Citation preview
Branches, Branches, and Branches
Branching workflows to accelerate team development
1
Ching-Hwa Yu
Sr. Validation Software Architect, CLA, CTA
Texas Instruments
About Me
2
Agenda
• Big Picture
• Delivery Pipeline
• Source Code Management Systems
• Branching Workflows
• Limitations
3
About TI
4
450+ LabVIEW users
250+ framework users
TI HQ
Facilities
Manufacturing
About TI
5
Framework
Custom
Steps
Tools
Drivers
Database
LabVIEW
TestStand
SCM
Big Picture
• Work it harder
Make it better
Do it faster
Makes us stronger
• Agile, scrum, kanban, lean,
extreme, blah blah blah…
6
Delivery Pipeline
• Continuous Integration (CI):
Check-ins verified by automated build to
ensure all components are working
together and passing tests
• Continuous Delivery (CD):
Ship releases regularly with a push of a
button
7
Delivery Pipeline
8 Figure 1. Continuous Delivery Process Diagram (Humble, 2010)
Source Code Management Systems
9
Git Mercurial Bazaar
Perforce Plastic
Source Code Management Systems
• It’s not about distributed vs. centralized…
• It’s all about the branching:
– Frictionless Context Switching
– Feature/Issue Based Workflow
– Role-Based Codelines
10
Branching Workflows
11
Figure 2. Trunk Based Development (paulhammant.com)
• Trunk Based Development with Release Branches
Branching Workflows
• Feature Branching (Task Driven Development)
12
• Not “Pure” CI
• Smart Build Server
• Bamboo
• Jenkins
• Autojobs
• Build per branch
• P4
Figure 3. Basic Branch-Per-Issue Workflow (atlassian.com)
Branching Workflows
• Git-flow
13 Figure 4. Development using Git-flow Workflow (atlassian.com)
Limitations
• LVMerge and LVDiff doesn’t support
all LabVIEW file types
– Projects
– Xctls
– Classes
– Libraries
14
Limitations
• Promiscuous Integration (PI) – Cherry pick
15 Figure 5. Promiscuous Integration (martinfowler.com)
Screenshots
16 Figure 6. SourceTree (atlassian.com)
Screenshots
17 Figure 7. TortoiseHg Workbench (bitbucket.org)
Screenshots
18 Figure 8. P4V (perforce.com)
Resources
• Continuous Delivery by Jez Humble and David Farley
http://www.amazon.com/dp/0321601912
• Continuous Integration by Paul Duvall, Steve Matyas, and Andrew Glover
http://www.amazon.com/dp/0321336380
• Martin Fowler – http://martinfowler.com
• Paul Hammant – http://paulhammant.com
• Git Branching model (Git-flow)
http://nvie.com/posts/a-successful-git-branching-model/
• Atlassian Git tutorials – https://www.atlassian.com/git/
19
Questions?
Shoutouts:
• Texas Instruments EDA Validation Automation Core Team
– Scott Menjoulet, Geoff Roth, Vidya Asokraaju, Jianhua Liu, Erika Beskar
• National Instruments
• CLA Summit 2016
20