IMHO this deserves an enhancement request. Data for mapped lib classes is stored in User Namespaces,  but tune params for this data in Lib Namespace. Looks difficult to use persistent classes as part of a library in this case. 

Maybe you can generate automatically the storage class @Eduard Lebedyuk mentioned with the first call from a User Namespace?

Hi David!

Great you've found the answer by yourself! It happens to me sometimes right after I end writing a question)

There is no need to add "Solved" to the title to indicate the question is closed. We have the feature of an accepted answer. So you can mark your answer as Accepted and this will be the indicator for the question as solved and it will disappear from the filter of Not accepted answers.

Thanks for your contribution!

Agree with @Eduard Lebedyuk answer, want to introduce another toolset:

1. Import ISC_DEV utility to a DEFAULT_INSTANCE say in a USER namespace and map the classes of the utility to %All.

2. Setup the workdir to export the code

YOURNAMESPACE> w ##class(dev.code).workdir("/path/to/your/wor
king/directory/")

2. export code calling:

YOURNAMESPACE> w ##class(dev.code).export()

This will export cls, routines, and dfi (DeepSee) into separate files.

3. Create the repository in git and commit all the files from the directory into the repository (and even push, if you use Github/Gitlab)

4. Repeat p1-2 for a PRODUCTION_INSTANCE and export classes into the same directory.

5. Compare the changes.  If you Open the directory in  VSCode with Object_Script plugin by @Dmitry Maslennikov you will immediately see the changes in Source Control section of VSCode. E.g. I introduced one line and saved the class and it shows the files changed since the latest commit and the line with the change.

Alternatively you can commit and push changes to Github/Gitlub and see the diff since the latest commit. E.g. like changes in this commit.

If you don't have DeepSee resources, p.1 can be changed to Atelier or VSCode - both have the out-of-the-box functionality to export the source into files in UDL form.

HTH

Hi Thembelani!

For the new development with containers, the choice number one is InterSystems IRIS. You can try and build your solution with community edtion on AWS, Google or Azure.

If it is a solution in Healthcare I suggest starting even with InterSystems IRIS for Health.

As a development IDE with IRIS you have options of Atelier and now community driven VSCode for ObjectScript. 

My personal preference is VSCode.

New cool update came up with VSCode!

What's new in this version

  • IMPORTANT: Connection disabled by default, now. Set "objectscript.conn.active": true to enable it
  • Automatically Preview XML files as UDL, (disabled by default, setting objectscript.autoPreviewXML)
  • Preview XML As UDL by command from Command Palette and from Context Menu
  • Fixed highlighting for XData with css in style tag
  • Show percent-member in outline
  • Multi-root workspace supported now, for different connections
  • Multi-root workspace also for server explorer
  • Go to definition now goes to real file if such presented, or opens from the server
  • Basic syntax highlighting for CSP files, only as HTML
  • Added some snippets for class
  • Go to Subclass for the current class, available in command palette
  • Go to Super class for the current class, available in command palette
  • Go To any class/method in the workspace including server (by Cmd+T/Ctrl+T)
  • some small fixes in the highlighting, and selecting words/variables
  • Intellisense. Show list of methods for ##class(SomeClass)
  • Go to macros definition
  • Go to definition for methods and properties for self object like ..Name..SomeMethod()
  • Added completion for class parameters
  • Export without storage

Well done, Dmitry!