1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
# Contribute to SnakeYAML Engine
## Architecture
Tons of useful information can be found on [the official site](https://yaml.org/spec/1.2.2/).
General step are defined [in the spec](https://yaml.org/spec/1.2.2/#31-processes):

Loading has the following explicit steps (please note that Events form a Stream, not a Tree)

Composer delivers also Stream of Nodes (because there may be more than one document in the YAML
stream, but for simplification the diagram mentions only one Node graph)
## Testing
### Import test date
Engine uses [Comprehensive Test Suite for YAML](https://github.com/yaml/yaml-test-suite) for the
tests.
### Build the data
- clone [YAML Test Suite](https://github.com/yaml/yaml-test-suite)
- take tag (the trunk is work in progress)
```
git tag | grep data
git checkout <LATEST TAG>
```
- build with flat data (remove sub-folders)
```shell
make clean data && make data-update && mv data orig && mkdir data; find orig -name === | sed 's/===//; s/orig\///' | while read d; do (set -x; cp -r orig/$d data/${d/\/0/-0}); done; rm -fr orig
```
- copy *data* folder to `src/test/resources/comprehensive-test-suite-data`
### Check the import
Run the tests and fix the errors:
./docker-run-jdk8.sh
### Format source
./mvnw clean install site -Preformat
|