Using Atelier with GitHub in a multi-developer environment
Hi Everyone!
I have a question about how teams are using Atelier, in my experience, using a single-server/multi-developer environment is becoming problematic for us, especially when using GitHub to source control our code, let me explain...
If one developer is working on some code and is syncronising with the server and then another makes changes on that files, a merge process occurs for both developers as they both receive each others code. Also, when one subsequently commits to GitHub, they will have their work and the potentially partial work of their colleague added to the commit; which would make cherry picking/rolling back very difficult and also the traceability/context is lost. Similarly, if branches are used (although we don't use them much for this project currently) it would be syncing different branches constantly too...
My thoughts are that creating a local instance would be the best way - but i understand this would incur additional development licences.
Does anyone else out there have any insight?
Appreciate any responses.
For each developer to make a separate namespace on the server. There is also a separate namespace for merge and testing the application.
Daniel,
You are absolutely correct that using Client-Side source control hooks (ie the Eclipse Git hooks with Atelier) in a Shared development instance is a recipe for disaster and frustration. You options are moving to Private development environments (each developer gets their own Namespace, or instance, or VM or container), or move to Server-side source control hooks.
I did an in depth session on this at Global Summit 2017 which should be of interest to you. You can watch the recording and get the slides here:
https://learning.intersystems.com/course/view.php?id=713
HTH,
Ben
Daniel, if your team benefits from working in a shared namespace but you'd still like source control, please consider using Deltanji from George James Software. This is a powerful and mature tool which runs natively within Caché / Ensemble / IRIS environments and integrates with Atelier, Studio and Portal editors. It is extensively used around the world, including at NHS sites.
I suggest using local development environment for atelier and using the GitFlow workflow for managing your branches and merges. All the merged code can then be moved, manually or automatically, to your test server and the live server. It works well for us.
I know this is an old thread, but we do have a solution available now for this scenario which will work with Studio, Atelier or VSCode. See https://community.intersystems.com/post/git-shared-development-environments