Add simple instructions for pre-commit

Signed-off-by: Cristian Le <cristian.le@mpsd.mpg.de>
This commit is contained in:
Cristian Le 2023-05-09 11:44:46 +02:00
parent 6a077ce610
commit 061d9d2f3c
Failed to extract signature

View File

@ -1,4 +1,3 @@
[![Build Status](https://travis-ci.org/pboettch/json-schema-validator.svg?branch=master)](https://travis-ci.org/pboettch/json-schema-validator) [![Build Status](https://travis-ci.org/pboettch/json-schema-validator.svg?branch=master)](https://travis-ci.org/pboettch/json-schema-validator)
# JSON schema validator for JSON for Modern C++ # JSON schema validator for JSON for Modern C++
@ -23,7 +22,7 @@ is rather simple.
Although significant changes have been done for the 2nd version Although significant changes have been done for the 2nd version
(a complete rewrite) the API is compatible with the 1.0.0 release. Except for (a complete rewrite) the API is compatible with the 1.0.0 release. Except for
the namespace which is now `nlohmann::json_schema. the namespace which is now `nlohmann::json_schema`.
Version **2** supports JSON schema draft 7, whereas 1 was supporting draft 4 Version **2** supports JSON schema draft 7, whereas 1 was supporting draft 4
only. Please update your schemas. only. Please update your schemas.
@ -101,6 +100,7 @@ By default a static library is built. Shared libraries can be generated by using
the `BUILD_SHARED_LIBS`-cmake variable: the `BUILD_SHARED_LIBS`-cmake variable:
In your initial call to cmake simply add: In your initial call to cmake simply add:
```bash ```bash
cmake [..] -DBUILD_SHARED_LIBS=ON [..] cmake [..] -DBUILD_SHARED_LIBS=ON [..]
``` ```
@ -151,6 +151,7 @@ and
```CMake ```CMake
target_link_libraries(<your-target> [..] nlohmann_json_schema_validator) target_link_libraries(<your-target> [..] nlohmann_json_schema_validator)
``` ```
to build and link. to build and link.
## Code ## Code
@ -298,9 +299,10 @@ json_validator validator(loader, // or nullptr for no loader
Supported formats: `date-time, date, time, email, hostname, ipv4, ipv6, uuid, regex` Supported formats: `date-time, date, time, email, hostname, ipv4, ipv6, uuid, regex`
More formats can be added in `src/string-format-check.cpp`. Please contribute implementions for missing json schema draft formats. More formats can be added in `src/string-format-check.cpp`. Please contribute implementions for missing json schema draft formats.
## Default value processing ## Default value processing
As a result of the validation, the library returns a json patch including the default values of the specified schema. As a result of the validation, the library returns a json patch including the default values of the specified schema.
```C++ ```C++
@ -348,15 +350,17 @@ int main()
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
``` ```
The example above will output the specified default values `{"height":10,"width":20}` to stdout. The example above will output the specified default values `{"height":10,"width":20}` to stdout.
> Note that the default value specified in a `$ref` may be overridden by the current instance location. Also note that this behavior will break draft-7, but it is compliant to newer drafts (e.g. `2019-09` or `2020-12`). > Note that the default value specified in a `$ref` may be overridden by the current instance location. Also note that this behavior will break draft-7, but it is compliant to newer drafts (e.g. `2019-09` or `2020-12`).
# Contributing # Contributing
Before opening a pull request, please apply the coding style given in the This project uses [`pre-commit`](https://pre-commit.com/) to enforce style-checks. Please install and run it before
`.clang-format` by running clang-format from the git top-level for all touched creating commits and making pull requests.
files:
```shell ```console
git diff master --name-only | grep '\.[ch]pp$' | xargs -P 3 -I{} clang-format -i {} $ pip install pre-commit
$ pre-commit install
``` ```