Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
## Changes
- Ticket:
[sc-73085-add-support-for-discussionforumurl-in-demo](https://app.shortcut.com/xanaduai/story/73085/add-support-for-discussionforumurl-in-demo-metadata-files)
- Added support for `discussionForumUrl` field in `metadata.json` files
for demos
- This can be used to link a specific discussion forum thread to a demo
- Bumped schema version to `0.1.2`

## Testing
- `"discussionForumUrl":
"https://discuss.pennylane.ai/c/pennylane-help/5"` - Passes ✅
- [Action
Run](https://github.com/PennyLaneAI/qml/actions/runs/10943682894/job/30383786592)
- `"discussionForumUrl": "https://pennylane.ai/c/pennylane-help/5"` -
Fails ❌
- [Action
Run](https://github.com/PennyLaneAI/qml/actions/runs/10943718222/job/30383899155)

---------

Co-authored-by: Paul Finlay <[email protected]>
  • Loading branch information
ashishks0522 and doctorperceptron authored Sep 19, 2024
1 parent c74fab7 commit 9b43399
Show file tree
Hide file tree
Showing 2 changed files with 136 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .github/workflows/validate-demo-metadata.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ jobs:
METADATA_FILE_LIST: ${{ needs.generate-metadata-file-list.outputs.metadata_files }}
run: |
cd metadata_schemas
${{ steps.poetry.outputs.bin }} run check-jsonschema -v --traceback-mode full --schemafile demo.metadata.schema.0.1.1.json $METADATA_FILE_LIST
${{ steps.poetry.outputs.bin }} run check-jsonschema -v --traceback-mode full --schemafile demo.metadata.schema.0.1.2.json $METADATA_FILE_LIST
validate-metadata-preview-images:
runs-on: ubuntu-latest
Expand Down
135 changes: 135 additions & 0 deletions metadata_schemas/demo.metadata.schema.0.1.2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "demo.metadata.schema.0.1.2.json",
"title": "Demo Metadata",
"description": "A QML demo's metadata",
"type": "object",
"properties": {
"title": {
"description": "The title of the demo.",
"type": "string",
"minLength": 2
},
"authors": {
"description": "The author(s) of the demo. This array must contain at least one item.",
"type": "array",
"items": {
"oneOf": [
{
"$ref": "file:./objects/author.schema.0.1.0.json"
},
{
"$ref": "file:./objects/author.schema.0.2.0.json"
}
]
},
"minItems": 1
},
"dateOfPublication": {
"description": "The date on which the demo was first published, in the form YYYY-MM-DDTHH:MM:SS+00:00.",
"type": "string",
"format": "date-time",
"minLength": 25,
"maxLength": 25
},
"dateOfLastModification": {
"description": "The date on which the demo was last modified, in the form YYYY-MM-DDTHH:MM:SS+00:00.",
"type": "string",
"format": "date-time",
"minLength": 25,
"maxLength": 25
},
"categories": {
"description": "An array of the categories that this demo is in.",
"type": "array",
"items": {
"enum": [
"Algorithms",
"Getting Started",
"Optimization",
"Quantum Machine Learning",
"Quantum Chemistry",
"Devices and Performance",
"Quantum Computing",
"Quantum Hardware",
"How-to"
]
},
"minItems": 0
},
"tags": {
"description": "An array of the tags that the demo has. An empty array is allowed.",
"type": "array",
"items": {
"type": "string"
}
},
"previewImages": {
"description": "An array of the different images that can be used as previews for this demo - e.g., thumbnails, social media cards (perhaps of different aspect ratios).",
"type": "array",
"items": {
"$ref": "file:./objects/preview.image.schema.0.1.0.json"
},
"minItems": 1
},
"seoDescription": {
"description": "A description of the demo suitable for SEO purposes. Ideally this should be less than 150 characters, but this is not a strict limit. It should be a full, grammatically-correct sentence ending in a full stop.",
"type": "string",
"minLength": 2
},
"doi": {
"description": "The DOI for the demo.",
"type": "string",
"pattern": "^$|^10[.]"
},
"canonicalURL": {
"description": "The canonical URL for the demo. Sometimes there might be more than one URL that points to a given page on a website. The canonical URL defines which of these should be thought of as the primary or main one.",
"type": "string",
"pattern": "(^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6})?\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)"
},
"references": {
"description": "An array of the references used for the demo.",
"type": "array",
"items": {
"$ref": "file:./objects/reference.schema.0.1.0.json"
}
},
"basedOnPapers": {
"description": "An array of the DOIs for the papers the demo is based on. An empty array is allowed.",
"type": "array",
"items": {
"type": "string"
}
},
"referencedByPapers": {
"description": "An array of the DOIs of any papers that reference the demo. An empty array is allowed.",
"type": "array",
"items": {
"type": "string"
}
},
"relatedContent": {
"description": "An array of objects describing the content related to the demo. An empty array is allowed.",
"type": "array",
"items": {
"$ref": "file:./objects/related.content.schema.0.1.0.json"
}
},
"hardware": {
"description": "An array of objects representing third-party vendors who can run the demo on their hardware. An empty array is allowed.",
"type": "array",
"items": {
"$ref": "file:./objects/hardware.schema.0.1.0.json"
}
},
"discussionForumUrl": {
"description": "Link to dedicated discussion forum thread on https://discuss.pennylane.ai/ for this demo",
"type": "string",
"format": "uri",
"pattern": "(^https?:\/\/(www.)?discuss.pennylane.ai(?:\/.*)?$)"
}
},
"required": [
"title", "authors", "dateOfPublication", "dateOfLastModification", "categories", "tags", "previewImages", "seoDescription", "doi", "canonicalURL", "references", "basedOnPapers", "referencedByPapers", "relatedContent"
]
}

0 comments on commit 9b43399

Please sign in to comment.