arcade-services icon indicating copy to clipboard operation
arcade-services copied to clipboard

Enable devs to flow their dev branches between VMR and repos

Open premun opened this issue 10 months ago • 0 comments

Context

The .NET devs need the ability to flow code between the VMR and their repo locally so that they can move their branches between the two (e.g. I write a feature, I want to test it in the VMR so I flow it to my local VMR, then I make changes there to make it build and I want to flow it back).

There are two VMR commands in darc for flowing changes locally between the VMR and repos - forwardflow and backflow. These commands are basically calling into the same code as the service but haven't been exercised much (somewhat in the E2E VMR tests). We need to make sure these commands work well and don't create mess for developers when they run these locally. Futher, we changed a lot of the code flow to only operate on builds while developers will not have any builds but will only want to flow SHAs. We also need to make this work.

Further, we need to consider the E2E user flow and figure out how to make sure the devs don't check in the VMR SHA change in Version.Details.xml in case they backflowed a change locally (the SHA will get populated, so maybe we don't want that?). Possibly, we should consider not doing the forwardflow/backflow commands but rather have some versions of the darc vmr update command (which just forcefully overwrites the VMR content). But we'd need something like darc vmr push and darc vmr pull which would not try to apply a delta by executing a codeflow, but instead just sort of rewind the repo/VMR to a specific version (like the darc vmr update command does).

Goal

  • Dust off the darc VMR flow commands and make sure they work without builds.
  • Make sure the commands are easy to use and the user experience is good
    • e.g. they accept branch names when flowing, they check out target branches correctly
    • or they gracefully refuse to work on repos with uncommit changes
    • or they gracefully handle conflicts
  • Make sure the help for the commands and their options are sufficient.

premun avatar Feb 27 '25 13:02 premun