· Jul 26, 2023

How to keep each package's repository separate?

This question originally appeared in the comments of the article: Git for Shared Development Environments

I am trying to implement this for my Department of Veterans Affairs development group, the problem I have is, there seems to be no way to keep each package's repo separate. For projects in VA, it is very important (and it's also much more practical from a working perspective) to have a separate GitHub repo for each project, and for us in IRIS a project is a package more or less. For instance, under our "CPM" namespace, which might have gov/va/med/* which is a custom VA tool, and then there is a broader package that contractors might even be using as well named "REST", and our package is "FES" under that, under which will be dozens of smaller projects. I am resigned to probably having all the REST/FES projects under one GitHub repo, but we need to be able to use this across our organization, and if there are ten or eleven projects at root of the "CPM" namespace, let's say, the way I see this working (unless I'm misunderstanding something) is that all however-many projects would have to share one GitHub cloned repo. Because it seems as though this setup only allows one "code export" folder per namespace, and so the top-level package repo will encompass everything underneath it, correct? Is there no way to assign differing "export folders" on the server hard drive, per package? That way, each package could have it's own cloned repo and they would not step on each other.
Or if there is some other way to address this problem, I'm open to ideas. I'd really like to use this, but this problem seems like it might be a showstopper.

Discussion (1)3
Log in or sign up to continue

I discussed this with Jason earlier this week. The simplest solution is to use the InterSystems Package Manager (IPM) with a local development environment model - if you have multiple local repos all loaded via zpm with the "-dev" flag, git-source-control will know the right place for everything to go and you can edit multiple projects under a single isfs folder in VSCode (or via Studio). Note, you may need to be more explicit than previously needed with the Directory attribute on resources in module.xml to get things perfectly right.

If there are needs that this won't quite meet, it may be possible to improve git-source-control to provide further configuration options.