This is a "GitHub Action" repository. The Action aims to validate the metadata of add-ons submitted to NVDA's add-on store.
- Check that the added metadata:
- Conforms with the addonVersion_schema.json file.
- File has the correct path and name:
addon1/majorVersion.minorVersion.patch.json - Download URL is valid:
- Must start with "https://" and end with".nvda-addon"
- The
*.nvda-addonfile can be downloaded
- The Sha256 of the downloaded
*.nvda-addonfile matches.
- Check data matches the addon's manifest file.
- The manifest exists in the downloaded
*.nvda-addonfile and can be loaded by theAddonManifestclass. - The submission addonName matches the manifest summary field
- The submission description matches the manifest description field
- The homepage URL matches the manifest URL field
- The addon versions match
- The last tested & minimum required versions are valid NVDA API versions.
- The manifest exists in the downloaded
If all is valid, "Congratulations: manifest, metadata and file path are valid" is printed.
- Python.
- Tested with: 3.13, 64 bit
To try validating an addon submission on your own machine.
From cmd.exe:
- Clone this repo:
git clone https://github.com/nvaccess/addon-datastore-validation.git - From the repo folder, run:
runvalidate <pathToAddonMetadataFile.json> <pathToFileWithAPIVersions.json>
To test the scripts used in this action, you can run the unit tests.
- Install uv
To keep a consistent style within the Python files of this Action, linting is used:
- Use cmd.exe
cdto the repo folderrunlint
To get the sha256 of a file:
- Use cmd.exe
runsha <path\to\filename>