Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V0.10.x update to date #666

Merged
merged 223 commits into from
Dec 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
223 commits
Select commit Hold shift + click to select a range
9b19985
feat: support package mapping IPM everywhere
isc-tleavitt May 22, 2024
68d311f
fix: reintroduce support for other types in PKG
isc-tleavitt May 31, 2024
2ce44ac
fix: exotic resources can still publish deployed
isc-tleavitt Jun 13, 2024
8ec85da
test: minor sandbox changes
isc-tleavitt Jun 25, 2024
71c5cbf
fix: ignore case when checking for file existence
isc-shuliu Jul 29, 2024
375e46c
enhance: allow specifying pip/pip3 path
isc-shuliu Jul 30, 2024
97e7d3a
docs: add change log for ignore resource casing
isc-shuliu Jul 31, 2024
3da4218
docs: add change log for configuraing pip/pip3 path
isc-shuliu Jul 31, 2024
e18f551
enhance(pip): use `python -m pip` for installation as suggested by docs
isc-shuliu Aug 1, 2024
e218304
fix: for windows, try locating `irispip.exe` before `python.exe -m pip`
isc-shuliu Aug 1, 2024
8875973
feat: add support for printing $listbuild(...) in universal config
isc-shuliu Aug 1, 2024
fb35d0d
chore(ci): skip 2023.2 due to expired license
isc-shuliu Aug 1, 2024
d5ff185
docs: add change log entries for pretty print config
isc-shuliu Aug 1, 2024
2e10191
fix(ci): fix a bug when filtering packages
isc-shuliu Aug 1, 2024
9f70be1
enhance(installer): attempt flexible python on windows
isc-shuliu Aug 5, 2024
990a0a1
fix: ensure CPF_PythonRuntimeLibrary is nonempty
isc-shuliu Aug 5, 2024
d57ecfb
fix: auto detect pip caller unless specifically set
isc-shuliu Aug 7, 2024
4f48a19
Revert "feat: add support for printing $listbuild(...) in universal c…
isc-shuliu Aug 7, 2024
4868714
Revert "docs: add change log entries for pretty print config"
isc-shuliu Aug 7, 2024
3ccd780
style: remove unused classmethod ListToMultiDimensional
isc-shuliu Aug 7, 2024
8b8631a
fix: fix call to DetectPipCaller
isc-shuliu Aug 8, 2024
36ddc87
fix: pass pParams correctly to ResolvePipCaller
isc-shuliu Aug 8, 2024
df00e16
style: remove postconditionals and use 1 command per line
isc-shuliu Aug 13, 2024
7c5cc6a
docs: add parameter link in class referece
isc-shuliu Aug 13, 2024
e74d835
fix: specify python version for wheel ABI compatibility
isc-shuliu Aug 19, 2024
170604b
Merge pull request #528 from intersystems/v1-fix-filepath-casing
isc-tleavitt Aug 20, 2024
bb6f029
fix: actually use irispip
isc-tleavitt Aug 20, 2024
55fc337
enhance: use existent `RunCommand` and better verbose settings
isc-shuliu Aug 20, 2024
dcf5a85
Merge pull request #538 from intersystems/v1-fix-pip-path
isc-tleavitt Aug 22, 2024
c099b3a
ci: trigger workflow on completion of packages test
isc-shuliu Aug 26, 2024
ff6962d
ci(packages): remove call to self-summarization
isc-shuliu Aug 26, 2024
893bbbc
Merge pull request #555 from intersystems/v1-fix-ci-autotrigger
isc-shuliu Aug 26, 2024
ad022cd
fix: remove debug code, add IPM ver arg
isc-tleavitt Aug 27, 2024
8fef105
Merge branch 'v1' into flight-2354
isc-tleavitt Aug 27, 2024
58aa607
Merge pull request #511 from intersystems/flight-2354
isc-tleavitt Aug 27, 2024
696c3c2
Merge pull request #491 from intersystems/v1-fix-483
isc-tleavitt Aug 27, 2024
34cb44d
fix: #{expression} in module.xml works again
isc-tleavitt Jul 5, 2024
cd7f19b
test: add unit test for expression
isc-tleavitt Aug 27, 2024
a370756
Merge pull request #556 from intersystems/fix-hashtag
isc-tleavitt Aug 27, 2024
7cb4efa
fix: consistency in treatment of top-level Mapping
isc-tleavitt Aug 27, 2024
6b93ee6
fix: use semver 2.0 to exclude snapshots in range max
isc-shuliu Aug 28, 2024
360152e
test: adjust testcases for semver 2.0
isc-shuliu Aug 28, 2024
3b85a52
feat: specify prerelease and snapshots when searching for packages
isc-shuliu Aug 29, 2024
5be72d7
chore: remove unnecessary docstring
isc-shuliu Aug 29, 2024
8caee9c
chore: update change log
isc-shuliu Aug 30, 2024
4e0eaa0
docs: update changelog
isc-shuliu Aug 30, 2024
2657d6c
Merge pull request #558 from intersystems/fix-499
isc-tleavitt Aug 30, 2024
e7757d8
feat: add global config SemVerPostRelease to treat pre-rel. as post-rel.
isc-shuliu Sep 3, 2024
7578853
feat(semver): support post-release comparison
isc-shuliu Sep 3, 2024
bf5cd99
test(semver): add test cases for post-release comparisons
isc-shuliu Sep 3, 2024
934a6e1
chore(changelog): explain post release feature
isc-shuliu Sep 3, 2024
0029991
fix: coerce SemVerPostRelease to 0 in case installer is not run
isc-shuliu Sep 3, 2024
627fcb5
style: fix misspelt method name
isc-shuliu Sep 4, 2024
5e7fbb1
fix(ci): use non-prerelease version of 0.7 for new version of registry
isc-shuliu Sep 4, 2024
1668971
Merge branch 'v1-fix-semver-2.0' into fix-filter-prerelease-snapshots
isc-shuliu Sep 5, 2024
b9552ee
feat: adjust sort order when using post-release
isc-shuliu Sep 5, 2024
d744748
feat: adjust sort order when using post-release
isc-shuliu Sep 5, 2024
4fe9300
Revert "feat: adjust sort order when using post-release"
isc-shuliu Sep 5, 2024
a4b2cb8
enhance: set version sort direction outside of for loop
isc-shuliu Sep 5, 2024
96fc4a2
enhance: move sorting direction further outside the loops
isc-shuliu Sep 5, 2024
5f53f89
style: indentation
isc-shuliu Sep 5, 2024
e98029a
feat: implement generic webapp processor
isc-shuliu Sep 5, 2024
69e8a5e
style: fix indent using spaces
isc-shuliu Sep 6, 2024
66cb10f
test(processor): add WSGI test case for WebApplication resource
isc-shuliu Sep 6, 2024
59bfc2d
test(processor): add REST test case for WebApplication resource
isc-shuliu Sep 6, 2024
f176812
fix(processor): set namespace for applications
isc-shuliu Sep 6, 2024
959da4f
fix(processor): evaluate $zu(12, "") in original ns rather than %SYS
isc-shuliu Sep 6, 2024
c94bdd2
style(indent): fix indent using spaces
isc-shuliu Sep 6, 2024
98ba86f
Revert "style(indent): fix indent using spaces"
isc-shuliu Sep 9, 2024
2b0ad9a
style(indent): fix indent using spaces
isc-shuliu Sep 9, 2024
632709e
fix(webapp): fix operator precedence
isc-shuliu Sep 9, 2024
c56f324
fix(webapp): throw error status if name is absent
isc-shuliu Sep 9, 2024
9c39053
fix(webapp): process properties using %EvaluateSystemExpression
isc-shuliu Sep 9, 2024
0cfc1db
style: remove unused code and comment
isc-shuliu Sep 9, 2024
1eb87ee
test(webapp): modify test cases to make sure they actually work
isc-shuliu Sep 9, 2024
56ce74e
test(webapp): add test for `get`ting REST endpoints
isc-shuliu Sep 9, 2024
cb8022c
style: fix indent using tabs
isc-shuliu Sep 9, 2024
fb787d5
debug: trigger a ci to see why HttpGet fails
isc-shuliu Sep 9, 2024
81c1e65
feat: use a better way to determine database resource
isc-shuliu Sep 9, 2024
8314fc1
style: remove comments about mirror safety
isc-shuliu Sep 9, 2024
590dbd2
refactor: use Security.Applications API instead of %Library.EnsembleMgr
isc-shuliu Sep 9, 2024
99c46ec
enhance(webapp): always set IsDirectory to 1
isc-shuliu Sep 12, 2024
cf38fc0
feat(webapp): add method to create role to read routine DB of namespace
isc-shuliu Sep 12, 2024
c36aa58
test(webapp): temp. turn off testing until #564 is fixed
isc-shuliu Sep 12, 2024
d4c997e
fix: allow specifing `AutheEnabled` using comma separated indices
isc-shuliu Sep 12, 2024
dbf3228
test(webapp): add more match roles for tests
isc-shuliu Sep 12, 2024
1e22663
chore: update changelog to include generic webapp feature
isc-shuliu Sep 12, 2024
b75a861
Merge branch 'v1-feat-generic-webapp' into v1-feat-webapp-routine-rea…
isc-shuliu Sep 12, 2024
0bd9183
feat(webapp): create and delete role for code read
isc-shuliu Sep 12, 2024
1c38921
feat(webapp): allow more flexible expression in AutheEnabled
isc-shuliu Sep 12, 2024
795b7b7
Merge branch 'v1-feat-generic-webapp' into v1-feat-webapp-routine-rea…
isc-shuliu Sep 12, 2024
4c42711
fix: use AuthCache for compatibility with older IRIS
isc-shuliu Sep 12, 2024
cfa856f
Merge branch 'v1-feat-generic-webapp' into v1-feat-webapp-routine-rea…
isc-shuliu Sep 12, 2024
a1a16bd
Merge pull request #565 from intersystems/v1-feat-webapp-routine-read…
isc-shuliu Sep 12, 2024
d22f12f
Revert "V1 feat webapp routine read role"
isc-shuliu Sep 12, 2024
3ac8cc5
Merge pull request #566 from intersystems/revert-565-v1-feat-webapp-r…
isc-shuliu Sep 12, 2024
87166c7
feat:l reimplement codeReadRole
isc-shuliu Sep 12, 2024
ccb9be8
test: re-add test case for HTTP GET
isc-shuliu Sep 12, 2024
bcf2167
style: typo fixes
isc-shuliu Sep 13, 2024
59482c6
enhance(webapp): include module name in ${codeReadRole}, so it's unique
isc-shuliu Sep 17, 2024
d109d7c
test(webapp): add test case for 2 webapps sharing the same namespace
isc-shuliu Sep 17, 2024
e0da977
fix: fix %Evaluate() so COS expression evaluates properly
isc-shuliu Sep 17, 2024
bced536
fix: strip leading space in #{expr} so `return @expr` is always valid
isc-shuliu Sep 17, 2024
29998c3
feat(webapp): handle `#{expr}` in abstract processor %Evaluate()
isc-shuliu Sep 17, 2024
b71b023
Merge pull request #559 from intersystems/v1-fix-semver-2.0
isc-shuliu Sep 17, 2024
605bc24
Merge pull request #560 from intersystems/fix-filter-prerelease-snaps…
isc-shuliu Sep 17, 2024
988d1e8
Merge pull request #562 from intersystems/v1-feat-generic-webapp
isc-shuliu Sep 17, 2024
f5fcfa4
docs: improve documentation for templates in %Evaluate
isc-shuliu Sep 18, 2024
e9dcfd4
feat: rename codeDbReadRole and globalsDbRole in templates
isc-shuliu Sep 18, 2024
2a58e3b
test(webapp): improve web app match roles so they make more sense
isc-shuliu Sep 18, 2024
e6afc10
doc: minor change
isc-shuliu Sep 18, 2024
070922d
enhance(webapp): use pkg name hash for role name to avoid 64 char limit
isc-shuliu Sep 18, 2024
c41eb7d
enhance: use numbers instead of Authe* macros to avoid compile time errs
isc-shuliu Sep 18, 2024
24d617b
docs: specify ${docDbReadRole} is meant for WebApplication only
isc-shuliu Sep 18, 2024
68a0218
feat: implement ${globalsDBRole} template substitution
isc-shuliu Sep 18, 2024
3d47b4d
feat(webapp): simplify ${codeDbReadRole} without auto deleting it
isc-shuliu Sep 19, 2024
81c48a1
feat(webapp): remove ${codeDbReadRole} altogether
isc-shuliu Sep 19, 2024
e28bd56
feat: add support $$$macro in module.xml
isc-shuliu Sep 19, 2024
59c94b4
test(macro): test expansion of $$$macro in string
isc-shuliu Sep 19, 2024
047e6cd
docs: add docs for $$$macro expansion
isc-shuliu Sep 19, 2024
146b852
enhance(webapp): use $$$macro expansion instead of ${auth*} templates
isc-shuliu Sep 19, 2024
f9bc432
enhance: improve error handling and efficiency for macro expansion
isc-shuliu Sep 19, 2024
6a9dd01
Merge pull request #572 from intersystems/v1-enhance-webapp-processor
isc-tleavitt Sep 20, 2024
7a00208
style: misc style change based on code review feedback
isc-shuliu Sep 20, 2024
bf8ed87
docs(main): remove inaccurate description of mapping to %ALL
isc-shuliu Sep 20, 2024
a9e8cbb
fix: revert changes in MapOnly XData and Map Method
isc-shuliu Sep 23, 2024
0a6887e
docs(enable): specify when `-globally` tag includes %SYS
isc-shuliu Sep 24, 2024
0ce3be4
enhance: show ns-specific IPM versions when calling zpm from ns w/o IPM
isc-shuliu Sep 24, 2024
906423e
fix: map IPM to all namespaces when upgrading from ZPM via registry
isc-shuliu Sep 24, 2024
faf4ebd
enhance: disallow management of IPM if mapped from another namespace
isc-shuliu Sep 25, 2024
bf6e699
fix: perform migration in all namespaces when upgrading from ZPM to IPM
isc-shuliu Sep 25, 2024
1de4bd0
feat: implement an "unmap" command to allow for per-NS upgrade of IPM
isc-shuliu Sep 25, 2024
6db5287
fix: run migration in each namespace with its own try-catch
isc-shuliu Sep 26, 2024
62d4a99
doc: improve documentation of unmap
isc-shuliu Sep 27, 2024
cc2e4f6
enhance: improve error handling based on pArgs, e.g. `zpm "cmd":1:1`
isc-shuliu Sep 27, 2024
7b10d49
fix: only perform migration in NS with %IPM mapped from current NS
isc-shuliu Sep 27, 2024
0778166
fix: run %IPM.Main in the correct NS
isc-shuliu Sep 27, 2024
3a6a5ef
fix: should check repo (instead of package) works in MigrateOneRepo()
isc-shuliu Sep 27, 2024
ed9589d
style: typo and style fixes
isc-shuliu Oct 7, 2024
bf96419
refactor: use %IPM.Main:IPMInstalled to retrieve IPM module ID
isc-shuliu Oct 7, 2024
bad7332
enhance: remvoe redundant call to MapIfLegacy in IPM.Installer.cls
isc-shuliu Oct 7, 2024
d8ac1af
style: more minor changes
isc-shuliu Oct 7, 2024
f7bb629
feat: use dynamic SQL to prevent unexpected problems
isc-shuliu Oct 7, 2024
327eb17
feat(enable): support -preview for all use cases
isc-shuliu Oct 7, 2024
72fb28e
Merge pull request #485 from intersystems/v1-enable-globally
isc-tleavitt Oct 10, 2024
924306d
fix: move namespace filtering from SQL to ObjectScript for IRIS compat.
isc-shuliu Oct 22, 2024
e53ba9e
style: minor comment and remove unused args
isc-shuliu Oct 22, 2024
b62b2cd
refactor: use regex instead of pattern matching to check namespace value
isc-shuliu Oct 23, 2024
d3430fd
Merge pull request #589 from intersystems/v1-lite-terminal-sql
isc-tleavitt Oct 24, 2024
3750299
fix: make CSPApplication deprecated & forward compatible
isc-shuliu Oct 24, 2024
e1ad78d
chore: add change log entry for webapplication deprecation
isc-shuliu Oct 24, 2024
451a69c
feat: allow bypass installation of python dependencies
isc-shuliu Oct 24, 2024
5a9483e
refactor: rename constant macros
isc-shuliu Oct 24, 2024
9b0902f
Merge pull request #593 from intersystems/v1-deprecate-cspapp
isc-shuliu Oct 24, 2024
0f29ba8
enhance: make bypass-py-deps a distinct modifier
isc-shuliu Oct 24, 2024
438eb4e
docs: update changelog
isc-shuliu Oct 24, 2024
fd63524
fix: SQL failures due to typo in semver Postrelease SQL compute code
isc-shuliu Oct 24, 2024
9889db6
Merge pull request #595 from intersystems/v1-feat-bypass-py-deps
isc-tleavitt Oct 25, 2024
0fa8c76
Merge pull request #597 from intersystems/v1-rename-macros
isc-tleavitt Oct 25, 2024
f81cae7
Merge pull request #599 from intersystems/v1-fix-postrelease-sql
isc-tleavitt Oct 25, 2024
1ef8409
feat: warn that dbrole is deprecated when evaluating it
isc-shuliu Oct 25, 2024
b507479
fix(docker): OS file permission isn't always preserved in container
isc-shuliu Oct 25, 2024
30c2266
Merge pull request #602 from intersystems/v1-docker-permission
isc-tleavitt Oct 25, 2024
884bc57
fix: report deletion of things that aren't classes
isc-tleavitt Oct 30, 2024
c603f38
fix: tar archive has garbage folders
isc-tleavitt Oct 30, 2024
ff17c34
test: add integration test for FileBinaryTar
isc-tleavitt Oct 30, 2024
80c6f07
Merge pull request #610 from intersystems/fix-607
isc-tleavitt Oct 30, 2024
d8e8ada
Merge branch 'v1' into fix-606
isc-tleavitt Oct 30, 2024
3b8d828
test: quote files
isc-tleavitt Nov 4, 2024
8f9d1e0
Merge pull request #601 from intersystems/v1-deprecate-dbrole
isc-tleavitt Nov 12, 2024
c6d9c08
chore: comment on slashes
isc-tleavitt Nov 12, 2024
524b074
Merge branch 'v1' into fix-606
isc-tleavitt Nov 12, 2024
5b8381a
fix(ci): exclude community containers with expired licences
isc-shuliu Nov 11, 2024
f0883c7
Merge pull request #612 from intersystems/fix-606
isc-tleavitt Nov 18, 2024
d0564f5
$ListFind("CLS","MAC","XML") had "XML" removed from it which lead to …
Nov 19, 2024
8303e6c
chore(ci): update upload-artifact to v4
isc-tleavitt Nov 20, 2024
adb3e65
Updating artifact to 0.7.3 for CI checks
Nov 20, 2024
09ec959
feat(ci): add timeout for testing packages
isc-shuliu Dec 2, 2024
16d50c4
fix(ci): bump legacy zpm version to 0.7.3
isc-shuliu Dec 2, 2024
bdc38b9
Changing from "text()" to "node()" instead of adding "XML"
Dec 2, 2024
b05860b
Forgot to remove the "XML" part
Dec 2, 2024
3b3fd30
Merge pull request #637 from intersystems/v1-ci-package-timeout
isc-tleavitt Dec 3, 2024
2d1c8a6
fix(ci): map IPM to %SYS during build test phase
isc-shuliu Dec 3, 2024
73481a8
fix: remove namespace switch
isc-shuliu Dec 3, 2024
a026459
fix(ci): bump download-artifact to v4
isc-shuliu Dec 3, 2024
afa9d89
Merge pull request #641 from intersystems/v1-ci-package-timeout
isc-shuliu Dec 3, 2024
e7db117
feat(ci): allow parameterization of package test timeout
isc-shuliu Dec 4, 2024
f50657b
Merge pull request #644 from intersystems/v1-ci-parametrize-timeout
isc-tleavitt Dec 4, 2024
c7b1b08
Adding unit test for .LOC files
Dec 4, 2024
570cff6
chore(ci): make /home/irisowner/zpm writable
isc-tleavitt Dec 5, 2024
b89d051
chore(ci): tweak docker exec
isc-tleavitt Dec 5, 2024
4367a85
Merge pull request #626 from intersystems/HSIEO-10884
isc-tleavitt Dec 5, 2024
875a419
feat: allow custom extra flags for pip install
isc-shuliu Dec 5, 2024
d1fdfa4
feat: auto update legacy abstract resource processor before compiling
isc-shuliu Dec 5, 2024
5c992bd
chore: update changelog to include `-extra-pip-flags`
isc-shuliu Dec 5, 2024
18599fe
style: fix grammar mistakes
isc-shuliu Dec 5, 2024
cc64956
docs: list the default pip flags when install python dependencies
isc-shuliu Dec 5, 2024
352cf59
Merge pull request #647 from intersystems/v1-feat-extra-pip-flags
isc-tleavitt Dec 10, 2024
ead0910
Merge pull request #648 from intersystems/v1-feat-legacy-processor
isc-tleavitt Dec 10, 2024
478042d
fix: don't add needless mappings
isc-tleavitt Dec 11, 2024
43e9957
chore (docs): tweak changelog
isc-tleavitt Dec 11, 2024
aee3891
HSIEO-11006: Fix conditions for marking code as deployed
isc-eneil Oct 31, 2024
4f77156
chore (docs): update method description
isc-tleavitt Dec 11, 2024
3ff3ac3
Merge pull request #657 from intersystems/v1-fix-make-deployed
isc-kiyer Dec 11, 2024
3ca3776
Merge pull request #656 from intersystems/fix-652
isc-tleavitt Dec 12, 2024
e8d22bd
Updating FileCopy to check for $ variables in path
Dec 13, 2024
abb9659
chore: update branch names in main.yml (v0.9.x)
isc-shuliu Dec 13, 2024
4cc8f14
fix(ci): bump legacy zpm version
isc-shuliu Dec 13, 2024
9ac597e
Minor update to FileCopy if statement + adding to changelog
Dec 13, 2024
2b4f85f
Updating method description comment
Dec 13, 2024
c2df920
Merge pull request #660 from intersystems/HSIEO-10884-2
isc-jlechtne Dec 13, 2024
abd9f79
chore(ci): include `main` branch for CI
isc-shuliu Dec 16, 2024
5025c10
fix(ci): change ref from master to main on release
isc-shuliu Dec 16, 2024
3519d32
chore: update module.xml and changelog for 0.9.0 release
isc-shuliu Dec 16, 2024
2e6cd52
auto bump version with release
bot Dec 16, 2024
5b707c0
fix(ci): update path to preload Installer.cls
isc-shuliu Dec 16, 2024
647180d
Merge pull request #661 from intersystems/v0.9-fix-ci-release
isc-tleavitt Dec 16, 2024
1c760de
auto bump version with release
bot Dec 16, 2024
a3617de
Merge branch 'main' into v0.10.x-update-to-date
isc-shuliu Dec 17, 2024
2ae9b3a
debug: ci is passing locally but fails on github
isc-shuliu Dec 17, 2024
17cbf85
fix: run migration only once
isc-shuliu Dec 17, 2024
9422971
Revert "fix: run migration only once"
isc-shuliu Dec 17, 2024
33859a6
test: move ZPM migration test to %SYS
isc-shuliu Dec 18, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ jobs:
zpm ${{ steps.image.outputs.flags }})
sleep 5; docker exec $CONTAINER /usr/irissys/dev/Cloud/ICM/waitISC.sh
docker cp . $CONTAINER:/home/irisowner/zpm/
echo `docker exec -i --user root $CONTAINER chmod -R 777 /home/irisowner/zpm/`
echo `docker exec -i --workdir /home/irisowner/zpm/ $CONTAINER ls -rtl`
docker exec -i $CONTAINER iris session iris -UUSER << EOF
zpm "list":1
Expand Down Expand Up @@ -201,8 +202,12 @@ jobs:
zpm "repo -list"
zpm "search":1
zpm "install sslclient":1
write "Before migration",!
zpm "list"
zpm "install zpm -v":1
zpm "load -dev /tmp/test-package/":1
write "After migration",!
zpm "list"
zpm "test ipm-migration-v0.7-to-v0.9 -only -verbose":1
halt
EOF
Expand Down Expand Up @@ -291,7 +296,7 @@ jobs:
CONTAINER=$(docker run -d --rm -v $(pwd):/home/irisowner/zpm/ containers.intersystems.com/intersystems/${{ needs.prepare.outputs.main }} --check-caps false)
sleep 5; docker exec $CONTAINER /usr/irissys/dev/Cloud/ICM/waitISC.sh
docker exec -i $CONTAINER iris session iris -UUSER << EOF
set sc=##class(%SYSTEM.OBJ).Load("/home/irisowner/zpm/Installer.cls","ck")
set sc=##class(%SYSTEM.OBJ).Load("/home/irisowner/zpm/preload/cls/IPM/Installer.cls","ck")
set sc=##class(IPM.Installer).setup("/home/irisowner/zpm/",3)
zpm "repo -r -name registry -url ""https://pm.community.intersystems.com/"" -username ${{ secrets.REGISTRY_USERNAME }} -password ${{ secrets.REGISTRY_PASSWORD }}":1
zpm "publish zpm -v":1
Expand Down
18 changes: 5 additions & 13 deletions .github/workflows/packages-summary.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,9 @@
name: Summarize package test results
on:
workflow_call:
inputs:
runId:
type: number
required: true
description: "Id of the workflow run to summarize"
workflow_dispatch:
inputs:
runId:
type: number
required: true
description: "Id of the workflow run to summarize"
workflow_run:
workflows: ["Test major packages"]
types:
- completed

