This is a Gitflow process question. In all the documentation (and diagrams) I've read about Gitflow, they always indicate that once a feature is completed it is merged back into the develop branch.
But the one thing that I never find defined anywhere is what the definition of "a finished feature"? Is testing (Quality Assurance, User-Acceptance-Testing, etc) supposed to happen in the feature branch itself, or is a developer supposed to merge their changes back into the develop branch as soon as they determine their implementation is complete (but prior to QA/UAT acceptance)?
Logically, I would expect QA/UAT to occur in the feature branch itself for the simple reason that otherwise poor quality code could find its way into the develop branch and contaminate other development branches.
However, if that is the case, does that mean that each new feature is tested independently of other features, and only once everything is merged into develop that a full regression test occurs across multiple features? Should full regression tests then only occur once a release branch is created?