Each submission to the addon-datastore is structured as a JSON file, containing all the metadata needed for the NVDA Add-on Store.
For a full description of the schema see the _validate/addonVersion_schema.json file. It includes an example of the file contents.
The ID for the addon. This should match the name field in the addon manifest and the folder name for the submission. The suggested convention is a camelCaseName.
Example: easyAddonTech
Should be "stable", "beta" or "dev"
.
Stable: Suggested for add-on versions which are stable, and have been tested with a stable version of NVDA.
Beta: Suggested for getting add-on feedback from early adopter users before publishing an add-on as stable. Suggested for testing with stable, beta or rc NVDA releases.
Dev: This channel is suggested to be used with any preview or pre-release version of NVDA. This is useful for testing compatibility breaking changes in an API breaking release cycle, and unreleased additions to the NVDA API.
The version of the add-on, as a major-minor-patch dictionary. Add-on versions are expected to be unique for the addonId, meaning that a beta, stable and dev add-on version cannot share a version number. This is so there can be a unique ordering of newest to oldest. Add-on versions should be released in order, newer versions will encourage an update. Users may be able to upgrade across channels in future.
The suggested convention is to increment the patch version number for dev versions, increment the minor version number for beta versions, and increment the major version number for stable versions.
Example:
{
"major": 21,
"minor": 6,
"patch": 0
}
The addon version being released.
Should be in the form "<major>.<minor>.<patch>
" or "<major>.<minor>
".
Must match the version in the addon manifest.
Examples: 21.6.0
, 21.6
, 21.06
.
The name that will be displayed in English for the addon. Must match the summary in the addon manifest.
Example: "Easy Addon"
The name of the individual, group, or company responsible for the addon.
Example: "NV Access"
The English description of the addon that will be displayed for the addon.
Example: "Makes doing XYZ easier"
If the addon has a homepage where users can get more information about the addon, you can specify it here. Must match the url in the addon manifest, which is optional.
Example: "https://github.com/nvaccess/addon-datastore"
The add-on will not work with versions of NVDA prior to this version. Must be a valid NVDA API version. Must match the minimumNVDAVersion in the addon manifest. Valid NVDA API versions are listed in nvdaAPIVersions.json.
Example:
{
"major": 2021,
"minor": 1,
"patch": 0
}
The add-on has been tested up to and including this version of NVDA. Must be a valid NVDA API version. Must match the lastTestedNVDAVersion in the addon manifest. Valid NVDA API versions are listed in nvdaAPIVersions.json.
Example:
{
"major": 2020,
"minor": 4,
"patch": 0
}
To allow directly downloading the *.nvda-addon file. The URL should remain valid indefinitely. GitHub release URLs are recommended.
Example: "https://github.com/nvaccess/addon-datastore/releases/download/v0.1.0/myAddon.nvda-addon"
The SHA256 checksum for the *.nvda-addon file. To calculate a SHA256 sum on Windows, run the following from command prompt:
certutil -hashfile <pathToAddonFile.nvda-addon> SHA256
Example: "69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C82"
Allows reviewers to inspect the source code for common issues.
Example: "https://github.com/nvaccess/addon-datastore/"
The short name of the license
Example: "GPL v2"
Optional. A URL to the full license for the addon.
Example: "https://github.com/nvaccess/addon-datastore/license.MD"
Optional. A URL to the discussion comment to review the add-on version.
Example: "https://github.com/nvaccess/addon-datastore/discussions/1942#discussioncomment-7453248"