diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b359f9863..e15e04180 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 > @@ -10,7 +11,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'] 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 diff --git a/AUTHORS b/AUTHORS index 3ef04668e..54a6389ad 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 +Antanas Vaitkus Pierre Villars David Waroquiers Donald Winston diff --git a/CHANGELOG.md b/CHANGELOG.md index 663a46072..ee4fda021 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,32 @@ # Changelog +## 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. + +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. + +### 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. diff --git a/README.md b/README.md index 5f14ac8b6..cdb9be461 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. diff --git a/optimade.rst b/optimade.rst index 09a0ccc9f..bd437f19b 100644 --- a/optimade.rst +++ b/optimade.rst @@ -1,6 +1,6 @@ -========================================= -OPTIMADE API specification v1.1.0~develop -========================================= +====================================== +OPTIMADE API specification v1.2.0-rc.1 +====================================== .. comment