microsoft / powerplatform-vscode

The Power Platform VSCode extension makes it easy to manage Power Platform environments and allows the developer to create, build and deploy Power Platform solutions, packages and portals.
MIT License
192 stars 35 forks source link

Opposite of `pac solution sync`? #531

Open skfd opened 1 year ago

skfd commented 1 year ago

pac solution sync brings changes from environment into local .cdsproj.

How do I push changes that I did in local .cdsproj to back selected environment?

In the UI sense, I expect doing simple command like pac solution syncback.

devkeydet commented 8 months ago

Right now, the equivalent would be dotnet build in the folder that includes the cdsproj file. The output will be a solution zip. Managed, unmanaged, or both depending on how you have your cdsproj configured. You can then run pac solution import.

Based on your feedback, it sounds like you want pac solution syncback (or some similar verb) to wrap all these steps into a single gesture. Is my interpretation correct?

skfd commented 8 months ago

Exactly! The scenario is that I git pull changes from our shared repo and push those changes to env. The idea is to have one command to make env have the state that is captured in git.

Full scenario might require more magic and even be git-aware (for example simple solution import will not delete fields, but it's not a big deal, can be a "known limitation").

I think the verbs should be pac solution push and pac solution pull. Sync is non-directional word, so it implies that it does both.

PS: maybe there needs to be a noun for "unpacked solution" (for example "repo"), so that we do not confuse commands that are applied to solution zip files and repos.

BetimBeja commented 4 months ago

@devkeydet @petrochuk pac solution sync is not honoring the Mapping file specified as follows <SolutionPackageMapFilePath>$(MSBuildThisFileDirectory)WebResourcesMap.xml</SolutionPackageMapFilePath>

Can you please add a parameter to specify the mapping file on the pac solution clone command? maybe --map-file {PATH}

I didn't create a new issue since these requests are all related 😉