Introduction
Each extension must contain a description file that contains the information required for each extension to function correctly. The requirements for this file are listed below:
Description file name
The description file must be named plugin.nuspec.
Description file location
Please place the plugin.nuspec file at the root of your extensions folder:
Description file content
The plugin.nuspec file should be encoded in utf-8 without BOM and must contain the following elements:
Please note:
- The complete nuspec format documentation is available here : http://docs.nuget.org/create/nuspec-reference
- Please note that this file is mandatory and all the fields are required.
Element | Description |
---|---|
id | The id of the extension:
For example:
|
title | The extension's title. CAST recommends using a meaningful title. For example:
|
version | The extension version number. This must use the format defined by Semantic Versioning 2.0.0. For example: 1.0.0. Please follow the versioning policy defined within your own team. Maximum length is 30. The Stable versus Pre-Release versions is encoded inside the version itself, following the Semantic Versioning conventions also:
For example:
For User Community extensions CAST recommends not using intermediate version numbering such as: alphas, betas and functional releases - a simple version number (such as 1.3.0) is sufficient (the versions provided by the User Community do not follow a standard product development process with the release of the alphas, betas etc versions therefore this numbering is not necessary). |
authors | The author of the extension using an email address. Multiple email addresses should be separated by a comma. However in the case of CAST provided extensions the following values are recommended:
|
owners | The owner of the extension. In the case of official CAST extensions the owner is always "CAST". |
projectUrl | Each extension must include a link to the related extension documentation. The documentation, stored in a separate page (which MUST BE FREELY AVAILABLE ON THE INTERNET) must include the following information:
Publication:
|
iconUrl | Each extension must include a link to an icon that will be displayed in CAST Console, CAST Extend etc. See Configuring an icon for your extension. |
description | A quick description of the extension. This description is displayed in the CAST Extension Downloader, therefore cannot exceed 200 characters. The description must contain a few details about the extension, which scenarios the extension can be used in, what results should be expected and how the results generated by the extension impact the results of the entire analysis. |
releaseNotes | A link to a a description of the changes made in each release of the package. This field only shows up when the _Updates_ tab is selected and the package is an update to a previously installed package. It is displayed where the Description would normally be displayed. |
dependencies | This element configured the dependencies required by the extension - i.e. which other extensions must be installed and which release of CAST AIP is required (this is mandatory). For example if an extension is compliant with CAST AIP 7.3.6 and/or 8.0.0 then this should be added here. This element also provides the possibility to declare dependencies between extensions. |
licenseUrl | This concerns the type of license. In the case of CAST extensions provided by the Product team the license is a CAST standard license. In all the other cases, the author must add a link to a chosen license. |
tags | A space-delimited list of tags and keywords that describe the package. This information is used to help make sure users can find the package using searches. You are free to add any tag you wish to help describe your extension, however, CAST requires that you use at least one tag from a set of mandatory categories described in Extension tags. |
Example templates
CAST Product extensions
Please find below an example plugin.nuspec file that is used with "official" CAST AIP extensions created by CAST R&D:
<?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <id>com.castsoftware.nameoftheextension</id> <version>x.x.x</version> <title>MyExtension</title> <authors>CAST Product</authors> <owners>CAST</owners> <licenseUrl>https://extend.castsoftware.com/V2/Licenses/Cast-Licence-Product-1.0.html</licenseUrl> <projectUrl>https://doc.castsoftware.com/display/TECHNOS</projectUrl> <iconUrl>https://raw.githubusercontent.com/CAST-Extend/com.castsoftware.nameoftheextension/master/example.png</iconUrl> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>This is a great extension that creates great objects and even greater links</description> <releaseNotes>https://doc.castsoftware.com/display/TECHNOS/PHP/What's+new</releaseNotes> <tags>CASTProduct LongTerm CAIP8.0 CAIP7.3</tags> <dependencies> <dependency id="CAIP" version="8.0.0" /> </dependencies> </metadata> </package>
CAST Labs extensions
Please find below an example plugin.nuspec file that should be used with custom CAST AIP extensions created by CAST Labs:
<?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <id>com.castsoftware.labs.nameoftheextension</id> <version>x.x.x</version> <title>MyExtension</title> <authors>CAST Labs</authors> <owners>CAST</owners> <licenseUrl>http://www.castsoftware.com/ps/doc/extension/license</licenseUrl> <projectUrl>https://github.com/CAST-Extend/com.castsoftware.labs.nameoftheextension</projectUrl> <iconUrl>https://raw.githubusercontent.com/CAST-Extend/com.castsoftware.labs.nameoftheextension/master/example.png</iconUrl> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>This is a great extension that creates great objects and even greater links</description> <releaseNotes>https://github.com/CAST-Extend/com.castsoftware.labs.nameoftheextension/wiki#a-specific-release-note-subsection</releaseNotes> <tags>Language FP CSS CAIP8.0.x</tags> <dependencies> <dependency id="CAIP" version="8.0.0" /> </dependencies> </metadata> </package>
User Community extensions
Please find below an example plugin.nuspec file that should be used with custom CAST AIP extensions created by the User Community:
<?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <id>com.castsoftware.uc.nameoftheextension</id> <version>x.x.x</version> <title>MyExtension</title> <authors>User Community</authors> <owners>CAST</owners> <licenseUrl>http://www.castsoftware.com/ps/doc/extension/license</licenseUrl> <projectUrl>https://github.com/CAST-Extend/com.castsoftware.uc.nameoftheextension</projectUrl> <iconUrl>https://raw.githubusercontent.com/CAST-Extend/com.castsoftware.uc.nameoftheextension/master/example.png</iconUrl> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>This is a great extension that creates great objects and even greater links</description> <releaseNotes>https://github.com/CAST-Extend/com.castsoftware.uc.nameoftheextension/wiki#a-specific-release-note-subsection</releaseNotes> <tags>Language FP CSS CAIP8.0.x</tags> <dependencies> <dependency id="CAIP" version="8.0.0" /> </dependencies> </metadata> </package>