-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for versioning referenced projects #1
Comments
I don't understand how changing value of SolutionPackagerMetadataWorkingDirectory breaks the PCF build. We need to perform some operations (e.g. building the Relationships.xml file, packing Canvas app source into .msapp or replacing version numbers in plugin assembly references) on the source files before we run the SolutionPackager step. This should not be done over source files directly because we don't want to change the source during build and commit those changes. The best place for doing this manipulation is in the obj folder (IntermediateOutputPath) which is how the most MSBuild tasks work. |
There are quite few different things to how versions are applied by Microsoft and us:
I believe we should hook on the As for versioning plugins, I would suggest that we build the plugin version based on plugin's folder + references commits and then build a separate version of the solution - this could easily however create a lot of confusion. I can also think of the following:
Additionally, we should lock into specific Microsoft's build target version, so in case they rename something ( |
I wanted this package to contain tasks and target definitions only. If someone references it they it doesn't mess up with the build until you explicitly call targets you are interested in. I didn't want to impose all the steps and behavior on everyone since they might be interested in a subset of functionality only. People can create their own NuGet packages and reference this package if they don't want to copy paste the explicit calls in their .csproj files. |
@StepanHoudek wants to help with this. Applying version numbers to a copy of sourceThe next step is to adjust our ApplyVersionNumber build target and make it work against a copy of solution files instead of the source files. Solution source files are located in a folder defined by SolutionRootPath prop. Before we make our own replacement for Microsoft.PowerApps.MSBuild.Solution targets we can rely on their Currently our targets use Item elements to locate individual solution source files. These items are defined in SolutionFileItems.props. I don't want to hard-code paths in C# tasks. The repo layout and formats will change with the recently introduced new source control format and I want to keep the paths in this .props file. I propose that we introduce a new set if Items which will use
I can think of a scenario where someone might need to commit the new version numbers. Therefore I would introduce a new boolean prop called Build sequenceIt is important to calculate versions and apply them in the correct step of the build process.
Our As I described in my previous comment I want to keep TALXIS.DevKit.Build.Dataverse.Tasks NuGet package free of implicit changes to a consuming project's build process. This means that you should configure the order (BeforeTargets, AfterTargets, DependsOnTargets properties) outside of this package. If people want to configure their desired build process and ship it with a NuGet package they should create their own package which calls our targets. We might provide a starter package example publicly later. TestingFor testing purposes insert the following line to your .csproj which will disable (override) the target which deletes the working directory: |
Tasks
0.0.<patch>
(reference)0.0.<branch>YYMMDDXXX
- example would be0.0.1240402001
meaning built in 2nd April 2024 fromdevelop
develop
master
.
) and use it as patch numberTalxis*
ApplyVersionNumber
should runAfterTargets="ProcessCdsProjectReferencesOutputs"
- update docsMicrosoft.PowerApps.MSBuild.Solution
and lock it to the current version eg.1.31.2
1.31.6
The text was updated successfully, but these errors were encountered: