Ben Spead · Nov 5, 2019 go to post

David - FYI, the full Release Version of 2019.1.1 Community Editions is now available at Download.InterSystems.com

Ben Spead · Oct 28, 2019 go to post

Joel,

I completely agree with you!  

Within InterSystems we have at least one development team that has codified this via serverside source control hooks which automatically expand use standard case for all commands (there was a presentation on this at last year's Global Summit).  Adopting this tool is on my list of process/tools improvements for my development  team in internal apps.  There will be a discontinuity in the source control branches  when we turn this on and standardize everything in one check-in, but I think the benefits of having a standard way to representing commands without developers having to personally remember to do it the same way will be pretty considerable!

Ben Spead · Oct 18, 2019 go to post

Yes - absolutely!  But you should discuss with InterSystems to work through the details.  But many customers have migrated from DSM to modern versions of the InterSystems stack.

Ben Spead · Oct 18, 2019 go to post

David,

I suggest you look into using the DeployToFile() and InstallFromFile() methods of the %Studio.Project class.  A discussion of the topic can be found here in the docs:

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=ADEPLOY

Another option is calling  the following on individual classes:

 $system.OBJ.MakeClassDeployed()

But since you are looking at just pushing partial updates, most likely the DeployToFile() with the parameter to strip out the source will be your best bet.

Ben Spead · Oct 17, 2019 go to post

David - I completely agree.  It's an excellent suggestion and we'll get it put in place.

Ben Spead · Oct 15, 2019 go to post

David,

Thanks for your feedback!

In general, Developer Download always makes available the latest GA version of our two Community Edition products.  In this case we wanted to be able to launch by Global Summit and so we went with the Preview since 2019.1.1 kits were not full GA yet.  There are ongoing discussions about the pros/cons of making containers available here rather than people just fetching them directly from Docker.  We'll let you know the final decision!

Ben Spead · Oct 1, 2019 go to post

Excellent enhancements!  Much needed and will be widely used I am sure :)

Thank you Stefan!

Ben Spead · Sep 24, 2019 go to post

For anyone currently at Global Summit 2019, @Amir Samary  will be demonstrating the new Evaluation Service TODAY at from 1:30-2:15 in the Tech Exchange, table 3.  Come and check it out and give us your feedback!

Thanks,

Ben Spead

Manager, Application Services, InterSystems

Ben Spead · Sep 24, 2019 go to post

You can grab a Windows version of Caché 2018.1 from the WRC Distribution site and just install Studio out of there, or InterSystems IRIS Studio can also connect to earlier Caché versions, so you can grab a windows InterSystems IRIS Community kit from download.InterSystems.com  and install Studio out of there.

Ben Spead · Sep 11, 2019 go to post

Support should indeed help you out.  

What exactly are you trying to do?  Are you already running an InterSystems IRIS server at your organization and you just want to install Studio to connect to it?  Or are you looking to install a local evaluation copy of the data platform as well as the IDE?

Ben Spead · Aug 9, 2019 go to post

I am assuming that when you are talking about 'folders' you mean the structure which individual items are exported into when you use your source control hooks, correct?  To achieve this you need to loop over all items in the namespace and call the source-control related export on each of them.

The way we do that for our internal systems is to the the BaselineExport() method in the %Studio.SourceControl.ISC class.  %Studio.SourceControl.ISC is our source control hooks class for Perforce, and I haven't tried calling BaselineExport() while another set of hooks are configured for the namespace, it may *just work*, especially if your GitLab hooks use the ^Sources global to describe the export structure.  Give is a try and let us know if it help (if not, I can get you the code for that method and you could adopt it for your purposes)

Ben Spead · Jul 5, 2019 go to post

could you please give a little more of a description as to what you are hoping to accomplish?  A JS file will be executed on the client, where-as "Caché Code" (by this I assume you mean Object Script?) is executed on the server.

You can edit JS files using Studio, you can create object script class projections to automatically create JS files with JS logic in it, you can send JS from a server process to the web browser, etc - there are may ways for Caché Code to interact with, inform or manipulate JS files.  We need more details for what you want to do.

Ben Spead · May 21, 2019 go to post

Per your second question, best practice is generally to use System Defaults which are set in your Namespace and store the production settings (rather than storing them in the Production class).  This allows you to prevent having to have differences in the Production class between branches.  

Ben Spead · May 2, 2019 go to post

