Source Control

Source Control is Coming – Again and Finally!

Yesterday at Collabsphere I was in a great session by Dan Dumont that was simply titled “Source Control in Designer”.
Source control is nothing new to designer as we’ve had this for years. I think there are at least 6 episodes of NotesIn9 that either are dedicated or touch on source control.
So what is all this about if we have this now?
The current take on source control has several issues with it. While it does work better for XPages design elements it’s not very usable with classic Notes client focused elements. DXL does not properly “round trip” so you are forced to output those elements as binary files and if you ever have a merge conflict on a binary file you can just kiss your butt goodbye. You will not be able to resolve that conflict inside the source control workflow.
As for the XPages elements, while those are better, there are problems there, most notably things like “last modified date” getting updated and looking like a change when no change has been made. There is also extra files just for metadata that muddy things up that actually spawned a neat OpenNTF project called Swiper that tried to fix this. So while we have had source control available to us, lets just say that it was challenging to deal with.

In theory that ends with Version 14. Source Control has been rethought from the ground up. As best as I can understand it at the moment is that there will be a new option in the application properties that you can turn on “enhanced source control” (my term – I don’t know the actual text) and that will produce YAML files to represent the application. These YAML files will by default contain binary representations of the application. This is to make sure that nothing gets missed and it’s fully round trip safe. So even if new design elements are added later down the road, they will automatically be included in the YAML file creation. Then HCL is creating “translators”. (I forget their term) which will go into the binary information and translate it to text on an element by element basis. This text translation will allow us to see in source control, or a pure diff tool what the differences are. They are actively working to translate as much as possible but not everything will be translated by the time 14 drops and there was talk about creating an OpenNTF project where the community could add translations to assist in this going forward.

Oh another thing is that notes documents – think configuration documents – can also be included!!

This is testable now the 14 early preview via a command line but will be working inside Designer as one would expect by the time 14 goes gold. I’m looking forward to testing this as soon as I can.

I’ve not been able to keep up with all the things HCL has been doing (app Dev Pack, Domino REST API, Volt stuff, etc…) but for me as a simple Notes/Domino/XPage developer this is the most exciting thing I’ve seen in years and can’t wait to get into this and hopefully introduce true and proper source control to the dev team at my company.

Thank you HCL and a big thank you to Dan Dumont!!!