· May 19, 2019

Using VSTS As Version Control for Caché code


recentley we started to work with Atelier & VSTS in our organization .

we are looking for a way to use the VSTS as Our Version/Source control system .

I have read the article about "Continuous Delivery of your InterSystems solution using GitLab" & now trying to find a way to use a similar metodology with the VSTS that we have in our organization.

It Apeares that it is possible to Create a Git Repository in the VSTS but i'm not sure how are we to use it from the atelier.

The main questions are:

  1. What Is the best practice in saving cache code in VSTS GIT?(cls files?, legacy XML?...)
  2. What is the right flow of importing/exporting code in/from the development repository during the development process?
  3. What is the right flow of building/relising chache code to higher enviroment?(dev-->Test, Test-->Prod)

we are using :

eclips Photon Release (4.8.0)

Cache for Windows (x86-64) 2017.1.1 (Build 111U) Wed May 17 2017 15:34:56 EDT


Thanks ,

Stas Rabkin. 

Discussion (4)0
Log in or sign up to continue

1. I definitely recommend using CLS and not XML for general readability and also sane blame/diff output.

2. There should not be any differences to usual Git development (as described in the series of articles you mention). One of our customers is using TFS for Ensemble development. Are you using Studio or Atelier? VSCode? If Studio, you'll need a source control hook, Atelier works as is and you'll need a plugin for VS Code.

3.Check this article for info on CI/CD on TFS.

Hi Eduard,

Thank you for you answer.

We are using atelier in eclips photon with TFS PlugIn for developing ensemble interfaces .

Most of the CI/CD article is dealing with the building proccess.

I'm no sure is possible when using object script due to the fact i'm  not familiar with any external building agent that suites for  building our code morover i dont realy understand why should we build it in the first place if we exporting and importing the code as is between the environments(dev-->Test, Test-->Prod).

It May be very halpfull to know if:

  1. Is there a tool wich the TFS can use for export and importing  code between the environments during the CI/CD process.
  2. Also general explenation of the best practices of version/source controling in cache will be very halpfull.
  3. Is there any examples of using sorce control with cache(object script) code.

kind regards,


1. I'd like to add to @Nicole Aaron answer, that moving code is done in two separate steps:

  • On developer machine the code is created, written to files and commited into source control system
  • CI/CD server (in your case TFS) is triggered on repository push and executes CI script - which is OS-level commands in our particular case and would be the same between GitLab or TFS.

It looks like Visual Studio Team Services (VSTS) is now Azure DevOps. There is an associated plugin for Eclipse called Visual Studio Team Explorer Everywhere (TEE). However Microsoft only supports that plugin for Eclipse 4.2 (Juno) - 4.6 (Neon). There is a note about this in the Microsoft Azure documentation here. Unfortunately this does not match up with the Atelier requirement of Eclipse 4.8 (Photon).

You may just be able to use a generic Git plugin, like EGit, since it seems like TEE is Git-based.

As far as your numbered questions go:

1. In general the best practice for storing code from an InterSystems product in source control is to use the UDL format rather than XML. UDL is the more human-readable format which is used for the local copies of files in Atelier projects. You can use the $SYSTEM.OBJ.ExportUDL() class method to export classes and routines in the UDL format from your Cache server.

2 & 3. I'm going to let other developers in the Community speak on their experience here. InterSystems does not provide tooling or our own published best practices for this, but rather suggests following industry standards + what works best for your organization specifically.