Nexus is not listed in https://oras.land/adopters/ but OCI support is mentioned e.g. here: https://www.sonatype.com/blog/sonatype-nexus-repository-as-a-container-…
- Log in to post comments
Nexus is not listed in https://oras.land/adopters/ but OCI support is mentioned e.g. here: https://www.sonatype.com/blog/sonatype-nexus-repository-as-a-container-…
Just noticed https://github.com/intersystems/ipm/pull/541 that is bringing in OCI support.
I know nothing about OCI/ORAS except what I just read from here: https://oras.land/docs/
Do I conclude correctly this will enable Nexus/Artifactory support?
I made an issue: https://github.com/intersystems/ipm/issues/606
Yeah, figured it out. The path have to point to either an empty existing directory or to an non-existing directory.
zpm:IPMTEST1>package -verbose -only -path /home/irisowner/module-package/ osex-ipm-hello
[IPMTEST1|osex-ipm-hello] Package START
Exporting 'OSEX.ipm.hello.Hello.cls' to '/home/irisowner/module-package/src/OSEX/ipm/hello/Hello.cls'
Exported to /home/irisowner/module-package/module.xml
Module exported to:
/home/irisowner/module-package/
Module package generated:
/home/irisowner/module-package.tgzHowever I see the following problems:
It's undocumented the name of the package is derived from the directory name.
The created directory structure is not cleaned after successful run.
The tar package contains unnecessary directories:
$ tar zvtf module-package.tgz drwxr-xr-x 0/0 0 2024-10-30 07:51 module-package drwxrwxr-x 0/0 0 2024-10-30 07:51 src//src drwxrwxr-x 0/0 0 2024-10-30 07:51 src/OSEX//OSEX drwxrwxr-x 0/0 0 2024-10-30 07:51 src/OSEX/ipm//ipm drwxrwxr-x 0/0 0 2024-10-30 07:51 src/OSEX/ipm/hello//hello -rwxr-xr-x 0/0 111 2024-10-30 07:51 src/OSEX/ipm/hello//Hello.cls -rwxr-xr-x 0/0 494 2024-10-30 07:51 module.xml
I'm expecting only src/OSEX/ipm/hello directory.
No luck, do I have to sign in to YouTube?
This is a private video. Please sign in to verify that you may see it.
In fact The Global Summit 2024 YouTube playlist says: "46 unavailable videos are hidden".
The $system.OBJ.Export documentation doesn't mention LUT. However there is a vague statement:
Each of the items must have a type determined by an extension selected from the following list of basic types, additional types are supported under the abstract routine interface, so this list is not exhaustive.
Is LUT one of those additional types? What is that abstract routine interface? Why it is not possible to list those additional types here too?
Just for the record the types mentioned in the documentation at the moment of writing:
- CLS - Classes
- CSP - Server Pages
- CSR - Rule files
- MAC - Macro routines
- INT - Non-macro routines
- BAS - Basic routines
- INC - Include files
- GBL - Globals
- PRJ - Projects
- OBJ - Compiled object code
- PKG - Package definitions
🤦♂️Yes, now works fine, thanks!
The version command also complains about something but is not providing too much details. I'm assuming the problem have to be related to the local repository:
zpm:IPMTEST1>version %SYS> zpm 0.7.3 IPMTEST1> zpm-registry 1.3.2 https://pm.community.intersystems.com - 1.0.6 ERROR! Registry server not available. zpm:IPMTEST1>
This is ObjectScript only. The other unit testing framework is in-house developed non-public xUnit like unit testing framework. It was developed before %UnitTest exists and I'm just wondering would it be possible to use TestCoverage with it. Unfortunately my ObjectScript skills are still lacking so it's a bit hard for me to figure that out from the code. The long term goal might be to try to adjust these two things to work together.
i was inspired by your post as I have an idea to use ObjectScript code to control WireMock during unit testing. So I checked the documentation of Ens.Util.Pipe to notice it's not much help for me :(
So let's ask from community AI: https://community.intersystems.com/ask-dc-ai?question_id=242465
how i can use Ens.Util.Pipe to run a command line program?
I got answer that seems to do the job (I don't know, I haven't tried it yet, but bookmarked) but it doesn't help me with the Ens.Util.Pipe class.
Let's try another way: https://community.intersystems.com/ask-dc-ai?question_id=242514
show me an example how to use RunCommand class method of Ens.Util.Pipe class
This is beyond my current knowledge. Please ask the Developer Community for further assistance.
So in this case the AI tool is not yet a magical replacement for missing/lacking documentation :(
What I'm missing here as all I get is SQL Error [7001] [07001]: Parameter list mismatch. ?
OSEX>zw ^foo
^foo(1)="one"
^foo(2)="two"CALL %Library.Global_Find('OSEX','^foo','1')
-- returns error:
-- SQL Error [7001] [07001]: Parameter list mismatch.Relevant documentation for reference:
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…
AFAICS the documentation says nothing about the relationship between OriginalFilename property and %f specifier.
Argh. Ens.StreamContainer#StreamSet silently overwrites OriginalFilename property.
Filename (%f) is empty:
// in is a character stream
#dim exportRequest = ##class(Ens.StreamContainer).%New()
set exportRequest.OriginalFilename = "foo"
set status = exportRequest.StreamSet(in)
Filename (%f) is "foo":
// in is a character stream
#dim exportRequest = ##class(Ens.StreamContainer).%New()
set status = exportRequest.StreamSet(in)
set exportRequest.OriginalFilename = "foo"Yes that works, but I don't think the documentation agrees. https://docs.intersystems.com/irislatest/csp/documatic/%25CSP.Documatic… says:
The %f specifier if present will be replaced with the name of the document's original source filename (stripped of certain characters in target filenames - see CharacterSetToRemove)
If I can't set "the name of the document's original source filename" then IMO the documentation is wrong.
Based on the hint from @Stephen Canzano I figured out the following examples that seems to do the job:
/// How to programmatically access External-Service Registry:
/// https://docs.intersystems.com/irisforhealth20221/csp/docbook/DocBook.UI.Page.cls?KEY=EESB_registry_admin#EESB_registry_admin_external
Class OSEX.Ex.ExternalServiceRegistry Extends %RegisteredObject
{
/// list services
ClassMethod Ex1()
{
#dim services // md
do ##class(Ens.ServiceRegistry.External.API).ListServices(.services)
#dim id as %Integer = $order(services(""))
while (id '= "" ) {
#dim val as %DynamicObject = {}.%FromJSON($get(services(id)))
write "--------------------",!
write "#"_id_" Name: "_val.Name,!
write "#"_id_" Domain: "_val.Domain,!
write "#"_id_" Version: "_val.Version,!
write "#"_id_" exists: "_##class(Ens.ServiceRegistry.External.API).ExistsService(val.Name,val.Domain,val.Version),!
write "#"_id_" json: "_val.%ToJSON(),!
set id = $order(services(id))
}
//zw services
}
/// add/modify service
ClassMethod Ex2()
{
#dim service = ##class(%ZEN.proxyObject).%New()
set service.Name = "Foo Service"
set service.Domain = "OSEX"
set service.Version = "1"
set service.Endpoint = "http://localhost:8080/foo"
set service.Protocol = "REST"
set service.ResponseStyle = "Sync"
set service.Stage = "Live"
zw service
#dim status as %Status = ##class(Ens.ServiceRegistry.External.API).SaveService(service)
zw status
set service.Name = "Bar Service"
set service.Endpoint = "http://localhost:8080/bar"
zw ##class(Ens.ServiceRegistry.External.API).SaveService(service)
}
/// delete service
ClassMethod Ex3()
{
#dim pid as %String = "Foo Service||OSEX||1"
#dim status as %String = ##class(Ens.ServiceRegistry.External.API).DeleteService(pid)
zw status
}
}
In my setup no such class exists. The correct class seems to be Ens.ServiceRegistry.External.API. API-class seems to be a mixed bag of public programming interface methods and private implementation ([Internal] methods).
Sounds like a perfect case for XSLT that is a special purpose language for transforming XML documents. See Performing XSLT Transformations to get started with XSLT In IRIS.
Is UserErrors a magic string that somehow connects the message dictionary with $system.Status?
I don't see the string mentioned in https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GSTRLOC_msgdict nor anywhere in the documentation.
I was able to google https://community.intersystems.com/post/registering-new-error-code-and-error-message that seems identical to this post.
About your second point: If you are new to git I recommend studying a git tutorial to get the basics and terminology right. When you know how git works most of those menu options will become self-evident as they match standard git operations. The internet has plenty of git material but one "authoritative" source and a good starting point is https://git-scm.com/book/en/v2
Is Closure a spelling mistake? Do you mean Clojure (https://clojure.org/) instead?