From 6d9c4383e02a2e1d923bc64cb4c8a99ba3d2d872 Mon Sep 17 00:00:00 2001 From: Matthew Evans Date: Tue, 6 Dec 2022 14:29:22 +0000 Subject: [PATCH 01/11] Bump schema version numbers to 1.2.0~develop --- schemas/index_openapi_schema.json | 2 +- schemas/openapi_schema.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/schemas/index_openapi_schema.json b/schemas/index_openapi_schema.json index 8eb692156..4772998da 100644 --- a/schemas/index_openapi_schema.json +++ b/schemas/index_openapi_schema.json @@ -3,7 +3,7 @@ "info": { "title": "OPTIMADE API - Index meta-database", "description": "The [Open Databases Integration for Materials Design (OPTIMADE) consortium](https://www.optimade.org/) aims to make materials databases interoperational by developing a common REST API.\nThis is the \"special\" index meta-database.\n\nThis specification is generated using [`optimade-python-tools`](https://github.com/Materials-Consortia/optimade-python-tools/tree/v0.16.0) v0.16.0.", - "version": "1.1.0~develop" + "version": "1.2.0~develop" }, "paths": { "/info": { diff --git a/schemas/openapi_schema.json b/schemas/openapi_schema.json index 5eda933b9..964e4b40d 100644 --- a/schemas/openapi_schema.json +++ b/schemas/openapi_schema.json @@ -3,7 +3,7 @@ "info": { "title": "OPTIMADE API", "description": "The [Open Databases Integration for Materials Design (OPTIMADE) consortium](https://www.optimade.org/) aims to make materials databases interoperational by developing a common REST API.\n\nThis specification is generated using [`optimade-python-tools`](https://github.com/Materials-Consortia/optimade-python-tools/tree/v0.16.0) v0.16.0.", - "version": "1.1.0~develop" + "version": "1.2.0~develop" }, "paths": { "/info": { From 8affb8d358392aa927a585150b3e86c1d0cf5cd3 Mon Sep 17 00:00:00 2001 From: Matthew Evans Date: Tue, 6 Dec 2022 14:29:34 +0000 Subject: [PATCH 02/11] Bump spec version number to 1.2.0~develop --- optimade.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/optimade.rst b/optimade.rst index 4131c8bf2..2759d4232 100644 --- a/optimade.rst +++ b/optimade.rst @@ -1,5 +1,5 @@ ========================================= -OPTIMADE API specification v1.1.0~develop +OPTIMADE API specification v1.2.0~develop ========================================= .. comment From 58cf66b6b2b6ac6bbf8849a88b9737360576f464 Mon Sep 17 00:00:00 2001 From: Matthew Evans Date: Tue, 6 Dec 2022 14:29:45 +0000 Subject: [PATCH 03/11] Add draft CHANGELOG --- CHANGELOG.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 663a46072..81bac1b0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,29 @@ # Changelog +## v1.2.0-rc.1 (December 2022) + +This is release v1.2.0-rc.1 of the OPTIMADE API specification. + +This minor release adds significant but optional new functionality to the specification, as well as providing several clarifications to existing behaviour. + +### New features + +- **Property definitions** ([#376](https://github.com/Materials-Consortia/OPTIMADE/pull/376)). +A new section titled [Property Defintions](https://github.com/Materials-Consortia/OPTIMADE/blob/develop/optimade.rst#property-definitions) has been added to the specification which significantly extends the way in which implementations can define and describe the custom properties they serve, including URIs, unit definitions, API support levels (for querying and sorting) as well as full support for JSON Schema constructs for describing the JSON representation of the property. +- **Files endpoint** ([#360](https://github.com/Materials-Consortia/OPTIMADE/pull/360)). +The `/files` endpoint and corresponding [`files` entry +type](https://github.com/Materials-Consortia/OPTIMADE/blob/develop/optimade.rst#files-entries) has been added to provide a robust way of linking entries to arbitrary file-based data relevant to the entry, such as alternative crystal structure representation formats, input or output files from computational procedures, or experimental data files. +- **Boolean values** ([#348](https://github.com/Materials-Consortia/OPTIMADE/pull/348)). +[Boolean values](https://github.com/Materials-Consortia/OPTIMADE/blob/develop/optimade.rst#comparisons-of-boolean-values) were overlooked in the first version of the filter grammar as no OPTIMADE fields required them. +This functionality has been introduced for boolean fields using the syntax `TRUE` and `FALSE`. +Only strict equality (`=`) and inequality (`!=`) comparisons on individual fields are supported. +- **Fuzzy comparisons on lists** ([#415](https://github.com/Materials-Consortia/OPTIMADE/pull/415)) +String comparisons like `CONTAINS`, `STARTS WITH` and `ENDS WITH` are now compatible with list filter operations like `HAS`, `HAS ALL` etc. +- **Backoff time** ([#411](https://github.com/Materials-Consortia/OPTIMADE/pull/411)): +- **Database licenses** ([#414](https://github.com/Materials-Consortia/OPTIMADE/pull/414)): +- **Symmetry data** ([#405](https://github.com/Materials-Consortia/OPTIMADE/pull/405)): + + ## v1.1.0 (July 8, 2021) This is release v1.1.0 of the OPTIMADE API specification. From f02c7a87689f2ee39713c418f2d583d0a885b2d1 Mon Sep 17 00:00:00 2001 From: Matthew Evans Date: Tue, 6 Dec 2022 14:59:14 +0000 Subject: [PATCH 04/11] Tweak README --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 126d9548c..08748ba5d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,11 @@ -# OPTIMADE +
+ +
+ +

+The OPTIMADE Specification +

+ The Open Databases Integration for Materials Design (OPTIMADE) consortium aims to make materials databases interoperational by developing a common REST API. From fa4300e88ee084cbd70629a5f459faa51bc7a688 Mon Sep 17 00:00:00 2001 From: Matthew Evans Date: Tue, 20 Dec 2022 15:59:59 +0100 Subject: [PATCH 05/11] Update spellchecker words list so current spec passes `make spell` --- .words.lst | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/.words.lst b/.words.lst index c6ab39a03..5325fe295 100644 --- a/.words.lst +++ b/.words.lst @@ -1,6 +1,8 @@ -personal_ws-1.1 en 163 +personal_ws-1.1 en 205 +ABNF ACM Aa +Acta Ao BaCa BadLuck @@ -12,9 +14,12 @@ CSV CaCO ClNa ClosingBrace +CommonMark ConstantFirstComparison +Cryst EREs Edsger +EqualityOperator EscapedChar ExpressionClause ExpressionPhrase @@ -36,12 +41,17 @@ NaO OpenAPI OpeningBrace OperatorComparison +OrderedConstant +OrderedValue +POSCAR POSIX PredicateComparison PropertyFirstComparison PropertyZipAddon Punctuator RST +RelativeComparisonOperator +SPDX Schmit SetOpRhs SetZipOpRhs @@ -52,10 +62,14 @@ UTC UUID UnescapedChar UnicodeHighChar +UnorderedConstant Unversioned UppercaseLetter +ValueEqRhs ValueList +ValueListEntry ValueOpRhs +ValueRelCompRhs ValueZip ValueZipList Za @@ -65,28 +79,39 @@ alphanumerics annote antlr api +atime backend +backends bandgap bd booktitle boolean calc cartesian +checksums +cif conformant cr crossref css csv +ctime deNOx dec denox dep +dependentRequired dimensionality discoverability discoverable doi downloadable +eb ebnf +edf +enum +exclusiveMaximum +exclusiveMinimum exmpl fieldname firstname @@ -108,15 +133,25 @@ libc lst lt maintainer's +maxItems +maxLength +maxProperties +md metadata +minItems +minLength +minProperties mistyped +mtime multi +multipleOf namespace namespaces nattached nbsp nelements nl +nonperiodic nperiodic nsites occupancies @@ -131,11 +166,13 @@ pre prepended prepending prev +qudt queryable rc regex renormalize sectnum +sha sortable spacegroup structs @@ -146,10 +183,15 @@ supercell testdb timestamp timestamps +ucum +uniqueItems unrequested unversioned +uri +uris url urls +uuid vMAJOR versioning vnd From 5f4eb7d70cfaa8d5cd1b0435cd21dbf68e2fdd8f Mon Sep 17 00:00:00 2001 From: Matthew Evans Date: Tue, 20 Dec 2022 16:04:49 +0100 Subject: [PATCH 06/11] Update AUTHORS --- AUTHORS | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/AUTHORS b/AUTHORS index 3ef04668e..d95699bd4 100644 --- a/AUTHORS +++ b/AUTHORS @@ -3,12 +3,15 @@ The OPTIMADE API has been developed with contributions by the participants of th - the CECAM in Lausanne, Switzerland from 2018-06-11 to 2018-06-15 - the CECAM in Lausanne, Switzerland from 2019-06-11 to 2019-06-14 - the CECAM in Lausanne, Switzerland (virtually) 2020-06-08 to 2020-06-12 +- the CECAM in Lausanne, Switzerland (virtually) 2021-06-07 to 2021-06-11 +- the CECAM in Lausanne, Switzerland 2022-05-30 to 2022-06-03 Contributors to the development of the OPTIMADE specification and implementation in alphabetical order: Casper Andersen Thomas Archer Rickard Armiento Rossella Aversa +Johan Bergsma Evgeny Blokhin Kamal Choudhary Pauline Colinet @@ -57,6 +60,7 @@ Daniel Speckhard Leopold Talirz Cormac Toher Martin Uhrin +Antanus Vaitkus Pierre Villars David Waroquiers Donald Winston From 9ce73c562b09f33addc80ec0b6872e2168e008b2 Mon Sep 17 00:00:00 2001 From: Matthew Evans Date: Tue, 20 Dec 2022 16:09:08 +0100 Subject: [PATCH 07/11] Pre-commit autoupdate and migration --- .pre-commit-config.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0ace24608..ea264e920 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,5 +1,6 @@ +repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v2.2.3 + rev: v4.4.0 hooks: - id: trailing-whitespace exclude: &exclude_files > @@ -9,7 +10,7 @@ )$ - repo: https://github.com/Lucas-C/pre-commit-hooks - rev: v1.1.10 + rev: v1.3.1 hooks: - id: remove-tabs args: [ '--whitespaces-count', '2'] From 42187122bb93d9def3d5da388e785223e9baa2b4 Mon Sep 17 00:00:00 2001 From: Matthew Evans Date: Thu, 22 Dec 2022 17:53:34 +0000 Subject: [PATCH 08/11] Adjust version numbers for rc.1 --- optimade.rst | 6 +++--- schemas/index_openapi_schema.json | 2 +- schemas/openapi_schema.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/optimade.rst b/optimade.rst index 57af5bbf8..bd437f19b 100644 --- a/optimade.rst +++ b/optimade.rst @@ -1,6 +1,6 @@ -========================================= -OPTIMADE API specification v1.2.0~develop -========================================= +====================================== +OPTIMADE API specification v1.2.0-rc.1 +====================================== .. comment diff --git a/schemas/index_openapi_schema.json b/schemas/index_openapi_schema.json index 4772998da..8eb692156 100644 --- a/schemas/index_openapi_schema.json +++ b/schemas/index_openapi_schema.json @@ -3,7 +3,7 @@ "info": { "title": "OPTIMADE API - Index meta-database", "description": "The [Open Databases Integration for Materials Design (OPTIMADE) consortium](https://www.optimade.org/) aims to make materials databases interoperational by developing a common REST API.\nThis is the \"special\" index meta-database.\n\nThis specification is generated using [`optimade-python-tools`](https://github.com/Materials-Consortia/optimade-python-tools/tree/v0.16.0) v0.16.0.", - "version": "1.2.0~develop" + "version": "1.1.0~develop" }, "paths": { "/info": { diff --git a/schemas/openapi_schema.json b/schemas/openapi_schema.json index 964e4b40d..5eda933b9 100644 --- a/schemas/openapi_schema.json +++ b/schemas/openapi_schema.json @@ -3,7 +3,7 @@ "info": { "title": "OPTIMADE API", "description": "The [Open Databases Integration for Materials Design (OPTIMADE) consortium](https://www.optimade.org/) aims to make materials databases interoperational by developing a common REST API.\n\nThis specification is generated using [`optimade-python-tools`](https://github.com/Materials-Consortia/optimade-python-tools/tree/v0.16.0) v0.16.0.", - "version": "1.2.0~develop" + "version": "1.1.0~develop" }, "paths": { "/info": { From dc34b32a551805fe535e4c805f368c396efe36c5 Mon Sep 17 00:00:00 2001 From: Matthew Evans Date: Thu, 22 Dec 2022 17:57:16 +0000 Subject: [PATCH 09/11] Add rc.1 note to changelog --- CHANGELOG.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 81bac1b0a..78875996f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,12 @@ ## v1.2.0-rc.1 (December 2022) -This is release v1.2.0-rc.1 of the OPTIMADE API specification. +This is the first release candidate of v1.2.0 of the OPTIMADE API specification. +It should contain all of the new features in the specification, but their +implementation may be modified in the final release. + +Note: The OpenAPI schemas distributed in `./schemas` have not yet been modified with +the new features 1.2.0. This minor release adds significant but optional new functionality to the specification, as well as providing several clarifications to existing behaviour. From 140c67d0fa21b1cf2be2824098873d9ff93ab8d9 Mon Sep 17 00:00:00 2001 From: Matthew Evans Date: Thu, 22 Dec 2022 18:12:01 +0000 Subject: [PATCH 10/11] One line per sentence in CHANGELOG --- CHANGELOG.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78875996f..ee4fda021 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,11 +3,9 @@ ## v1.2.0-rc.1 (December 2022) This is the first release candidate of v1.2.0 of the OPTIMADE API specification. -It should contain all of the new features in the specification, but their -implementation may be modified in the final release. +It should contain all of the new features in the specification, but their implementation may be modified in the final release. -Note: The OpenAPI schemas distributed in `./schemas` have not yet been modified with -the new features 1.2.0. +Note: The OpenAPI schemas distributed in `./schemas` have not yet been modified with the new features 1.2.0. This minor release adds significant but optional new functionality to the specification, as well as providing several clarifications to existing behaviour. From 3be18eed9cca11daaeabce79fdf2fac326ab50e2 Mon Sep 17 00:00:00 2001 From: Matthew Evans <7916000+ml-evs@users.noreply.github.com> Date: Thu, 22 Dec 2022 18:16:55 +0000 Subject: [PATCH 11/11] Fix AUTHORS typo Co-authored-by: Andrius Merkys --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index d95699bd4..54a6389ad 100644 --- a/AUTHORS +++ b/AUTHORS @@ -60,7 +60,7 @@ Daniel Speckhard Leopold Talirz Cormac Toher Martin Uhrin -Antanus Vaitkus +Antanas Vaitkus Pierre Villars David Waroquiers Donald Winston