Steve - #2 is helpful if you want to leverage existing structures for authentication, auditing, transport or other functions that rely on CSP sessions .  This can be used as part of a strategy of incrementally moving an application from a CSP-based architecture to Angular. 

Ben Spead · Apr 8, 2019 go to post

If your machine is virtualized, just clone the VM (that is what we do for all of our test upgrades).  NOTE - make sure to stand it up on an isolated network segment so that it doesn't try to do any inbound file processing or other communication that it should not (especially if you clone LIVE).

Ben Spead · Apr 5, 2019 go to post

@Peter Cooper 

Thanks again for sharing the start of your journey with the Community.  I am curious if you are planning to provide another Update Article?  I would love to hear about how your journey has progressed over the past year and what you have learned along the way which could help others!

Cheers,

Ben

Ben Spead · Mar 11, 2019 go to post

Exactly!  We are actively using it internally within InterSystems - both in internal application development, and in HealthShare product development.  As discussed in the video we have found incredible value in this tool for decreasing technical debt (and making sure new changes don't add to it).  We thought customers might find the value in it as well.  

Ben Spead · Mar 11, 2019 go to post

@Mike Davidovich 

You are most welcome.  In terms of why TestCoverage was released on OpenExchange, it is something we have been exploring internally last year and wanted to share with the Community in time for Global Summit 2018.  In terms of whether or not it will actually make it into product, I can't speak to that but perhaps the author @Timothy Leavitt  can comment on that (I believe there were at least exploratory discussions with Product Management on this topic).

Ben Spead · Mar 6, 2019 go to post

The first half of that should be helpful.  Code coverage may be helpful too if they are able to move into a CI type BUILD infrastructure (I don't know how well Test Coverage would work in a more dynamic Dev environment as longitudinal history might be harder to maintain ... haven't really thought about that too much before...)

Ben Spead · Mar 6, 2019 go to post

Mike,

We're using UnitTesting for application validation for internal application development within InterSystems.  If you have any specific questions, feel free to create new Questions in the D.C. and tag me, or if you would prefer a general discussion you can ask your Account Manager or Sales Engineer to set up a discussion with me.

There have also been several Global Summit presentations which have touched on the topic - not sure if you've seen these?

Best,

Ben Spead

Manager, AppServices, InterSystems

Ben Spead · Feb 21, 2019 go to post

Sorry -  I forgot that you first need to specify the source control class in the Management Portal.  Put "Source Control" in the Search box on the SMP homepage, and then go to that page (e.g. http://localhost:57772/csp/sys/mgr/%25CSP.UI.Portal.SourceControl.zen).  Select the Namespace in the left column and then "%Studio.SourceControl.ISC".  Save the changes and try the BaselineExport() again.  When you are done with the export, change the Source Control back to "None"

As a general tip, if you do enable and enforce source control, then you wouldn't need to be querying your class definitions to find variations between environments - you could see all of that (and so much more!) in your source control system ;)

Ben Spead · Feb 21, 2019 go to post

I understand ... so you want to only export specific things which it has found to have differences in the code.  That makes sense since you are trying to use it at the end of a piece of code already in place.  I am afraid I don't know how to do that, but if you contact Support they may be able to suggest a trick or two.

Ben Spead · Feb 21, 2019 go to post

Is there a reason that the use of a Virtual Namespace is a requirement? If not, you can use ##class(%Studio.SourceControl.ISC).BaselineExport() to export the entire contents of the Namespace to disk for file-based diffing (this is how I normally do it)

Ben Spead · Jan 18, 2019 go to post

I can only comment on the original functionality in %Studio.SourceControl.ISC - if you're extending it you will need to do some debugging to see exactly why you are seeing the behavior that you are.

In the original %Studio.SourceControl.ISC class, when working in Connected mode (ie, Caché can issue p4 commands in real time to the Perforce server), the p4 command should take care of changing the file back to ReadOnly, which is what triggers GetStatus() to see it is uneditable and therefore not checked out.  It may be that your GetStatus() isn't correctly interpretting  the Reaonly state of the file, or if you are on UNIX, it may be that Caché doesn't see it properly as Readonly (this can happen if you are running your instance as Root).    Note - I think there may be a bug where after checking the %Studio.SourceControl.Change table isn't updated appropriately, but the primary indicator of checked  out/ checked in should be that Readonly bit on the file.

Hopefully this is enough to get you moving on this, and if not then I suggest you call Support to have them take a look with you and debug.  If there are any other questions I can answer in this forum I am happy to try.

Best of luck!