Best Practices for SCA and git branching
I've read a few articles and forum posts on using SCA and git branching. Notably, @way0utwest and @Kendra_Little have shared good ideas on this topic. I wanted to start another post to catch up on the latest ideas around this.
I see a lot of conversation that leads away from more complex "git flow" style (main/develop) flows and leans towards more MS-embraced "release flow" styles - work off of master, make branches for topics/features and releases. First question, is, "Is that still the case?"
Quick Side note - I am currently working with Azure DevOps for CI, and Azure SQL DB (with private and public endpoints) for deployment targets. Using git repos within Azure Devops (not guthub). I am also using "classic pipelines" rather than YAML-based at this point. Open to moving in the YAML direction, tho. We have 3 BI developers/architects actively working on a DW DB using SCA (VS-plugin).
I have also read some good forum posts where Steve chimed in and reiterates (I will paraphrase) about how "DB src is different due to importance or Chronology" and "feature branches should not be long-lived". I'd also like to discuss how we might address the first idea in order to perhaps mitigate the importance of the second. This conversation leads me towards ideas about tracking more dependency metadata about DB changes so we can intelligently make decisions about the following scenario.
Here's the gist of what I'd like to solve (or at least discuss):
1) Developer A makes changes - feature1. This set of changes makes its way into the dev integration environment.
2) Developer B makes changes - feature 2. This set of changes makes its way into the dev integration environment, too - after feature 1.
3) We decide that we want feature 2 to go to prod, but not feature 1.
Obviously, if feature 2 relies on schema changes in feature 1, we have an issue. That's where I see dependency metadata coming in - some way to say, "Hey - you can't do that". That's more of a long term strategic discussion, tho.
Let's say, for the sake of argument, that we know that feature2 is schema-isolated and does NOT depend on feature1. Please help me understand the git/azure devops (PR) branching flow that would occur.