We're currently using the Classic Azure Pipelines (both build and release pipelines). They work well because if we need to make a change to a pipeline, it's easy just to modify the pipeline and schedule a build from the UI.
Now Microsoft is pushing the YAML pipelines and infrastructure-as-code so we're planning on using the YAML and multi-stage pipelines on our next project.
I haven't found a way to update only the pipeline now when the configuration is within source control. For example, say a pipeline for test environment breaks for some reason, and I need to fix it by making changes only to the YAML configuration. Would I make a change to a Release branch only and then merge it back to develop branch?
We used to have dedicated Build Pipeline and dedicated Release Pipeline in the Classic mode, so that a Build pipeline would create a package regardless of the branch it was triggered on. Then the Release Pipeline would be triggered and it would check the branch where the build artifact is coming from and deploy the package using the corresponding configuration.
This gave us a lot of flexibility so that we could deploy versions automatically and manually whenever and where ever we wanted. I'm not seeing any benefit gained from a YAML pipeline.
For example we could make a production build (master branch) and use that build in a test environment to try to reproduce errors.
How would this work with YAML pipelines when I cannot just modify only the pipeline but have to take all changes that are coming from a development branch? Is it possible (or feasible) to use only YAML build pipelines and use the classic release pipeline?


