I am working with main/master for years now, and there's one problem you don't have with develop: Whenever you merge something into master, it kind of blocks the next release until its (non-continuous) QA is done. If your changes are somewhat independent, you can cherry-pick them from develop into master in an arbitrary order and call that a release whenever you want to.
embedding-shape|11 days ago
That's what tags are for, QA tests the tagged release, then that gets released. Master can continue changing up until the next tag, then QA has another thing to test.
dsego|11 days ago
just6979|9 days ago
For smaller projects with tests, something like TBD is great: easy to reason about, branches are free, tags are great. For bigger things with many teams working on overlapping features, keeping a TBD setup "flowing" (pun intended) can require a bit more fore-thought and planning. Release engineering, in other words. TBD vs GF is kind of just "do you want your release engineering at the beginning or at the end"?
Gigachad|11 days ago
Then you can merge to master and it's immediately ready to go.
ncphillips|11 days ago
mort96|11 days ago
estimator7292|11 days ago
secretazianman8|11 days ago
This also means that the release to prod happens post-integration by means of turning the feature flag on. Which is arguably a higher quality code review than pre-integration.
globular-toast|11 days ago
It sounds like you are doing a monorepo type thing. Git does work best and was designed for multiple/independent repos.
WorldMaker|11 days ago
It makes using `git describe` a little bit more complicated, but not that much more complicated. You just need to `--match project-a/` or `--match project-b/` when you want `git describe` for a specific project.