jobs:
summarize:
Expand All @@ -21,7 +13,7 @@ jobs:
steps:
- name: Donwload log zip
run: |
curl -L -o logs.zip "${{ env.BASE_URL }}/${{ inputs.runId }}/logs" -H 'Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}'
curl -L -o logs.zip "${{ env.BASE_URL }}/${{ github.event.workflow_run.id }}/logs" -H 'Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}'
- name: Unzip logs
run: |
unzip logs.zip -d /tmp/logs/
Expand Down
29 changes: 12 additions & 17 deletions .github/workflows/packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ on:
required: true
type: number
default: 1
timeoutSeconds:
description: "Timeout in seconds for each test"
required: true
type: number
default: 120

jobs:
matrix-setup:
Expand Down Expand Up @@ -54,12 +59,11 @@ jobs:
docker exec $CONTAINER /usr/irissys/dev/Cloud/ICM/waitISC.sh
docker exec -i $CONTAINER iris session IRIS << EOF
zpm "list":1
zn "%SYS"
zpm "test zpm -v -only":1:1
EOF
docker container stop $CONTAINER
- name: Upload Image
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: zpmimage
path: /tmp/zpmimage.tar
Expand All @@ -78,7 +82,7 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Download Artifact
uses: actions/download-artifact@v2
uses: actions/download-artifact@v4
with:
name: zpmimage
path: /tmp
Expand Down Expand Up @@ -114,9 +118,10 @@ jobs:

