v0.24.1 (2023-06-07)
Implemented enhancements:
Merged pull requests:
- Use default parser version in Mongo collection #1655 (ml-evs)
- Bump providers from
54c4f05
to1e5d59d
#1654 (dependabot[bot]) - Bump providers from
1c3f0f1
to1e5d59d
#1639 (dependabot[bot])
v0.24.0 (2023-05-19)
Implemented enhancements:
Closed issues:
- Local version app not reachable in docker container. #1589
Merged pull requests:
- Bump providers from
ae359c2
to1c3f0f1
#1638 (dependabot[bot]) - Fix local docker dev server usage #1631 (ml-evs)
- Bump providers from
54c4f05
toae359c2
#1622 (dependabot[bot])
v0.23.1 (2023-04-13)
Merged pull requests:
v0.23.0 (2023-03-28)
Fixed bugs:
- Landing page provider homepage link is broken #1568
Merged pull requests:
- Element symbols are now used when generating an ase atom. #1571 (JPBergsma)
- Fix provider homepage on landing page #1569 (ml-evs)
- Small code corrections #1562 (JPBergsma)
- Extract next link query param creation into EntriesCollection method. #1561 (markus1978)
- Preliminary support for
page_above
in base entry collections #1560 (ml-evs)
v0.22.2 (2023-03-16)
Closed issues:
- Validator presents internal errors when run with
--skip-optional
#1558
Merged pull requests:
- Fix spurious errors when running validator with
--skip-optional
#1559 (ml-evs) - Improve some validator error messages #1557 (ml-evs)
- Bump providers from
a92e5bc
to3be73e9
#1538 (dependabot[bot])
v0.22.1 (2023-02-28)
This patch release changes the synchronous functionality of OptimadeClient
to use "vanilla" requests rather than httpx. This enables easier use inside of Jupyter notebooks.
Closed issues:
- Add docs examples for client callbacks #1527
- Cannot use the
OptimadeClient
in async mode with an existing event loop #1195
Merged pull requests:
v0.22.0 (2023-02-27)
This release adds a new feature to the reference server for avoiding validating data on the way out of the API (useful in cases where a small amount of leniency is desirable, and will have a minor performance bump). It also fixes a bug in the schema where page_below
and page_above
were codified as integers rather than strings.
Implemented enhancements:
Fixed bugs:
v0.21.0 (2023-02-20)
This minor release contains new client functionality and improved support for ASE.
-
Ability to specify async callback functions that are called after every client response. This can be used for e.g., iteratively saving to file or a database. For example:
from optimade.client import OptimadeClient DATABASE = pymongo.MongoClient().database.collection def save_callback(url, results) -> None: for structure in results["data"]: DATABASE.insert_one(structure) client = OptimadeClient(callbacks=[save_callback]) client.get()
-
Ability to create OPTIMADE structure objects from ASE atoms:
from optimade.adapters import Structure from ase import Atoms co = Atoms('CO', positions=[(0, 0, 0), (0, 0, 1.1)]) structure = Structure.from_ase_atoms(co)
-
Added ability to mute the client progress bars with
--silent
/silent=True
and increased default response timeouts to better reflect those required for practical queries.
Implemented enhancements:
- Add customisable callback functions to client #1515
- Add ability to specify callbacks to run after each client request #1519 (ml-evs)
- Increase client timeouts and tweak
response_fields
behaviour #1514 (ml-evs) - Add ASE ingester and generalize other ingestion utilities #1509 (ml-evs)
Closed issues:
- Increase default client timeouts #1513
- Provide basic support for older pymatgen versions in adapters #1490
Merged pull requests:
- Replace several linters and fixers (flake8, isort etc.) with ruff #1526 (ml-evs)
- Add
--silent
option to suppress client output until results #1518 (ml-evs) - Update tests and client to properly test async mode #1517 (ml-evs)
- Refresh docs style and associated tweaks #1516 (ml-evs)
v0.20.3 (2023-01-09)
This release primarily adds compatibility for the newest FastAPI releases (>=0.87
) by updating our test client to work with both httpx
and requests
.
Merged pull requests:
v0.20.2 (2022-12-21)
This release adds the ability to include or exclude particular providers from queries with the OptimadeClient
class and optimade-get
CLI, via the provider's registered prefix (#1412)
For example:
# Only query databases served by the example providers
optimade-get --include-providers exmpl,optimade
# Exclude example providers from global list
optimade-get --exclude-providers exmpl,optimade
You can also now exclude particular databases by their URLs:
# Exclude specific example databases
optimade-get --exclude-databases https://example.org/optimade,https://optimade.org/example
The release also includes some server enhancements and fixes:
- Caching of
/info/
and/info/<entry>
endpoint responses (#1433) - A bugfix for the entry mapper classes, which were sharing cache resources globally leading to poor utilization (#1435)
Implemented enhancements:
Fixed bugs:
Closed issues:
- Migrate away from Heroku for demo server #1307
- Add ability to use provider prefixes/custom index base URLs with client #1295
Merged pull requests:
- Add pip caches to CI and tidy old flake8 job #1442 (ml-evs)
- Allow empty strings through chemical formula regexp #1428 (ml-evs)
- Explicitly use Python 3.8 environment for pre-commit in CI #1421 (ml-evs)
- Add ability to (in/ex)clude providers by ID within client #1412 (ml-evs)
v0.20.1 (2022-12-03)
Fixed bugs:
- Cannot retrieve child database links #1410
- Fix typo that breaks
get_child_databases
retriever #1411 (ml-evs)
v0.20.0 (2022-11-29)
This release continues the modularisation of the package by moving the server exceptions and warnings out into top-level modules, and removing the core dependency on FastAPI (now a server dependency only). This should allow for easier use of the optimade.models
and optimade.client
modules within other packages.
Aside from that, the package now supports Python 3.11, and our example server is now deployed at Fly.io rather than Heroku.
Implemented enhancements:
- Add support for Python 3.11 #1361
- Improve test diagnostics and fix deprecated Elasticsearch calls #1373 (ml-evs)
- Support Python 3.11 #1362 (ml-evs)
Fixed bugs:
- Elasticsearch pytest oneliner in the docs is no longer working #1377
- Remote swagger validator has changed output format #1370
Closed issues:
- Fully isolate server code from other submodules #1403
- OpenAPI schema should not enforce recommended constraint on
page_number
#1372 - Pydantic models docs are broken on the mkdocs site with new renderer #1353
- FastAPI should not be a core dependency #1198
Merged pull requests:
- Move exceptions and warnings out of server code and separate deps #1405 (ml-evs)
- Complete migration from Heroku to Fly #1400 (ml-evs)
- Add GH actions for deploying example server to Fly #1396 (ml-evs)
- Support new remote swagger.io validator format #1371 (ml-evs)
- Do not enforce minimum value of
page_number
at model level #1369 (ml-evs) - Enable
mypy
andisort
in pre-commit & CI #1346 (ml-evs) - Remove randomness from structure utils tests #1338 (ml-evs)
- Demote FastAPI to a server dep only #1199 (ml-evs)
v0.19.4 (2022-09-19)
This is a hotfix release for #1335, a bug regarding chunked responses triggered when using the latest FastAPI version.
Fixed bugs:
- UnboundLocalError -
chunk_size
is not always set in middleware method #1335 - Ensure
chunk_size
is properly set when chunking responses #1336 (ml-evs)
v0.19.3 (2022-09-06)
Implemented enhancements:
Merged pull requests:
v0.19.2 (2022-09-05)
Fixed bugs:
- Wrong fractional particle positions in test #1232
- Bugfix validator so next links are followed the correct number of times #1318 (JPBergsma)
- Remove incorrect default value for
page_number
query parameter #1303 (ml-evs)
Closed issues:
- If nperiodic_dimensions=2 the structure adapter can only properly convert it to ase #1212
Merged pull requests:
- Use proper type hint for griffe 0.22 compatibility #1313 (JPBergsma)
- Adapters now also return lattice information for structures that are periodic in 1 or 2 dimensions. #1233 (JPBergsma)
v0.19.1 (2022-08-12)
Implemented enhancements:
- Add
from_pymatgen
structure adapter method and concept of ingesters #1296 (ml-evs) - Add
lru_cache
to many mapper properties #1245 (ml-evs)
Merged pull requests:
v0.19.0 (2022-07-18)
This minor release includes several usability improvements for the server and client arising from the OPTIMADE workshop. This release also drops support for Python 3.7, which should allow us to streamline our dependencies going forward.
Implemented enhancements:
- Support for Elasticsearch v7 #1216 (markus1978)
Fixed bugs:
- Landing page not loading #1256
- Config values are not cached by
@classproperty
#1219 - Prevent internal validator errors when entries are missing ID/type #1273 (ml-evs)
- Improve error handling for client when updating provider list #1222 (ml-evs)
Closed issues:
- Internal validator failures #1272
- Use versioned Dockerfiles for CI services to allow dependabot to update them #1241
- Wrong links to available endpoints #1214
- The validator should check for
meta->schema
#1209 - Add configurable
meta->schemas
field to reference server #1208
Merged pull requests:
- Bump providers from
fb05359
toa92e5bc
#1267 (dependabot[bot]) - Add schema parameter when calling meta_values in landing.py #1257 (JPBergsma)
- Update
lark
dependency to new name #1231 (ml-evs) - Use Python 3.10 instead of 3.7 in installation instructions #1229 (JPBergsma)
- Optimisation: do not re-access mapper properties inside the request loop #1223 (ml-evs)
- Add meta->schema validation warning #1211 (ml-evs)
- Add configurable
schema_url
andindex_schema_url
options #1210 (ml-evs) - Drop support for Python 3.7 #1179 (ml-evs)
v0.18.0 (2022-05-29)
This is a feature release that includes the new optimade.client.OptimadeClient
class, a client capable asynchronously querying multiple OPTIMADE APIs simultaneously.
It also contains a patch for the OPTIMADE models that allows them to be used with more recent FastAPI versions without breaking OpenAPI 3.0 compatibility.
Other changes can be found below.
This release includes improvements to the validator to catch more cases where OPTIMADE APIs are only partially implemented.
Previously, APIs that did not support filtering, pagination or limiting response fields at all (i.e., the query parameter is simply ignored) would pass most validation tests erroneously in some unlucky situations (#1180).
Implemented enhancements:
- The validator should use a custom
User-Agent
header #1187 - Suggestion to include an OPTIMADE python API client #932
- Implementation of an OPTIMADE client #1154 (ml-evs)
Fixed bugs:
OptimadeClient
crashes if an index meta-database is down #1196- Catch connection errors when populating client database list #1197 (ml-evs)
Merged pull requests:
- Add a clearer error message on when trying to use client with missing deps #1200 (ml-evs)
- Use a custom
User-Agent
with validator #1189 (ml-evs) - Syntactic tweaks to models and schemas for compatibility with
fastapi>0.66
#1131 (ml-evs)
v0.17.2 (2022-05-21)
This release includes improvements to the validator to catch more cases where OPTIMADE APIs are only partially implemented. Previously, APIs that did not support filtering, pagination or limiting response fields at all (i.e., the query parameter is simply ignored) would pass most validation tests erroneously in some unlucky situations (#1180).
Fixed bugs:
- Server validation incorrectly passes with various unimplemented features #1180
Merged pull requests:
v0.17.1 (2022-05-18)
This patch release adds a pre-built Docker container for the reference server to the GitHub Container Registry (GHCR) and a series of Deployment instructions in the online documentation.
The image can be easily pulled from GHCR with:
docker pull ghcr.io/materials-consortia/optimade
Implemented enhancements:
- Release a container (Docker) image for developers #1111
Closed issues:
- Issues with GH Changelog updater (secondary usage API requests) #976
Merged pull requests:
- Don't use
env
context for step #1178 (CasperWA) - Docker image for
optimade
on ghcr.io #1171 (CasperWA)
v0.17.0 (2022-05-10)
This minor release contains fixes recommended for those deploying the optimade-python-tools reference server:
- The
meta->data_returned
field was previously incorrect when using the MongoDB backend. - Incoming URL query parameters are now validated against the provided query parameters class (if using custom query parameters, this class should be extended or the parameters should use your registered provider prefix). This functionality can be disabled with the
validate_query_parameters
config option. - The results of some queries were not reversible with MongoDB (e.g.,
nelements != 2
vs2 != nelements
); this has now been fixed.
Implemented enhancements:
- Add server check for typos in query parameters #1120
- Improve handling of MongoDB ObjectIDs as OPTIMADE
immutable_id
#1142 (ml-evs) - Add support for number-based pagination #1139 (JPBergsma)
- Added option to validate incoming URL query parameters #1122 (JPBergsma)
Fixed bugs:
meta->data_returned
is incorrect for paginated results with MongoDB #1140- Queries with the form: 'value != prop' return entries where 'prop == None' #1133
- Test on Queries on single structures fail with the check_response function. #1125
- Fix incorrect
meta->data_returned
for paginated results with MongoDB #1141 (ml-evs) - Fix cases where comparison first and property first queries did not match #1134 (JPBergsma)
Closed issues:
- Raise error/warning when using unsupported pagination method #1132
- Add missing documentation for serving custom query params and fields #1123
Merged pull requests:
- Use GitHub Actions for Heroku deployment #1165 (ml-evs)
- Add docs for custom provider fields and query parameters #1164 (ml-evs)
- Add deprecation warning for Python 3.7 #1157 (ml-evs)
- Added way to specify unsupported query parameters and provide a warning #1136 (ml-evs)
- Adjusted check_response so it can also handle single entries. #1130 (JPBergsma)
- Corrected link in Install.MD #1124 (JPBergsma)
v0.16.12 (2022-03-23)
Implemented enhancements:
- Make structure adapters infer
species
fromspecies_at_sites
when missing #1103 (ml-evs) - Allow specification of provider field descriptions/units etc. in config file #1096 (ml-evs)
- Moving and adding some utilities for client code #589 (ml-evs)
Closed issues:
- Allow provider field descriptions to be provided in the config #1095
v0.16.11 (2022-03-03)
Merged pull requests:
v0.16.10 (2022-02-05)
Fixed bugs:
- Distribution tests failing #1061
Security fixes:
Merged pull requests:
- Use
build
package to build distributions #1062 (CasperWA) - Cancel CI PR jobs that are in progress with new changes, add skip_changelog label to overrides #1057 (ml-evs)
- Prevent validator errors/retries on read timeouts #1056 (ml-evs)
v0.16.9 (2022-01-26)
Implemented enhancements:
Security fixes:
- Bump elasticsearch to avoid log4j vulnerability #1040
Closed issues:
- Docs reference to
LarkParser
failing. #1037
Merged pull requests:
- Update dependabot config and changelog generation #1048 (ml-evs)
- Bump elasticsearch image version to avoid any log4j issues #1041 (ml-evs)
- Make NumPy requirement py version-specific #1036 (CasperWA)
v0.16.8 (2021-12-22)
Implemented enhancements:
- Support for Python 3.10 #956
Fixed bugs:
- Overzealous validation of substring comparisons for chemical formula fields #1024
Merged pull requests:
- Add configurable field-specific validator overrides to set filter operators as optional #1025 (ml-evs)
- Add Python 3.10 support #957 (ml-evs)
v0.16.7 (2021-11-21)
Implemented enhancements:
- Stricter validation of chemical formulas in OpenAPI schema #708
Fixed bugs:
chemical_formula_anonymous
validator accepts incorrect proportion order if started with 1 #1002
Closed issues:
- Versioned docs do not redirect all links correctly #977
- Missing support for timestamps/datetime in grammar #102
Merged pull requests:
- Fixed bug in check_anonymous_formula which caused
chemical_formula_anonymous = AB2
to pass validation. #1001 (JPBergsma) - Use
diff
for checking PR body #1000 (CasperWA) - Correct PR body comparison #996 (CasperWA)
- Update dependency auto-PR message #989 (ml-evs)
- Stricter formula syntax #986 (merkys)
- Implement workflows for dependency updates #979 (CasperWA)
- Tidy up old grammars, add a development grammar for v1.2 and update filterparser tests #879 (ml-evs)
v0.16.6 (2021-10-19)
Merged pull requests:
v0.16.5 (2021-10-18)
Closed issues:
- 'elements_ratios' model validator uses double-precision machine epsilon - could be relaxed #947
- Versioning in Docs #724
Merged pull requests:
- Fix option value for checkout in CD Docs workflow #972 (CasperWA)
- Correct default branch name to
master
#971 (CasperWA) - Automate versioned documentation #951 (CasperWA)
- Add JOSS citation #949 (ml-evs)
- Some validation QoL tweaks #948 (ml-evs)
v0.16.4 (2021-09-20)
Closed issues:
- Code check fails because there is no valid version of jsmin #938
- Be properly compliant with the new pip resolver #625
Merged pull requests:
- Bump providers from
357c27b
tofb05359
#945 (dependabot[bot]) - Bump providers from
368f9f6
to357c27b
#944 (dependabot[bot]) - Bump providers from
91b51bd
to368f9f6
#942 (dependabot[bot]) - remove the dependency on mkdocs-minify because of issue #938. #941 (JPBergsma)
- Corrected command to call uvicorn server #937 (JPBergsma)
- Use proper pip dependency resolver in publish workflow #935 (ml-evs)
- Add JOSS paper #804 (ml-evs)
v0.16.3 (2021-09-02)
Implemented enhancements:
- Add validation that anonymous/reduced chemical formulae are in fact reduced #913
Fixed bugs:
- No error/warning when specifying a config file that does not exist #930
- Docker tests failing in CI: http://gh_actions_host no longer exists? #906
- Fix config file warnings when file is missing #931 (ml-evs)
Closed issues:
- Docs don't introduce the idea of "models" #910
- Docs don't mention anything about where to go for support #909
run.sh
does not appear to be available from the pip installation #904- Missing guide for how to set up an implementation from existing database #176
Merged pull requests:
- Add tutorial-style guide on setting up an API #915 (ml-evs)
- Add validator to check whether anonymous and reduced formulae are reduced #914 (ml-evs)
- Clarify the "all models" documentation page #912 (ml-evs)
- Add more specific 'Getting Help' info to Contributing and README #911 (ml-evs)
- Bump Materials-Consortia/optimade-validator-action from 2.5.0 to 2.6.0 #907 (dependabot[bot])
- Clarify installation methods by use-case #905 (ml-evs)
- Relax response top-level root validator #903 (CasperWA)
- Add integrated app docs, tweak other use case docs #883 (ml-evs)
v0.16.2 (2021-08-06)
Fixed bugs:
Merged pull requests:
- Dependency updates for v0.16.2 #894 (ml-evs)
- Bump codecov/codecov-action from 2.0.1 to 2.0.2 #882 (dependabot[bot])
- Bump codecov/codecov-action from 1.5.2 to 2.0.1 #878 (dependabot[bot])
v0.16.1 (2021-07-15)
Implemented enhancements:
- Change MIME type to application/vnd.api+json where appropriate #875
- Minor corrections + use model aliases for
handle_response_fields()
#876 (CasperWA)
Fixed bugs:
- Wrong behaviour HAS ONLY query for MongoDB #810
- Correct the behaviour of HAS ONLY with MongoDB backend #861 (JPBergsma)
Merged pull requests:
- Change default MIME type to "application/vnd.api+json" #877 (ml-evs)
- Update elements description to match specification #874 (ml-evs)
v0.16.0 (2021-07-06)
Closed issues:
- Incoming model update (new field: issue_tracker) #592
Merged pull requests:
v0.15.5 (2021-07-04)
Fixed bugs:
- NOT filter operation of mongo query for complex expressions #79
Closed issues:
- Remove CI psycopg2-binary install when aiida-core>1.6.3 #855
- Pytest fails at Setup environment for AiiDA #853
- Add timeout parameter to validator #681
- Add note in installation instructions about pulling submodule for providers #370
Merged pull requests:
- Add request --timeout parameter to validator #860 (ml-evs)
- Bump providers from
fa25ed3
to91b51bd
#858 (dependabot[bot]) - Update to AiiDA v1.6.4 and remove CI fix #857 (CasperWA)
- Temporary fix for CI tests with AiiDA #854 (CasperWA)
- Documentation tweaks #852 (JPBergsma)
- Fix query negation in MongoDB #814 (JPBergsma)
v0.15.4 (2021-06-15)
Implemented enhancements:
- Missing documentation for new configuration methods #766
Closed issues:
- Add docs "use case" for the validator #841
- Use specific configuration file for Heroku deployment #738
- Potential submission to JOSS? #203
- Add more tests #104
Merged pull requests:
v0.15.3 (2021-06-10)
Merged pull requests:
v0.15.2 (2021-06-10)
Implemented enhancements:
- Missing HTTP response codes in OpenAPI schema #763
Merged pull requests:
- Update response model information for routes #846 (CasperWA)
- Improve semver validation error messsage #845 (ml-evs)
- Bump codecov/codecov-action from 1.5.0 to 1.5.2 #843 (dependabot[bot])
v0.15.1 (2021-06-08)
Closed issues:
- mongomock $size queries match all non-array fields for {$size: 1}, even nulls #807
- Allow custom headers to be specified for validation #790
Merged pull requests:
v0.15.0 (2021-06-01)
Fixed bugs:
- Provider fallbacks do not get used #829
- ParserError's should not return 500 HTTP status codes #812
- Fix provider fallback list #830 (ml-evs)
- Return 400 Bad Request (not 500) on filter parser errors, plus filterparser module facelift #813 (ml-evs)
Closed issues:
- Move aliasing code to base transformer #743
- Missing optional fields are not returned as null when requested with response_fields #516
Merged pull requests:
- Update INSTALL docs #811 (ml-evs)
- Overhaul of filter transformers, mappers and response fields #797 (ml-evs)
v0.14.1 (2021-05-14)
Fixed bugs:
- [SECURITY] Cycle secrets #777
Closed issues:
- Do not validate extension endpoints #793
- Verify that missing values are not returned in comparisons #792
Merged pull requests:
- Update GH actions #803 (CasperWA)
- Handling null fields in the filtertransformer and validator #796 (ml-evs)
- Filter out extension endpoints before validation #794 (ml-evs)
- Bump providers from
7a54843
tofa25ed3
#791 (dependabot[bot]) - Bump CharMixer/auto-changelog-action from v1.2 to v1.3 #778 (dependabot[bot])
v0.14.0 (2021-03-26)
Implemented enhancements:
- Rename config variable use_real_mongo to something more general #742
- Custom configuration extensions & use standard pydantic way of loading config file #739
- Generalising collections and adding ElasticsearchCollection #660 (ml-evs)
Fixed bugs:
- Over-aggressive middleware to check versioned base URL #737
- Floating point comparisons should not be tested with the validator #735
- Mapper method
alias_of
extracts alias wrongly #667
Closed issues:
- Docs builds are not properly tested for each PR #747
Merged pull requests:
- Fix CheckWronglyVersionedBaseUrls middleware (for landing pages) #752 (CasperWA)
- Deprecate Python 3.6 support, v0.14 last supported version #751 (CasperWA)
- Run full API docs invoke task for every PR #748 (ml-evs)
- Change aliasing method names in mapper and deprecate the old #746 (ml-evs)
- Bump providers from
e2074e8
to7a54843
#741 (dependabot[bot]) - Config updates #740 (CasperWA)
- Disable all floating-point comparisons during validation #736 (ml-evs)
- Report user errors in filter as HTTP 400 Bad Request and not 501 Not Implemented #658 (markus1978)
v0.13.3 (2021-03-05)
Fixed bugs:
- Python 3.9 support invalid #728
Merged pull requests:
- Update pydantic to ~=1.8 #731 (CasperWA)
- Bump providers from
da74513
toe2074e8
#727 (dependabot[bot])
v0.13.2 (2021-03-01)
Implemented enhancements:
- Improve validation of providers #723
v0.13.1 (2021-02-23)
Fixed bugs:
- Supported OPTIMADE __api_version__ is incorrect in latest release #712
Merged pull requests:
v0.13.0 (2021-02-20)
Closed issues:
- Update species.mass model #630
Merged pull requests:
v0.12.9 (2021-02-10)
Implemented enhancements:
Fixed bugs:
- Use Enums for pydantic model defaults instead of strings #683
Closed issues:
- When using
--as-type
in validator, one does not get a summary (--json
doesn't work) #699 - Extension/import issue with mongo collection #682
Merged pull requests:
- Always print summary as last thing in validation #700 (CasperWA)
- Fixes for new gateway implementation #684 (CasperWA)
v0.12.8 (2021-01-18)
Implemented enhancements:
- Validate mandatory query field
structure_features
#678
Fixed bugs:
- Validator should not rely on
meta->data_available
#677 - Validator should not rely on SHOULD "meta" field "data_returned" #675
- Validator: remove reliance on meta fields and check mandatory queries #676 (ml-evs)
Merged pull requests:
- Bump providers from
542ac0a
toda74513
#679 (dependabot[bot])
v0.12.7 (2021-01-15)
Implemented enhancements:
Fixed bugs:
- Publish workflow fails when no changes to api docs between versions #673
- /versions header
Content-Type
value should be granularized according to RFC requirements in validator #669 - Misleading error message from validator on failure from '/versions' #668
- Fix publishing workflow #674 (ml-evs)
Merged pull requests:
- Update codecov coverage config file #672 (CasperWA)
- Bump providers from
fe5048b
to542ac0a
#671 (dependabot[bot])
v0.12.6 (2021-01-08)
Implemented enhancements:
- Create base transformer #286
Fixed bugs:
- Our models and validator are too strict #399
- Validator changes: always check unversioned '/versions' and handle rich HTML pages #665 (ml-evs)
Closed issues:
- Add more prominent link to rendered docs #628
- Review the required properties of StructureResourceAttributes in openapi.json #198
Merged pull requests:
- Added GitHub CODEOWNERS #664 (ml-evs)
- Robustness improvements to validator #659 (ml-evs)
- Update dependencies #655 (CasperWA)
- Bugfixes for elasticsearch filtertransformer comparision operators. #648 (markus1978)
- Added "root_path" config parameter for FastAPI apps #634 (markus1978)
- Bump providers from
2673be6
tofe5048b
#633 (dependabot[bot]) - Updated README and moved some files to top-level #629 (ml-evs)
- insert reading of default optimade_config.json in example run script run.sh #627 (rartino)
- Create template filtertransformer BaseTransformer #287 (ml-evs)
v0.12.5 (2020-12-05)
Closed issues:
- PyPI publishing build is broken by latest pip #624
- Empty endpoints raise errors on validation #622
- Frequency of updating online docs #452
Merged pull requests:
- Fix PyPI publishing in CI #623 (ml-evs)
- Change validation error to warning on empty endpoints #621 (ml-evs)
- Update dependencies #620 (CasperWA)
- Upstream fixes from specification #611 (ml-evs)
- Minor fixes for the validator #610 (ml-evs)
- include LICENSE in pip Package #594 (jan-janssen)
- Relax models to allow for all SHOULD fields to be None #560 (ml-evs)
- Python 3.9 support #558 (ml-evs)
- ReadTheDocs configuration file (v2) #485 (CasperWA)
v0.12.4 (2020-11-16)
Merged pull requests:
- Minor fixes for versions endpoint validation #591 (ml-evs)
- Add --minimal/--page_limit validator options and remove old code #571 (ml-evs)
v0.12.3 (2020-11-04)
Fixed bugs:
- GITHUB_TOKEN not useful for changelog action #587
- Hill notation wrong (still) #585
- Hill notation validation turning around C and H #581
Closed issues:
Merged pull requests:
- Use special release PAT for CHANGELOG generation action #588 (CasperWA)
- Check for carbon in elements for Hill #586 (CasperWA)
- Added better expected error messages to deformity tests #584 (ml-evs)
- Fix Hill ordering validation #582 (CasperWA)
- Moved CONFIG import so it does not get triggered when just importing mapper #569 (ml-evs)
v0.12.2 (2020-10-31)
Implemented enhancements:
- Add convenience method for adding all required middleware #536
- Add model validators and regexp for chemical formulae fields #547 (ml-evs)
- Validator improvements #515 (ml-evs)
Fixed bugs:
- 'Chosen entry had no value for ...' when property is not requested #514
- Fix Species validators and error messages #561 (ml-evs)
Closed issues:
- Chemical symbols D and T #570
- Spurious validation errors in Structure->Species #559
- Chemical formulae are not properly validated on model creation #546
Merged pull requests:
- Bump CasperWA/push-protected from v1 to v2.1.0 #573 (dependabot[bot])
- Update deps #566 (ml-evs)
- Improve handling of MongoDB ObjectID #557 (ml-evs)
- Updated dependencies #551 (ml-evs)
- Update dependencies - remove black as direct dependency #545 (CasperWA)
- Added convenience variables for middleware and exception handlers #537 (ml-evs)
v0.12.1 (2020-09-24)
Implemented enhancements:
Closed issues:
- Validator should allow implementations to return "501 Not Implemented" for unsupported filters #518
- Landing page wrong URL #371
Merged pull requests:
- This should ensure requirements*.txt are tested #527 (CasperWA)
- Update dependencies #526 (CasperWA)
- Fix landing page URL #519 (shyamd)
- Fixing typo
validatated
->validated
#506 (merkys) - Make validator respond to KeyboardInterrupts #505 (ml-evs)
- Add support levels to validator config #503 (ml-evs)
- Enable JSON response from the validator #502 (ml-evs)
v0.12.0 (2020-09-11)
Fixed bugs:
- Missing field descriptions in schema for Species->name and Person->name #492
- "type" field not marked as required for derived entry resource models #479
- OpenAPI validations fails due to incorrect type of "dimension_types" #478
- Have fallbacks for retrieving providers list #450
- Commit only when necessary #495 (CasperWA)
- Fix field optonality inconsistency in schema #482 (ml-evs)
Closed issues:
- Validator message for wrong version #493
- Validator should validate versions endpoint #491
- List of providers not included in
/links
endpoint for index meta-database #454 - Validate bad version URLs responding with 553 Version Not Supported #427
- Nonexistent property 'list' in validator tests #423
- Test
data_returned
#402 - AiiDA tests only run on Python 3.8 in CI #401
- Links under top-level 'links' may be objects #394
- Suggestion: use absolute imports in app code to allow re-use #298
- error when browsing OpenAPI docs #192
Merged pull requests:
- Don't report untracked and ignored files #496 (CasperWA)
- Improved error message for bad version returning 553 #494 (ml-evs)
- Allow Link objects for pagination #484 (ml-evs)
- Absolute imports #483 (CasperWA)
- Validate OpenAPI specification in CI #481 (ml-evs)
- Update types to align with OpenAPI #480 (CasperWA)
- Unpin CI Python version for AiiDA tests #472 (ml-evs)
- Provider list fallback and list of providers in both servers'
/links
-endpoints #455 (CasperWA) - SHOULD/MUST/OPTIONAL fields in models #453 (ml-evs)
- Validator overhaul #417 (ml-evs)
v0.11.0 (2020-08-05)
Implemented enhancements:
Fixed bugs:
- Heroku is failing - raising OSError when making LOGS_DIR #448
/versions
endpoint content-type parameter "header=present" is provided in the wrong place #418- Publish workflow cannot push to protected branch #341
- Fix circular dep and extra permission error in logs #436 (ml-evs)
Closed issues:
- log_dir option in config is unused #435
- Allow all types of JSON API relationships #429
- OPTIMADE version badge was not bumped on 1.0 release #415
- Add
api_hint
query parameter #392 - Return 553 for wrongly versioned base URLs #391
- Private/dunder methods incorrectly documented in mkdocs #365
- Configuration documentation #310
- Improve handling of sorting in MongoDB backend #276
Merged pull requests:
- Catch OSError instead of PermissionError when making log dir #449 (CasperWA)
- Introduce logging #432 (CasperWA)
- New middleware to catch any
OptimadeWarning
s #431 (CasperWA) - Auto-generate API reference in docs and an overhaul #430 (CasperWA)
- Bump providers from
52027b1
to9712dd8
#428 (dependabot[bot]) - Cleanup config files #426 (CasperWA)
- Update more unittest tests to pytest #425 (CasperWA)
- Sorting on unknown properties: returning Bad Request when appropriate #424 (ml-evs)
- Minor CI updates #422 (CasperWA)
- Add
api_hint
query parameter #421 (CasperWA) - Implement 553 Version Not Supported #420 (CasperWA)
- Fix incorrect placement of header=present in versions endpoint #419 (ml-evs)
- Bump optimade-version.json to 1.0.0 #416 (ml-evs)
- Use optimade-validator-action v2 #413 (CasperWA)
- Bump providers from
a96d424
to52027b1
#389 (dependabot[bot])
v0.10.0 (2020-07-17)
Implemented enhancements:
- Move tests to pytest system from unittest #270
Fixed bugs:
Closed issues:
- Validation of 'structures' type crashes #397
- Validator verbosity levels need more detailed description #396
- Validator treats top-level 'included' array as mandatory #393
- (Un)versioned URLs #379
Merged pull requests:
- Temporarily run AiiDA tests on Python 3.8 only #400 (ml-evs)
- Make the example for --as_type more similar to a real use case #398 (merkys)
- Fix some validator-specific crashes #395 (ml-evs)
- Use pytest instead of unittest #390 (CasperWA)
v0.9.8 (2020-07-03)
Implemented enhancements:
Merged pull requests:
v0.9.7 (2020-06-28)
v0.9.6 (2020-06-28)
Fixed bugs:
v0.9.5 (2020-06-26)
v0.9.4 (2020-06-26)
v0.9.3 (2020-06-26)
Merged pull requests:
- Fix version issues in the publish workflow #376 (shyamd)
- Bump providers from
732593a
toa96d424
#368 (dependabot[bot])
v0.9.2 (2020-06-25)
Fixed bugs:
- Heroku cannot handle submodules when deploying via GitHub #373
Closed issues:
- Updates to models (new OPTIONAL
type
field underproperties
) #345 - Add aggregatation fields to links model #344
- Updates to models (nperiodic_dimensions) #343
- Updates to models (changing unknown atoms) #342
- Improvements/fixes for openapi.json #332
- Update to v1.0.0-rc.1 #329
- RST not rendering with mkdocs #307
Merged pull requests:
- Retrieve providers list if no submodule is found #374 (CasperWA)
- Update default implementation information #372 (shyamd)
- Bump spec version to 1.0.0-rc.2 #367 (ml-evs)
- Merge all Dependabot updates #353 (shyamd)
- Update model descriptions and openapi.json for 1.0.0-rc2 #351 (ml-evs)
- Update models according to changes during CECAM 2020 meeting #350 (ml-evs)
- Decouple changes in providers repo #312 (shyamd)
v0.9.1 (2020-06-17)
v0.9.0 (2020-06-17)
Implemented enhancements:
Fixed bugs:
- Non-running CI job #331
- Special species "X" not tested for non-disordered structures #304
- Standardize timezone of datetime responses #288
- Queries on aliased/provider fields are broken for nested properties #282
- General exceptions not being put into response #281
- Issue with CIF export #271
- Type-cast inputs for general Error #280 (CasperWA)
Closed issues:
- Update links resources #299
- Need to set up mkdocs #289
- Need to add custom schema entries for unit/sortable (and eventually type) #278
- /info/<entry-endpoint> missing
sortable
key under each property #273 - Make CI linting more useful #269
- [PR SPECIFIC] Reminder: Validator test pinned to specific commit #268
- Validator does not check that pagination links work #265
- available_api_versions is not correctly validated #261
- Implementation model should allow for any URL type in
source_url
#260 - Extra structure endpoints in the api specification @ odbx #259
- Wrong response structure at info endpoint @ cod #258
- Missing base url for api's docs @ materialscloud #257
- Handling of KNOWN in mongo backend #254
None
values inlattice_vectors
#170- Make sure that the PyPI distribution works #143
- Move run.sh to a python file to be environment-agnostic #81
Merged pull requests:
- Another fix for release pipeline #355 (shyamd)
- Fix publish workflow #354 (CasperWA)
- Fix publish workflow #352 (CasperWA)
- Update publish workflow #340 (shyamd)
- Remove test publish action #338 (shyamd)
- Fix 'publish_TestPyPI' CI job #337 (CasperWA)
- Represent the datetime objects as UTC in RFC3339 format #333 (fekad)
- dependamat: Bump <package_name> v x.y.z to vx.y.(z+1) #330 (ml-evs)
- Update links resources #306 (CasperWA)
- Add special species for adapters testing #305 (CasperWA)
- Clean Up Build Environment #301 (shyamd)
- Enable CI failures for linting #300 (ml-evs)
- Adding jarvis-tools structures #297 (knc6)
- Update Docs #295 (shyamd)
- Setup MKDocs for Documentation #294 (shyamd)
- Fix filters on nested provider/aliased fields #285 (ml-evs)
- Use heroku-shields instead of heroku-badge #284 (CasperWA)
- Add OPTIMADE logo to badge by extending JSON #283 (CasperWA)
- Add null check to mongo filtertransformer for KNOWN/UNKNOWN filters #279 (ml-evs)
- Add
sortable=True
to all properties #274 (CasperWA) - Make _atom_site_label unique in CIF generation #272 (CasperWA)
- Not so quick fix to allow "/" at end of validator URL, plus fixes and tests for --as_type #267 (ml-evs)
- Check pagination links->next with validator #266 (ml-evs)
- Relax HTTP URL constraints on meta->implementation->source_url field. #262 (ml-evs)
- Validate lattice_vectors for all null or all float #171 (CasperWA)
v0.8.1 (2020-04-25)
Fixed bugs:
- Pip install missing some files #252
Merged pull requests:
v0.8.0 (2020-04-22)
Implemented enhancements:
- Switch to pydantic's BaseSettings for the config file? #152
- Remove query constraints for /links-endpoint #244 (CasperWA)
- Add adapters - Base design + 'structures' (+ 'references'... sort of) #241 (CasperWA)
- Add dependabot and last commit date badges #237 (CasperWA)
- Add mongo length operator functionality with length aliases #222 (ml-evs)
Fixed bugs:
- Use Path.home() instead of ~ in default config path values #245
Closed issues:
- Have Dependabot take care of various requirements.txt files as well #249
- Remove commented out GH Action job
deps_clean-install
#247 - Local testing fails without default config #239
- Release only when pushing to master #229
- Do we need
server.cfg
? #134 - Implement LENGTH in query #86
Merged pull requests:
- Up to v0.8.0 #251 (CasperWA)
- Remove old commented GH Action job #250 (CasperWA)
- Use Path.home() instead of
~
#246 (CasperWA) - Fix path in default config #243 (ml-evs)
- Fixes Local Tests #240 (shyamd)
- Revert "Fix github actions for non-release tags" #236 (shyamd)
- Enable filtering on relationships with mongo #234 (ml-evs)
- Update filter examples and validate optional cases #227 (ml-evs)
- Switch from config init to BaseSettings #226 (shyamd)
v0.7.1 (2020-03-16)
Closed issues:
Merged pull requests:
- Fix github actions for non-release tags #235 (shyamd)
- Update OPTIMADE capitalisation #233 (ml-evs)
- Update mentions of action in readme #231 (ml-evs)
v0.7.0 (2020-03-13)
Implemented enhancements:
Fixed bugs:
- Some mandatory filter examples from spec do not work #217
- Add txt-files in optimade.validator.data to MANIFEST #225 (CasperWA)
- Handle arbitrary nested NOT/AND/OR in queries #221 (ml-evs)
Closed issues:
- Validator only validates what we have working, not what is required by the spec #182
Merged pull requests:
v0.6.0 (2020-03-06)
Implemented enhancements:
- Possibly add CORS middleware #159
- Add debug flag to server #130
- Make validator GitHub Action #191 (CasperWA)
Fixed bugs:
- meta/query/representation value not cutting off version properly #199
- URL for providers.json from Materials-Consortia has changed #186
- Relationships don't work when "/" present in id #181
- Redirect middleware not hitting single-entry endpoints #174
Closed issues:
- /info/ reports wrong url under available_api_versions #215
- Query parameters not handled correctly #208
- Test for AvailableApiVersion is correct for the wrong reasons #204
- Drop '/optimade' from paths in openapi.json #197
- heroku is failing #185
- List properties and HAS _ operators missing #98
- Checklist for OPTiMaDe v0.10.1 #29
Merged pull requests:
- Removed /optimade/ prefix in info response #216 (ml-evs)
- Self load data #212 (shyamd)
- Update tests for available_api_versions #211 (CasperWA)
- Up to v0.6.0 #210 (CasperWA)
- Update handling of include parameter (and other query parameters) #209 (CasperWA)
- Skip HAS ONLY test if mongomock version <= 3.19.0 #206 (ml-evs)
- Test mandatory queries in validator #205 (ml-evs)
- Fix include query parameter #202 (CasperWA)
- Fix meta.query.representation and remove /optimade in base URLs #201 (CasperWA)
- Use mongo for CI #196 (ml-evs)
- (Cosmetic) updates to models #195 (CasperWA)
- Add CORSMiddleware #194 (CasperWA)
- Add "debug mode" #190 (CasperWA)
- Use https://provider.optimade.org/providers.json #187 (CasperWA)
- Fix errors parsing IDs that contain slashes #183 (ml-evs)
- Added default mongo implementations for HAS ALL/ANY/ONLY #173 (ml-evs)
v0.5.0 (2020-02-13)
Implemented enhancements:
- Implement a landing page for requests to the base URL #169
Fixed bugs:
- 'minor' and 'patch' versioned base URL prefixes are wrong #177
Closed issues:
- Handle
include
standard JSON API query parameter #94
Merged pull requests:
- Bump to v0.5.0 #179 (CasperWA)
- Correctly create optional versioned base URLs #178 (CasperWA)
- Make mapper aliases configurable #175 (ml-evs)
- Add landing page at base URL #172 (ml-evs)
- Implement
include
query parameter #163 (CasperWA) - Add docker for index meta-database #140 (CasperWA)
v0.4.0 (2020-02-06)
Implemented enhancements:
Fixed bugs:
Closed issues:
- Change
page_page
topage_number
#165 - Add schema-relevant parameters to query parameters #164
- Alias optimade/structures/ to optimade/structure #128
- Minor changes to specification v0.10.1-develop #115
- Update models with new levels of REQUIRED response properties #114
- Constraining list/array types in the schema #55
Merged pull requests:
- Bump to v0.4.0 #168 (CasperWA)
- Describe query parameters in OpenAPI schema #166 (CasperWA)
- Redirect slashed URLs #160 (CasperWA)
- New REQUIRED level properties #153 (CasperWA)
v0.3.4 (2020-02-04)
Implemented enhancements:
- Include
develop
or not? Default branch? - Create INSTALL.md #136
Fixed bugs:
- Excepting non-existent exception #129
Closed issues:
Merged pull requests:
- Bump to v0.3.4 #158 (CasperWA)
- Fix heroku badge #157 (ml-evs)
- Move installation instructions #156 (ml-evs)
- Update base URLs #155 (CasperWA)
- Extend OpenAPI/spec description #151 (CasperWA)
- Non Local Mongo #150 (shyamd)
v0.3.3 (2020-01-24)
Fixed bugs:
- Lark files not being distributed #141
Merged pull requests:
- Updated lark-parser to 0.8.1 #149 (ml-evs)
- Split eager and standard tests to avoid unnecessary badge of shame #148 (ml-evs)
- Bump to v0.3.3 #147 (CasperWA)
- Fix root_validator issues with optional fields and made meta optional #145 (ml-evs)
- Handle
JSONDecodeError
s in validator #144 (ml-evs)
v0.3.2 (2020-01-20)
Implemented enhancements:
Fixed bugs:
Merged pull requests:
- Make sure relevant package data is included in distributions #142 (CasperWA)
- Add database page limit #139 (CasperWA)
v0.3.1 (2020-01-17)
Merged pull requests:
v0.3.0 (2020-01-14)
Implemented enhancements:
- Implement optional
implementation
in top-level meta response #117 - Create "special" index meta-database server #100
- Implement relationships in server #71
- Add missing /references endpoint to server #69
- Automatically publish version tags to PyPI via GH Actions #107 (CasperWA)
- Using routers #99 (CasperWA)
- Add relationships functionality #91 (ml-evs)
- Added external API validator based on our pydantic models #74 (ml-evs)
Fixed bugs:
Closed issues:
- info endpoint duplicated? #120
- Commented-out validator #111
- FastAPI v0.44.0 supports pydantic > 1.0.0 #101
- Server is missing /links endpoint #89
- Make sure all validators are tested #87
- The
sortable
field must be added to models #84 - Package structure #72
- Possibly make /info/{endpoint} dynamic #70
- setuptools package with server as "extra" #62
- use examples from specs as resources #57
- httptools dependency has build issues on GCC/Linux #54
- Lark grammar file for v0.9.8 #50
- type is missing in response #43
- Enforce use of autoformatter #33
- switch license to MIT #28
- write a lark JSONTransformer / JSONdecoder #26
- server.jsonapi has no additionalProperties=false #23
- server.jsonapi has no patternProperties #22
- Developer-friendly pre-commit openapi.json visual diff #21
- add JSON schema API #12
- generate static documentation on github from openapi.json #9
- test how to generate a client from the openapi.json #8
- come up with suggested toolchain for validating existing optimade API against openapi.json #7
- add travis test that checks openapi.json is valid OpenAPI spec #6
- add 2 examples of how to include documentation in python classes #5
- add one-line command to update openapi.json #4
Merged pull requests:
- Fixed CI readme badge #133 (ml-evs)
- Add meta.description to BaseRelationshipResource #131 (CasperWA)
- Added homepage attribute to LinksResource #127 (ml-evs)
- Updated structure models and validators #126 (ml-evs)
- Minor change to fallback server.cfg #125 (ml-evs)
- Update local OpenAPI schemes prior to copying #124 (CasperWA)
- Update OpenAPI tags #121 (CasperWA)
- A few fixes related to usage as a library #119 (ml-evs)
- Add implementation to top-level meta response #118 (CasperWA)
- Add heroku deployment scripts #116 (ltalirz)
- Reorganize package #113 (CasperWA)
- Introduce grammar v0.10.1 #112 (CasperWA)
- Update to pydantic v1 #110 (CasperWA)
- Minimum requirement of django v2.2.8 #109 (CasperWA)
- Index meta-database #103 (CasperWA)
- restrict pydantic version #97 (ltalirz)
- Add /links #95 (CasperWA)
- Fix data_returned and data_available #93 (CasperWA)
- Use GitHub Actions for CI #92 (ml-evs)
- Remove inappropriate lint messages #90 (CasperWA)
- Fix dependencies #88 (CasperWA)
- Add sortable field to EntryInfoProperty model #85 (CasperWA)
- Validate illegal fields are not present under attributes and relationships #83 (CasperWA)
- Add references endpoint #78 (CasperWA)
- fix travis build #77 (ltalirz)
- Fix manual verification of elements_ratios #76 (CasperWA)
- add automatic PyPI deployment #75 (ltalirz)
- Remove reference to
"all"
endpoint and rename collections submodule #73 (ml-evs) - Updates to README and docs for v0.10.0 #68 (ml-evs)
- Adding grammar for v0.10.0 #66 (fekad)
- Schema updates and fixes relative to the v0.10.0 spec #65 (ml-evs)
- Break requirements down on per backend basis #64 (ml-evs)
- 0.10.0 grammer, elasticsearch transformer, setuptools extra #63 (markus1978)
- Added a Lark to Django Query converter #61 (tachyontraveler)
- Some minor fixes #60 (ml-evs)
- Added codecov to CI #59 (ml-evs)
- Enforce black via
pre-commit
tool #53 (dwinston) - Update setup.py and version #51 (dwinston)
- /structure/info endpoint #49 (fawzi)
- add constrained list type #48 (dwinston)
- Refactored into submodules and added test data #47 (ml-evs)
- Update structure endpoint to pre-alpha 0.10 spec #45 (ltalirz)
- Adding Resource Links #44 (tpurcell90)
- Reblacken #42 (ml-evs)
- Documented json #41 (tpurcell90)
- fix example output #40 (dwinston)
- use jsonapi better at top level, add error response #36 (fawzi)
- add JSONTransformer #35 (dwinston)
- switch to MIT license #34 (ltalirz)
- Updated entry definitions and renamed Response classes #32 (ml-evs)
- update readme #31 (ltalirz)
- Seperated Links from JSON API into its own file #30 (tpurcell90)
- simplify schema update #27 (ltalirz)
- add openapi_diff to travis #25 (ltalirz)
- Json api add #24 (tpurcell90)
- Added JSON diff test #20 (ml-evs)
- info endpoint #19 (fawzi)
- adding run.sh script to start webserver #18 (fawzi)
- error response #17 (fawzi)
- Links can be strings #16 (fawzi)
- response should be either many (list) or one (object), not an union #15 (fawzi)
- reorg models #14 (dwinston)
- Update the OptimadeMetaResponse to development schema #13 (ml-evs)
- add openapi spec validator #10 (ltalirz)
- fix test data download #3 (ltalirz)
- [WIP] Mongoconverter #1 (wuxiaohua1011)
v0.1.2 (2018-06-14)
v0.1.1 (2018-06-13)
v0.1.0 (2018-06-05)
* This Changelog was automatically generated by github_changelog_generator