From e46ae1620356a1bf230e81d5767d2d14d3ec436c Mon Sep 17 00:00:00 2001 From: Timothy Leavitt Date: Thu, 13 Aug 2026 13:35:56 -0400 Subject: [PATCH 1/3] fix: installer runs synchronously --- preload/cls/IPM/Installer.cls | 35 ++--------------------------------- 1 file changed, 2 insertions(+), 33 deletions(-) diff --git a/preload/cls/IPM/Installer.cls b/preload/cls/IPM/Installer.cls index 9a865f0a..c1a8e870 100644 --- a/preload/cls/IPM/Installer.cls +++ b/preload/cls/IPM/Installer.cls @@ -95,16 +95,6 @@ ClassMethod Map( quit ##class(%Installer.Manifest).%Generate(%compiledclass, %code, "MapOnly") } -ClassMethod AsyncSetup(Args...) -{ - try { - set tSC = ..setup(Args...) - } catch ex { - set tSC = ex.AsStatus() - } - do $system.Event.Signal($zparent, tSC) -} - ClassMethod ZPMInit( pRegistry As %String = "", pAnalyticsTrackingID As %String = "") @@ -212,31 +202,10 @@ ClassMethod EndCompile(qstruct) As %Status write !,"Installing ZPM" set ts = $zhorolog - set logFile=##class(%File).TempFilename() - job ..AsyncSetup(tModDir, 3):(:::logFile):0 - if '$test { - quit $$$ERROR($$$GeneralError, "Job did not start") - } - - #; Wait setup - set child=$zchild - set tSC = $$$OK - do { - hang 1 - set $listbuild(res, tSC) = $system.Event.WaitMsg("", 10) - quit:res=1 - } while $data(^$job(child)) - - set fs=##class(%Stream.FileCharacter).%New() - set fs.Filename=logFile - while 'fs.AtEnd { - write !,fs.ReadLine() - } - if ##class(%File).Delete(logFile) - + set sc = ..setup(tModDir, 3) write !,"Time spent ",$zhorolog - ts - quit tSC + quit sc } /// Check currently installed version, if any From 5a96b4f0dab3bfaca3d236a0f65e3c6481f52ae9 Mon Sep 17 00:00:00 2001 From: Tim Leavitt <73311181+isc-tleavitt@users.noreply.github.com> Date: Wed, 2 Sep 2026 11:26:19 -0400 Subject: [PATCH 2/3] fix: installer runs synchronously Kind of gross to force compile-within-compile this way, but it works! --- .vscode/settings.json | 21 +++++++++++++++------ preload/cls/IPM/Installer.cls | 8 ++++++++ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 3f6094cb..6be9a138 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,11 +1,8 @@ { "objectscript.conn": { "active": true, - "docker-compose": { - "service": "iris" - }, - "username": "_system", - "password": "SYS", + "host": "localhost", + "server": "docker-iris", "ns": "USER" }, // Non-default export settings needed so Testing Manager extension can find sources when doing coverage runs @@ -28,5 +25,17 @@ "editor.detectIndentation": false, "editor.insertSpaces": true, "editor.formatOnSave": true, - "files.trimTrailingWhitespace": true + "files.trimTrailingWhitespace": true, + "intersystems.servers": { + "docker-iris": { + "webServer": { + "scheme": "http", + "host": "localhost", + "port": 52774, + "pathPrefix": "" + }, + "username": "_SYSTEM", + "password": "SYS" + } + } } \ No newline at end of file diff --git a/preload/cls/IPM/Installer.cls b/preload/cls/IPM/Installer.cls index c1a8e870..7e696d9a 100644 --- a/preload/cls/IPM/Installer.cls +++ b/preload/cls/IPM/Installer.cls @@ -29,6 +29,7 @@ XData PM [ XMLNamespace = INSTALLER ] + @@ -42,6 +43,13 @@ XData PM [ XMLNamespace = INSTALLER ] } +ClassMethod ForceCompileEvenInSYS() +{ + $$$RemoveClsTempNodes + do $system.OBJ.CompilePackage("%IPM","ckf") + $$$AddClsTempNodes +} + XData MapOnly [ XMLNamespace = INSTALLER ] { From b2ae934094c0d78cc9e0d3345cbf1c2058a4a501 Mon Sep 17 00:00:00 2001 From: Tim Leavitt <73311181+isc-tleavitt@users.noreply.github.com> Date: Wed, 2 Sep 2026 11:28:10 -0400 Subject: [PATCH 3/3] docs: add changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 213665c6..5edddaf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Performance: Studio project creation on package load in dev mode is now 80% faster. - #994: Prevent crash in `zn` command when target namespace lacks IPM mappings +- #1215: installer is synchronous rather than jobbed for simplified logging/debugging ## [0.10.9] - 2026-08-05