The Theory of Iron

Yaron Minsky / Jane Street Group

Review with a linear process

R1

R2

R3

R4

Review with a branching process

R1

F1

F2

F3

R2

R3

R4

G1

G2

G3

R5

Don't believe the merge

A

C

B

M

M'

?

The lifetime of a feature

R1

F1

R2

R3

F2

R4

Reading a merge

R1

R2

R3

F2

R4

F1

Reading a merge (textually)

 

Reading a merge (textually)

 

The lifetime of an
Iron feature

jane

jane/a

jane

jane/a

jane

jane

jane/a

jane

jane

fe create jane/a
hg commit
fe review
fe rebase
fe review
fe release

Going deeper

jane/fe
jane
jane/fe/improve-remind-email
jane/fe/fix-patdiff4-colors
jane/fe/new-obligations
jane/fe/new-obligations/k-of-n

Iron's Gates

Review

CRs

Tests and Types

Iron's Deficiencies

  • Speed
  • Surgery on features
  • Comprehensible history
  • Complex merge flows

Iron's Core

  • Feature = base + tip
  • Constrained merges
  • Hierarchical features
  • Rebase/Release as communication primitives
  • Don't be boring
  • Have a precise (not accurate) model of review
  • Integrate review, release management, and version control

The Theory of Iron

By Yaron Minsky

The Theory of Iron

Talk about the ideas behind the Iron code-review system.

  • 307