Git is a version control system for tracking changes in computer files and coordinating work on those files among multiple people.
Over time, while I was working with Interoperability on the IRIS Data Platform, I developed rules for organizing a project code into packages and classes. That is what is called a Naming Convention, usually. In this topic, I want to organize and share these rules. I hope it can be helpful for somebody.
I know the next ones:
1. Place all different settings in environment variables. You have a different .env file for each environment, and you must add some code to Production for reading and setting these values. It's good for deploying into containers, but challenging for management when we have a large production. I mean, we have many settings that can vary depending on the environment: active flag, pool size, timeouts, and so on. Not only endpoints.
Hi,
so we introduced GIT in our workflow and we exported all files with $SYSTEM.OBJ.ExportUDL
Everything fine so far. But for some reason the export adds an extra line for classes (Routines are OK as far as I can see):
On Serverside it isn't there
The Problem is now that when we checkout a branch and a class changed we automatically compile it from the repository to a namespace that is made for the developer. E.g. DEV_001, DEV_002 and so on.
Hi
Hello All,
I have used github (outside of IRIS) for many many years and have no problem with it. Also used SVN and other source control systems.
I have a conceptual problem understanding the ISC github links and how they work via VSCode.
https://github.com/intersystems/git-source-control
Our server is on Linux.
What I've done:
1. On Linux Server - d ##class(SourceControl.Git.API).Configure()
2. Create a local repo (we have a local git), say https://repo/myrepo
3. VSCode installed Object script addons, github Pull requests extension
4. VSCode Connect to namespace on server, all good
I installed and configure CodeTidy in my local development environment, without InterSystems source-control (git-source-control) and only git for source control.
I would like to use only CodeTidy to stablish an automated Linting and Code Style Validation for InterSystems ObjectScript code triggered by GitHub Actions.
Could you shed some light on how to accomplish that?
Hi everyone,
I’m working with an existing InterSystems IRIS server that hosts several web applications and namespace-specific code and data. I’d like to reverse-engineer the current environment into a %Installer.Manifest file so I can store it in Git and manage its changes.
My goal is to:
- Track the application setup and configuration in version control
- Rebuild environments consistently (namespaces, CSP apps, security roles, etc.)
- Possibly automate deployments later on
This will be an introduction to Python programming in the context of IRIS.
Before anything I will cover an important topic: How python works, this will help you understand some issues and limitations you may encounter when working with Python in IRIS.
All the articles and examples can be found in this git repository: iris-python-article
How Python works
Interpreted Language
Python is an interpreted language, which means that the code is executed line by line at runtime even when you import a script.
What does this mean ? Let's take a look at the following code:
Description
This is a template for a Flask application that can be deployed in IRIS as an native Web Application.
Installation
- Clone the repository
- Create a virtual environment
- Install the requirements
- Run the docker-compose file
git clone
cd iris-flask-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up
Usage
The base URL is http://localhost:53795/flask/.
Endpoints
The Application Services team is pleased to announce the release of git-source-control version 2.4.0, introducing several new features to the open-source project.
For those unfamiliar, git-source-control is an embedded (or "server-side") source control tool for InterSystems products, installed through the InterSystems Package Manager.
Here are the key additions to the 2.4.0 release:
- Basic Mode
After upgrading from 2024 to 2025 Im not able to compile any class.
I was using ZPM and git-source-control.
Now Im getting
Compilation started on 04/19/202520:53:00 with qualifiers 'cuk /checkuptodate=expandedonly'
ERROR #5002: ObjectScript error: <CLASS DOES NOT EXIST>OnAfterSave+4^SourceControl.Git.Extension.1 *SourceControl.Git.Utils
Detected 1 errors during compilation in 0.209s. class '%Studio.SourceControl.Interface', method 'OnBeforeTimestamp': <CLASS DOES NOT EXIST> 150 I disabled SourceControl in Management portal and nothing happen.
I know that people who are completely new to VS Code, Git, Docker, FHIR, and other tools can sometimes struggle with setting up the environment. So I decided to write an article that walks through the entire setup process step by step to make it easier to get started.
I’d really appreciate it if you could leave a comment at the end - let me know if the instructions were clear, if anything was missing, or if there’s anything else you'd find helpful.
The setup includes:
Greetings,
Our team is transitioning to Git in the foreseeable future, and I'm trying to figure out how to design the best development workflow. Being new to IRIS, I am having trouble wraping my head around a few concepts.
Current Setup:
- All code is hosted on a remote server
- Each developer works in their own dedicated Namespace, on that server
- Classes are locked to avoid conflicts
- Committed code is imported into the Development NS, then redestributed to developers
Challenge:
I'd like to ask you for recommendations on how to properly use repository dependencies when using VSCode and Client-side editing. Suppose I have projects A, B and C, with A being independent, B depending on A, and C depending on A and B. I am currently working with the main project C, and I want to be able to contribute to all the other projects in a single VSCode window (instead of opening three instances). How do you solve this problem? Git submodules? ZPM? Something else?
The VS Code extension development team is looking for beta testers to provide feedback on a proposed overhaul of the client-side editing workflow. The full list of changes can be found in the GitHub pull request description. Here are the highlights:
The compile step in VS Code when using the InterSystems VS Code extensions appears to modify line endings in our class files when newly pulled from remote repo.
What steps can we take to stop this happening? / What settings can we modify?
We are doing local development with client side source control using git (BitBucket Cloud repository). We were previously using GitLab (locally hosted) and didn't have this issue. Developers are all on Windows machines, as are all the Ensemble instances. We believe we have autocrlf = true in all our local git configurations.
Steps to reproduce:
Hi,
We are currently switching from Studio to VSCode and central GIT with Serverside Development and have a few start problems.
I have set up a system with Git.
The baseline commit including remote push works.
But now I have a problem with the VSCode. When I create and compile a new class, it saves it correctly. But if I want to make further changes to the class, it saves the class and loads it again with the previous status. So the changes I made are gone again.
I have deactivated CompileOnSave without success.
The log shows the following
It's been a while since I've posted about Embedded Git on the Developer Community, and I'd like to provide an update on the massive amount of work we've done this year and where we're going next.
Context
If you're building solutions on IRIS and want to use Git, that's great! Just use VSCode with a local git repo and push your changes out to the server - it's that easy.
But what if:
Hello everyone! This is my first post into the developer community and one that I hope is fairly simple to answer. In our environment we currently have 3 different Test environments for testing before migrating code to our Prod environment. Currently we are working on establishing a source control method using Git in house which has been a bit of a struggle. We have also had developers that had used different test and migration methods in the past which has caused some issues with keeping the different test environment in sync.
Hey everyone, I am implementing version control with git-source-control on our codebase and I ran into a pretty strange issue. I believe I have the set up (mostly) correct as the behavior with .cls files is exactly as expected. However, I noticed that git is not keeping track of any changes to CSP files.
Specifically, if a new CSP file is created and saved, I will get the following output:
exporting new version of /csp/testdb/wrc.csp to C:\InterSystems\IRIS\mgr\repo\TESTDB\csp\testdb\wrc.csp
Added /csp/testdb/wrc.csp to source control.
Hi everyone,
I am new to "git-source-control", what i am doing so far will explain you in few steps.
1. installed git-source-control into a namsapace TEST using ZPM "install git-source-control"
2. configure the git settings and created a new mapping for as such
3. Now when I am trying to ADD a new file which is created for eg - NewFolder/impl.cls , getting an error like this
exporting new version of NewFolder.impl.cls to /Users/abc/workspace/NewFolder/impl.cls
No mapping with a matching path found for file NewFolder/impl.cls
There are a select few in the group that have been using Github as a Local Client push to a Repository setup in GitHub. Questions were brought up today about the security, and possible issues when it comes to data being pushed in this method.
Looking over code we have noticed that there is Histogram data within some of the class files that could be considered a security issue. Does anyone else have concerns with the Histogram data being within the class files pushed up to github?
How do you configure it to have source control on a namespace accessed via the InterSystems Server Manager extension?
An example from the video explains only how it will work with a cloned git repo on a local machine (PC/Mac), but so far, I can't get it to work on a remote development server (replacing existing remote Studio via RDP with local VS Code).
Description
This is a template for a FastApi application that can be deployed in IRIS as an native Web Application.
Installation
- Clone the repository
- Create a virtual environment
- Install the requirements
- Run the docker-compose file
git clone
cd iris-fastapi-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up
Usage
The base URL is http://localhost:53795/fastapi/.
Endpoints
What is the reason for
RUN apt-get update && apt-get install -y \
git \
nano \
python3-opencv \
sudo && \
/bin/echo -e ${ISC_PACKAGE_MGRUSER}\\tALL=\(ALL\)\\tNOPASSWD: ALL >> /etc/sudoers && \
sudo -u ${ISC_PACKAGE_MGRUSER} sudo echo enabled passwordless sudo-ing for ${ISC_PACKAGE_MGRUSER}
I think I get error because I do not have sudo privilege in the environment where I use podman to build the image
podman build --tag oliver3 .
I cloned iris-pero-ocr repo, added two large files into misc location, and I tried to build image. I see this:
This demo program is used to show how a custom FHIR profile can be employed to validate data compliance. The custom FHIR implementation guide was developed based on FHIR Version R4, and in this example implements the Organization resource extension to validating data compliance.
Installation
We have installed IRIS on a separate server that we access remotely and copied all code and data to it so we can test IRIS before we do the move.We develop directly on the server.We Use VsCode to code but sometimes we might need to go to cache studio for some tasks.
We were interested in git for Shared Development Environments, we have installed it on a server with IRIS 2021 and configured it by following the instructions and videos of InterSystems summits we found online. We initialised a local repository on the server, added some files to start testing branches.
If you're building solutions on IRIS and want to use Git, that's great! Just use VSCode with a local git repo and push your changes out to the server - it's that easy.
But what if: