Slide 1

Slide 1 text

Fine Tuning Your GitHub Flow A Deeper Dive Into GitHub Workflows

Slide 2

Slide 2 text

stoe [email protected] @me_stoe gracepark [email protected] Grace Park ! " ! ! " Stefan Stölzle

Slide 3

Slide 3 text

Agenda

Slide 4

Slide 4 text

Challenges lessons learned from real organizations

Slide 5

Slide 5 text

A classic vertical organization

Slide 6

Slide 6 text

From the top down things can be pretty clear, but from the bottom up it can get foggy real quick

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Most organizations struggle with awareness of existing enterprise development

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Organizational distance between developers directly correlates to bugs and delays

Slide 13

Slide 13 text

“Good enough” solutions stop gaps, but they don’t fulfill and retain people

Slide 14

Slide 14 text

Tools impact Workflow

Slide 15

Slide 15 text

Git Flow

Slide 16

Slide 16 text

“a well tested, flexible workflow that works for lots of developers” Scott Chacon
 scottchacon.com

Slide 17

Slide 17 text

Production Staging Testing Dev 1 Dev 2 Dev X

Slide 18

Slide 18 text

master hotfix release develop feature feature v1.0 v1.1 v2.0

Slide 19

Slide 19 text

“it’s more complicated than (…) most developers and development teams actually require” Scott Chacon
 scottchacon.com

Slide 20

Slide 20 text

GitHub Flow

Slide 21

Slide 21 text

master feature

Slide 22

Slide 22 text

master feature

Slide 23

Slide 23 text

master develop

Slide 24

Slide 24 text

master hotfix

Slide 25

Slide 25 text

master release

Slide 26

Slide 26 text

one does not simply

Slide 27

Slide 27 text

merge into master one does not simply

Slide 28

Slide 28 text

master

Slide 29

Slide 29 text

master

Slide 30

Slide 30 text

master

Slide 31

Slide 31 text

create a feature branch w/ protected master master

Slide 32

Slide 32 text

master add commits

Slide 33

Slide 33 text

master add commits

Slide 34

Slide 34 text

master add commits require CI status

Slide 35

Slide 35 text

open a PullRequest master

Slide 36

Slide 36 text

master discuss and review code

Slide 37

Slide 37 text

master discuss and review code

Slide 38

Slide 38 text

master discuss and review code enforce code review

Slide 39

Slide 39 text

master ready to merge

Slide 40

Slide 40 text

master ready to merge

Slide 41

Slide 41 text

master ready to merge required branch to be up to date all status checks passed code review complete

Slide 42

Slide 42 text

master merge w/ base

Slide 43

Slide 43 text

master merge w/ base

Slide 44

Slide 44 text

master merge w/ base restrict who can merge

Slide 45

Slide 45 text

“It’s too simple. Our teams need more control.” a customer

Slide 46

Slide 46 text

Your GitHub Flow

Slide 47

Slide 47 text

develop feature master

Slide 48

Slide 48 text

hotfix v2.9 branch v2.10 branch v2.8 branch v2.11 branch v2.8.0 v2.9.0 v2.10.0 v2.11.0 v2.8.1 v2.8.2 v2.8.3 v2.9.1 v2.9.2 v2.10.1 v2.8.4 v2.9.3 v2.10.2 v2.11.1 master

Slide 49

Slide 49 text

hotfix v2.9 branch v2.10 branch v2.8 branch v2.11 branch v2.8.0 v2.9.0 v2.10.0 v2.11.0 v2.8.1 v2.8.2 v2.8.3 v2.9.1 v2.9.2 v2.10.1 v2.8.4 v2.9.3 v2.10.2 v2.11.1 master

Slide 50

Slide 50 text

hotfix v2.9 branch v2.10 branch v2.8 branch v2.11 branch v2.8.0 v2.9.0 v2.10.0 v2.11.0 v2.8.1 v2.8.2 v2.8.3 v2.9.1 v2.9.2 v2.10.1 v2.8.4 v2.9.3 v2.10.2 v2.11.1 master

Slide 51

Slide 51 text

hotfix v2.9 branch v2.10 branch v2.8 branch v2.11 branch v2.8.0 v2.9.0 v2.10.0 v2.11.0 v2.8.1 v2.8.2 v2.8.3 v2.9.1 v2.9.2 v2.10.1 v2.8.4 v2.9.3 v2.10.2 v2.11.1 master

Slide 52

Slide 52 text

hotfix v2.9 branch v2.10 branch v2.8 branch v2.11 branch v2.8.0 v2.9.0 v2.10.0 v2.11.0 v2.8.1 v2.8.2 v2.8.3 v2.9.1 v2.9.2 v2.10.1 v2.8.4 v2.9.3 v2.10.2 v2.11.1 master

Slide 53

Slide 53 text

git cherry-pick hotfix v2.9 branch v2.10 branch v2.8 branch v2.11 branch v2.8.0 v2.9.0 v2.10.0 v2.11.0 v2.8.1 v2.8.2 v2.8.3 v2.9.1 v2.9.2 v2.10.1 v2.8.4 v2.9.3 v2.10.2 v2.11.1 master

Slide 54

Slide 54 text

v2.9 branch v2.10 branch v2.8 branch v2.11 branch v2.8.0 v2.9.0 v2.10.0 v2.11.0 v2.8.1 v2.8.2 v2.8.3 v2.9.1 v2.9.2 v2.10.1 hotfix v2.8.4 v2.9.3 v2.10.2 v2.11.1 master

Slide 55

Slide 55 text

v2.9 branch v2.10 branch v2.8 branch v2.11 branch v2.8.0 v2.9.0 v2.10.0 v2.11.0 v2.8.1 v2.8.2 v2.8.3 v2.9.1 v2.9.2 v2.10.1 hotfix v2.8.4 v2.9.3 v2.10.2 v2.11.1 master

Slide 56

Slide 56 text

v2.9 branch v2.10 branch v2.8 branch v2.11 branch v2.8.0 v2.9.0 v2.10.0 v2.11.0 v2.8.1 v2.8.2 v2.8.3 v2.9.1 v2.9.2 v2.10.1 hotfix v2.8.4 v2.9.3 v2.10.2 v2.11.1 master

Slide 57

Slide 57 text

v2.9 branch v2.10 branch v2.8 branch v2.11 branch v2.8.0 v2.9.0 v2.10.0 v2.11.0 v2.8.1 v2.8.2 v2.8.3 v2.9.1 v2.9.2 v2.10.1 hotfix v2.8.4 v2.9.3 v2.10.2 v2.11.1 master

Slide 58

Slide 58 text

git merge v2.9 branch v2.10 branch v2.8 branch v2.11 branch v2.8.0 v2.9.0 v2.10.0 v2.11.0 v2.8.1 v2.8.2 v2.8.3 v2.9.1 v2.9.2 v2.10.1 hotfix v2.8.4 v2.9.3 v2.10.2 v2.11.1 master

Slide 59

Slide 59 text

Q&A

Slide 60

Slide 60 text

Thank you stoe [email protected] @me_stoe Stefan Stölzle ! " ! gracepark [email protected] Grace Park ! "

Slide 61

Slide 61 text

No content