Another weird (in my view probably a defect - cf Eve) behaviour.
We generate a number of profiles using a script with a number of SavePackageAsUMLProfile() statements and then stitch them together with a GenerateMDGTechnology() statement.
We use file comparators to confirm that the changes we make in the model are reflected in the generated XML (by individual profile). This works VERY well and has saved us heaps of time by catching anomalies early.
We also test our generation mechanism by running it on a number of machines. We do this to ensure that the process is robust and that sanity prevails
1.
Imagine our surprise (and dismay) when running the same process with the same inputs on two different machines our file comparator "barfed"! Red lines "all over the place"!
Investigation revealed that although the overall content
appeared the same2 the order of the sections was changed - breaking the file comparison!
As an example...
<Apply type="Activity">
<Property name="isReadOnly" value="false"/>
<Property name="isSingleExecution" value=""/>
<Property name="parameterName" value=""/>
<Property name="postcondition" value=""/>
<Property name="precondition" value=""/>
<Property name="_HideMetaclassIcon" value="true"/>
<Property name="_HideUmlLinks" value="true"/>
</Apply>
versus
<Apply type="Activity">
<Property name="_HideMetaclassIcon" value="true"/>
<Property name="_HideUmlLinks" value="true"/>
<Property name="isReadOnly" value="false"/>
<Property name="isSingleExecution" value=""/>
<Property name="parameterName" value=""/>
<Property name="postcondition" value=""/>
<Property name="precondition" value=""/>
</Apply>
That is, the location of
<Property name="_HideMetaclassIcon" value="true"/>
<Property name="_HideUmlLinks" value="true"/>
had changed!
Is there some setting that is controlling this, or some environmental factor or is it just bad coding?
In my view, we were running the same process with the same inputs - and expecting the identical output!
3 
Not yet reported,
Paolo
1 As is widely known, the definition of insanity is "running the same process twice (with the same inputs) and expecting a different result"!
2 There were far too many changes to check them all, so after a random sample, we "took it on faith" that the content was
effectively the same. As opposed to actual confirmation that the result was
identical.
3 Running the process multiple times with the same inputs DOES generate identity of output on the
same machine.