mevans
04-16-2018, 01:40 PM
There have been a few times when I wished that the .bld file format was easier to navigate programmatically.
For example, all the steps are flat, but contain an indent node. It would be nice if a Group step actually had child notes of the steps inside of it.
Another example is parameters. Instead of having ordered ParamValues and Parameters, it would be nice if there was a parameter node that had a value.
I have a couple of use cases in mind here:
Diffing before source control commit: Often times, I think it would be easier to diff changes if the XML was organized this way.
Customer gets a subset of the script: We have an escrow requirement where we need to provide source code and a build script; however, the script does additional steps that we do internally and it doesn't make sense to include these steps in the escrow deposit. I've organized the code we need to omit in a Group that I can easily select it and delete it. This is a manual operation. If I could use an Xpath to find the group in the .bld script and delete it, that would be terrific. If everything was nested inside the group, it would be easy to accomplish this. For now, it remains a manual step.
I'm guessing the way things get output might just be a default serializer for various components. You'd potentially have to write custom serializers for components to do this, so it could be a bit of work to implement and test.
For example, all the steps are flat, but contain an indent node. It would be nice if a Group step actually had child notes of the steps inside of it.
Another example is parameters. Instead of having ordered ParamValues and Parameters, it would be nice if there was a parameter node that had a value.
I have a couple of use cases in mind here:
Diffing before source control commit: Often times, I think it would be easier to diff changes if the XML was organized this way.
Customer gets a subset of the script: We have an escrow requirement where we need to provide source code and a build script; however, the script does additional steps that we do internally and it doesn't make sense to include these steps in the escrow deposit. I've organized the code we need to omit in a Group that I can easily select it and delete it. This is a manual operation. If I could use an Xpath to find the group in the .bld script and delete it, that would be terrific. If everything was nested inside the group, it would be easy to accomplish this. For now, it remains a manual step.
I'm guessing the way things get output might just be a default serializer for various components. You'd potentially have to write custom serializers for components to do this, so it could be a bit of work to implement and test.