echo "::group::Test package $package"
set +e
docker exec -i $CONTAINER iris session IRIS <<- EOF
zpm "install $package":1
zpm "$package test -only ${{ env.test-flags }}":1:1
timeout ${{ inputs.timeoutSeconds }}s docker exec -i $CONTAINER iris session IRIS <<- EOF
zpm "install $package":1
zpm "$package test -only ${{ env.test-flags }}":1:1
halt
EOF

if [ $? -ne 0 ]; then
Expand All @@ -134,14 +139,4 @@ jobs:
echo "::endgroup::"
done

IFS=' '

summarize:
needs:
- run-tests
runs-on: ubuntu-latest
steps:
- name: Call package-summary workflow
uses: ./.github/workflows/packages-summary.yml
with:
runId: ${{ github.run_id }}
IFS=' '
10 changes: 3 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Deprecated
-

## [Unreleased - 0.9.0+snapshot]
## [0.9.0] - 2024-12-16

### Added
- #364 Added ability to restrict the installation to IRIS or IRIS for Health platform to the SystemRequirements attribute
Expand All @@ -53,6 +53,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Fixed
- HSIEO-11006: Fix conditions for marking code as deployed
- HSIEO-10884: Bug Fix - FileCopy to check for $ variables in path
- HSIEO-11006: Fix conditions for marking code as deployed
- HSIEO-9269, HSIEO-9402: % percent perforce directories are no longer necessary
- HSIEO-9269, HSIEO-9404: Repo check should happen in the order to repo creation, not by repo name
- HSIEO-9269, HSIEO-9411: Make sure can load and export xml Package-type resource
Expand Down Expand Up @@ -89,11 +91,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- #606: Don't put garbage folders in tar archive
- #652: Don't create extra needless mappings (could cause deadlock with parallel installation of dependencies)

