Most “corporate” developers seem to have a branch master then merge, and release on a time based cycle, approach, but it seems rarer to find approaches such as the Linux kernel or git.git
I suspect there are far more pain points in the simplified approach (pulling a patch already in master is terrifying to most developers)
Any thoughts ?
Pain points: -coming up with good commit messages -including the story ticket number in the branch name and commit message
e.g. "PROJ-1234 add: new dependencies section in README. fix: typo in SECURITY"
- “architect” becomes an actual Meaningful term - they are the upstream merge maintainers. Eventually a company is one big monorepo and the CTO should probably be the “Torvalds” for that compmay.
- most lines of business are the users - but could also contribute patches and even patch their own services while they wait.
- most development would benefit a lot from a proposed updates branch - trying to go from zero to fully tested feature in one branch while keeping that JIRA uptodate is tough
- lots more feature flags. One thing I have tried but feels like it ought to work better is to slide whole modules in under feature flags
Feature branches that usually always pass CI (so you can easily roll back to a working deployable state)
I can’t think of a better way for teams as they can agree on Github etc. and sync up in real time. If there is little command structure and time overlap the mailing list way probably works better although Github is popular so…
- master
- develop -> /feature/ticket#_short_desc -> pullrequest to develop
- create /release/next_versionnumer (year.release_month.build#)
-> after prod release -> merge back into master and develop branch
commit message structure: "ticket#: fix/add/del - short description"