@pasqal-io/pulser-schema
v1.3.2
Published
Schema definitions and validation utils for the Pulser sequence format. See https://github.com/pasqal-io/Pulser
Maintainers
Keywords
Readme
Pulser schema
Schema for the serialization of Pulser objects into the abstract representation.
This project uses TypeScript type definition as a main definition file. The JSON schema files are automatically generated from it.
Build automation and verification
The JSON schema files are generated and verified automatically on every push to the repository.
In order to download the latest version of the generated schema files, open latest run from main branch and download the produced schema artifacts.
Dependencies
This project uses node dependencies in order to generate the schema files. In order to run the codegen scripts, the project must be installed. This process is only required if you intend to build or verify the schemas locally.
npm installCode generation
Sequence and Device schemas are created as Typescript type definitions. To generate both JSON schemas, run npm run codegen.
Javascript validator
This project can be used to generate a Pulser Sequence validator for JS/TS applications. This validator is currently used by Pulser Studio to validate and parse sequences.
Validator generation
The validator is not part of the source code, it's generated by the AJV tool, using schema definitions.
It can be built with the following commands:
# make sure JSON schemas are built
npm run codegen
# generate schemaValidator.js + Typescript defs in /build
npm run gen-standalone-validatorNPM package update process
The validator is part of this project when published as @pasqal-io/pulser-schema on NPM. It's automatically regenerated on publish, thanks to the prepare script.
So, after Pulser schema changes are merged, the NPM package needs to be updated to keep the validator up-to-date.
- Update the package version:
npm version <new version> -m "NPM package version: <new version>"This will bump the version number in package.json and create a commit with the provided message.
- Publish the new version to NPM (you must be a member of the Pasqal-io organization):
npm publish --access public- If publish went right, open an MR to merge this version bump.
- Update the version of the
@pasqal-io/pulser-schemapackage in projects having it as a dependency