### Security
-

### Removed
-

### Deprecated
- #593 CSPApplication is deprecated in favor of WebApplication. User will be warned when installing a package containing CSPApplication.
4 changes: 3 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
version: '3'
services:
iris:
build: .
Expand Down Expand Up @@ -38,6 +37,9 @@ services:
volumes:
- ./:/home/irisowner/zpm/
- ./tests/sandbox/:/home/irisowner/sandbox/
command:
- -a
- iris session iris -U%SYS '##class(Security.Users).UnExpireUserPasswords("*")'
oras:
image: ghcr.io/project-zot/zot-linux-amd64:latest
ports:
Expand Down
1 change: 1 addition & 0 deletions module.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
<UnitTest Name="/tests/integration_tests/" Package="Test.PM.Integration" Phase="verify"/>
<Resource Name="/doc/README.txt"/>
<Invoke Class="IPM.Installer" Method="Map" Phase="Reload" When="Before" />
<Invoke Class="IPM.Installer" Method="MapIfLegacy" Phase="Compile" When="After" />
<Invoke Class="%IPM.Main" Method="UpdateLanguageExtensions" />
<Invoke Class="%IPM.Utils.Migration" Method="RunAll">
<Arg>${verbose}</Arg>
Expand Down
11 changes: 11 additions & 0 deletions preload/cls/IPM/Installer.cls
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@ ClassMethod ZPMInit(pRegistry As %String = "", pAnalyticsTrackingID As %String =
$$$QuitOnError(##class(%IPM.Repo.UniversalSettings).SetAnalyticsAvailable(1, 0))
$$$QuitOnError(##class(%IPM.Repo.UniversalSettings).SetAnalyticsTrackingId(pAnalyticsTrackingID, 0))
$$$QuitOnError(##class(%IPM.Repo.UniversalSettings).SetValue("ColorScheme","", 0))
$$$QuitOnError(##class(%IPM.Repo.UniversalSettings).SetValue("PipCaller", "", 0))
$$$QuitOnError(##class(%IPM.Repo.UniversalSettings).SetValue("UseStandalonePip", "", 0))
$$$QuitOnError(##class(%IPM.Repo.UniversalSettings).SetValue("SemVerPostRelease", 0, 0))
Quit $$$OK
}

Expand All @@ -115,6 +118,14 @@ ClassMethod ZPMCompile()
Quit ##class(%IPM.Main).Shell("ZPM compile")
}

ClassMethod MapIfLegacy()
{
If ##class(%IPM.Utils.Migration).HasLegacyZPMPackage() {
Quit ##class(%IPM.Main).Shell("enable -globally -map")
}
Quit $$$OK
}

ClassMethod EndCompile(qstruct) As %Status
{
#; Behave as simple installer
Expand Down
7 changes: 4 additions & 3 deletions scripts/setup-registry.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#!/bin/env iriscli

zpm "install zpm-registry"
/bin/env iriscli << EOF
zpm "install zpm-registry"
halt
EOF
15 changes: 15 additions & 0 deletions src/cls/IPM/DataType/RegExString.cls
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,19 @@ ClassMethod IsValid(%val As %CacheString) As %Status [ ServerOnly = 0 ]
return $$$OK
}

ClassMethod FromWildCard(wildcard As %String) As %String
{
Set regex = ""
For i=1:1:$Length(wildcard) {
Set char = $Extract(wildcard, i)
If char = "*" {
Set regex = regex_".*"
} Else {
Set regex = regex_char
}
}
// Is there a way to return an instance of this class instead of %String?
Quit "^(?i)"_regex_"$"
}

}
92 changes: 59 additions & 33 deletions src/cls/IPM/General/SemanticVersion.cls
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,16 @@ Property Patch As %Integer(MINVAL = 0) [ Required ];

Property Prerelease As %IPM.DataType.RegExString(MAXLEN = 100, REGEX = "([0-9A-Za-z-])+(\.([0-9A-Za-z-])+)*");

/// This is an alias for Prerelease. It is used for code readability when SemVerPostRelease is enabled.
Property Postrelease As %IPM.DataType.RegExString(MAXLEN = 100, REGEX = "([0-9A-Za-z-])+(\.([0-9A-Za-z-])+)*") [ Calculated, SqlComputeCode = { Set {*} = {Prerelease} }, SqlComputed, Transient ];

Property Build As %IPM.DataType.RegExString(MAXLEN = 100, REGEX = "([0-9A-Za-z-])+(\.([0-9A-Za-z-])+)*");

Method PostreleaseGet() As %IPM.DataType.RegExString
{
Quit ..Prerelease
}

Method ToString() As %String [ CodeMode = expression ]
{
..Major
Expand Down Expand Up @@ -116,6 +124,25 @@ Method Follows(pVersion As %IPM.General.SemanticVersion) As %Boolean
((..Major = pVersion.Major) && (..Minor > pVersion.Minor)) ||
((..Major = pVersion.Major) && (..Minor = pVersion.Minor) && (..Patch > pVersion.Patch))

// Handle post-releases if enabled. With this, post-releases are considered as higher version numbers.
If ##class(%IPM.Repo.UniversalSettings).GetValue("SemVerPostRelease") {
If tFollows {
Return 1
}
If (..Major < pVersion.Major) || (..Minor < pVersion.Minor) || (..Patch < pVersion.Patch) {
Return 0
}
// If it reaches here, major, minor, and patch are equal. We need to check post-releases.
If (..Postrelease = "") {
Return 0
} ElseIf (pVersion.Postrelease = "") {
Return 1
}
// If it reaches here, major, minor, and patch are equal. Both post-releases are non-empty. Compare them.
Return ..CompareDotSeparatedStrings(..Postrelease, pVersion.Postrelease)

}

// Handle prereleases - messy!!
Set tEquals = (..Major = pVersion.Major) && (..Minor = pVersion.Minor) && (..Patch = pVersion.Patch)
If (..Prerelease '= "") || (pVersion.Prerelease '= "") {
Expand All @@ -135,46 +162,45 @@ Method Follows(pVersion As %IPM.General.SemanticVersion) As %Boolean
// We are comparing equal versions where the earlier has a prerelease.
Quit 1
} Else{
// Both have a prerelease, and they're different.
// Compare dot-separated parts of the prerelease.
Set tFollows = 1
Set tThisParts = $ListFromString(..Prerelease,".")
Set tOtherParts = $ListFromString(pVersion.Prerelease,".")

Set tOtherHasData = 1
Set tThisPointer = 0
Set tOtherPointer = 0
While $ListNext(tThisParts,tThisPointer,tThisPart) {
Set tOtherHasData = $ListNext(tOtherParts,tOtherPointer,tOtherPart)
If 'tOtherHasData {
// The prerelease version has more parts for this one.
Return 1
}
If (tOtherPart = tThisPart) {
// Keep looking through dot-separated parts.
Continue
}

// "Collates after" operator works nicely here.
// e.g., the following are true: "beta" ]] 11, 11 ]] 2, 2 ]] 1
If (tThisPart ]] tOtherPart) {
Return 1
} Else {
Return 0
}
}
If tFollows && tOtherHasData && $ListNext(tOtherParts,tOtherPointer,tOtherPart) {
// If there are still dot-separated parts left in the prerelease of the version we are comparing to,
// it has more than this version, and therefore this version does not follow it.
Quit 0
}
Quit ..CompareDotSeparatedStrings(..Prerelease, pVersion.Prerelease)
}
} ElseIf tEquals {
Quit (pVersion.IsSnapshot() && '..IsSnapshot())
}
Quit tFollows
}

