I'm in the process of trying to convert my team to a Git-based workflow for source code version management (we use Ensemble and HealthShare, but build a lot of customizations on top). We are having a hard time working with Atelier in this regard for a few reasons:
Some people are lucky enough to have a totally separate environment to run production in.
-- Unknown
.
In this series of articles, I'd like to present and discuss several possible approaches toward software development with InterSystems technologies and GitLab. I will cover such topics as:
Git 101
Git flow (development process)
GitLab installation
GitLab WorkFlow
GitLab CI/CD
CI/CD with containers
This first part deals with the cornerstone of modern software development - Git version control system and various Git flows.
We have a few projects and some of these projects share code "libraries". Some of which are persistent classes that are used by multiple systems. All these are currently deployed on Ensemble. We want to move some of the smaller ones to the cloud and make use of IRIS.
Starting from the point that Eclipse uses local files on the workstation, COS development can be versioned with market tools (For example GIT or Subversion).
I would like to know how the community has worked with code versioning, to create a consistent versioning model.
Continuous Delivery is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time. It aims at building, testing, and releasing software faster and more frequently. The approach helps reduce the cost, time, and risk of delivering changes by allowing for more incremental updates to applications in production.
I posted a question here about a week ago about GIT. I believe we understand it well enough to use. We are still trying to determine the best flow for our needs.
But now the question is how do we integrate this with GIT?
We are new to both Git and Atelier and would love to get advice.
Currently I believe the flow would be something like this:
1.Create a branch from our origin repository (let's say Ticket 123 branch)
2.Download that branch locally to our PCs with Cache running a local instance
In this series of articles, I'd like to present and discuss several possible approaches toward software development with InterSystems technologies and GitLab. I will cover such topics as:
I am using Atelier + EGit plugins for a project. Is it possible to turn the storage definition off in Atelier so this does not get copied to Git when I make changes? While developing on different versions of the code on different systems, it may cause conflicts and excess noise in the source control history
One of the benefits of Atelier is easy integration with source code management tools. Some Eclipse installations include the EGit plugin, or you can install it from the Eclipse marketplace. EGIt makes integration with Git and GitHub easy. Here are the steps I used to connect Atelier to a GitHub repository:
https://www.youtube.com/embed/PkWL6hiu29o [This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]
https://www.youtube.com/embed/pFpbCkLemXA [This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]
When trying to sync a class to the server where the server class has been updated by another user, I, as expected, get the Conflict Resolution Wizard.
I can then use the wizard to copy code from the server side to my local copy using the arrows also as expected.
But when I have integrated the remote code into what I think is my local copy how do I save it so that it gets integrated into my local copy and synchronised to the server.
Is anyone using Atelier with 3 environments (instances with multiple namespaces) (DEV, TEST, PROD) using GitHub as the source control.
I would be interested in how its all setup. So for example;
Would you have three branches for the code or 3 repo's.
Would you have three projects in Atelier to communicate with the environments and GitHub?
I have 3 existing environments that I wish to put under source control and also provide the ability to promote code between the environments in a controlled manner.
Is your development team following best practice now that source control and continuous integration testing are better supported by InterSystems new IDE Atelier?
Many teams are turning to Git as their version control system of choice because it never locks files, among other reasons. These teams may also be following a multi-server development workflow where changes are migrated from a DEV server to a TEST server to a PROD server. How should these teams organize their repository given this configuration?
I was wondering if there was a way to if the user is using Studio and changes a file to get the users name and have a function run when the file is changed.
Ive got this working for .int files but not for .csp or .js or .css or any other kinds of files.
When we edit code we are logged in to the Cache backend’s server through Studio by using an iPaddress (which is on our network).
I know now there are concepts of file locks and logs for when certain tasks are ran or when a user maybe edits a file
Recently GitHub introduced topics for the projects.
So you can change your InterSystems related projects introducing the topics to let it be categorized, more visible and searchable. Here is the list of good examples for your projects (some of them are clickable already):
When you export the Caché ObjectScript code to VCS (Git, SVN, Perforce, etc) do you export the Storage schema for persistent classes? If so, what are the Pro/Contra?
let know the source code to fetch files from git hub repository..while running the attached file we are getting error.
ERROR #5001: Repository doesn't exist OR you don't have accesscoming1 1
This is the second part of my long post about package managers in operating systems and language distributions. Now, hopefully, we have managed to convince you that convenient package manager and rich 3rd party code repository is one key factor in establishing of a vibrant and fast growing ecosystem. (Another possible reason for ecosystem success is the consistent language design, but it will be topic for another day.)
Have you ever thought what could be a reason why some development environment (database, language) would eventually become popular? What part of this popularity could be explain as language quality? What by new and idioms approaches introduced by early language adopters? What is due to healthy ecosystem collaboration? What is due to some marketing genius?