Package VoltScript Extensions
Note
VoltScript runtime does not yet support ARM processors.
Note
VoltScript Extensions can be scaffolded in VoltScript Interface Designer. You can also generate code skeletons and API documentation from VSID.
VoltScript Extensions are written in C/C++, which makes them platform, architecture, and processor-specific. In addition, dependencies may vary depending on what's automatically included in a specific platform. As a result, the VoltScript Build Manager code expects a zip file containing zips per platform/architecture/processor including all dependencies required.
The top-level zip file should be named VSENAME.zip. This should contain zips with VSENAME + "-" + platform code. The valid options for VoltScript are currently:
- linux-x64
- win64
Tip
Linux filenames are case-sensitive, so recommendation for the Linux zip file is to use lower-case.
Warning
ZipVSE cannot extract tar files, so use .zip files for all operating systems.
Example
JsonVSE
- JsonVSE.zip
- JsonVSE-win64.zip
- JsonVSE.dll
- jsonvse-linux-x64.zip
- jsonvse.so
- JsonVSE-win64.zip
WebVSE
- WebVSE.zip
- WebVSE-win64.zip
- WebVSE.dll
- libcurl-x64.dll
- webvse-linux-x64.zip
- libwebvse.so
- WebVSE-win64.zip
Tip
When naming VoltScript Extensions and zip files, bear in mind the following logic in VoltScript dependency management:
- Using module in
atlas.json
:- Download the zip using library and module.
- Extract it and look for a zip called -win64.zip or -linux-x64.zip.
- To update
seti.ini
, if there is only one file in the zip, use that. Otherwise, look for a file including the label for the JSON object in atlas.json.
Documentation for VoltScript Build Manager consumers
See information under references.
Publishing
Include in your documentation a JSON object for the repository consumers will need to add into their atlas.json.
Note
Always use an ID that will be unique for this URL, because consumers will need to add a corresponding entry with the same ID in their environment-wide atlas-settings.json.
GitHub
If you are publishing to GitHub or GitHub Enterprise, the type should be "github". The URL format varies depending on the environment:
- For github.com, the URL will be "https://api.github.com/repos/" + OWNER_NAME.
- For GitHub Enterprise Server, the URL will be "http(s)://HOSTNAME/api/v3/repos/" + OWNER_NAME.
Example:
Generic Web Server
For a generic web server or Domino database, the type should be "webserver". The URL will be appended with "/LIBRARY/VERSION/MODULE".
Tip
If you want to use Domino as a repository, you have two options:
- Create folders on the Domino server in
/data/domino folder. - Use an NSF and either:
- Open the Package Explorer view and add folders under the WebContent directory and drag your files in.
- Add as File Resources. This is the less recommended approach, because the File Resource name needs to include forward slashes to simulate a folder structure.
Volt MX Marketplace
VoltScript Extensions, which will typically not be open sourced, are hosted on Volt MX Marketplace. The completed zip can be uploaded to Volt MX Marketplace for approval.
After upload, you will be prompted to complete the submission form:
- the category should be "VoltScript Extensions".
- it should target the latest Volt MX Foundry.
- recommended practice is to make the name the VoltScript Extension name + " VoltScript Extensions".
- upload an image 400 x 300 pixels, typically we have used a screenshot of a snippet of implementation code.
- add links to documentation and API docs. Documentation will include the JSON consumers need to add.
- in the checkboxes lower down, ensure it targets Foundry and not Iris. This ensures it does not appear as a component in Iris.
- submit.
After approval, you will be able to access the download. Hovering on the "Download" button gives a URL. The JSON you provide for the user should be:
*VSENAME* {
"library": "FIRST_FIVE_DIGITS",
"version": "1.0.0",
"module": "NEXT_FIVE_DIGITS/LAST_FIVE_DIGITS",
"repository": "volt-mx-marketplace"
}
If in doubt, compare with the page on the Volt MX Marketplace for an existing HCL VoltScript Extension and the JSON in our documentation.