/// Compare two dot-separated strings (usually prerelease or postrelease identifiers).
Method CompareDotSeparatedStrings(pThis As %String, pOther As %String) As %Boolean
{
Set tThisParts = $ListFromString(pThis,".")
Set tOtherParts = $ListFromString(pOther,".")

Set tOtherHasData = 1
Set tThisPointer = 0
Set tOtherPointer = 0
While $ListNext(tThisParts,tThisPointer,tThisPart) {
Set tOtherHasData = $ListNext(tOtherParts,tOtherPointer,tOtherPart)
If 'tOtherHasData {
// The prerelease version has more parts for this one.
Return 1
}
If (tOtherPart = tThisPart) {
// Keep looking through dot-separated parts.
Continue
}

// "Collates after" operator works nicely here.
// e.g., the following are true: "beta" ]] 11, 11 ]] 2, 2 ]] 1
If (tThisPart ]] tOtherPart) {
Return 1
} Else {
Return 0
}
}
Return 0
}

Method Satisfies(pExpression As %IPM.General.SemanticVersionExpression) As %Boolean
{
Quit pExpression.IsSatisfiedBy($this)
Expand Down
5 changes: 3 additions & 2 deletions src/cls/IPM/General/SemanticVersionExpression/Comparator.cls
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,9 @@ Method Evaluate(pVersion As %IPM.General.SemanticVersion) As %Boolean
Set tEquals = tEquals && (val1 = val2)
}
}
If ($Extract(..Operator,1) = "=") {
// Means direct equality and not <= or >= so compare pre-release as well
If (+##class(%IPM.Repo.UniversalSettings).GetValue("SemVerPostRelease") = 0) || ($Extract(..Operator,1) = "=") {
// If SemVerPostRelease is disabled, then we should not consider post-release versions as equal to the base version
// ..Operator = "=" means direct equality and not <= or >= so compare pre-release as well
Set tEquals = tEquals && (pVersion.Prerelease = ..Prerelease)
}
If tEquals || (..Operator = "=") {
Expand Down
Loading
Loading