github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/tm2/pkg/amino/CONTRIBUTING.md (about)

     1  ## Compatibility
     2  
     3  ### Protobuf
     4  
     5  Amino currently aims to be and stay proto3 compatible. Please, ensure that any
     6  change you add retains proto3 compatibility. Basic compatibility is ensured by
     7  tests. Proto3 may eventually become deprecated for Amino2.
     8  
     9  ## Fuzzers
    10  
    11  Amino is fuzzed using several fuzzers. At least run [gofuzz] by running the command:
    12  ```
    13  make test
    14  ```
    15  If [go-fuzzer] isn't installed on your system, make sure to run:
    16  ```
    17  go get -u github.com/dvyukov/go-fuzz/go-fuzz-build github.com/dvyukov/go-fuzz/go-fuzz
    18  ```
    19  The fuzzers are run by:
    20  ```
    21  make gofuzz_json
    22  ```
    23  and
    24  ```
    25  make gofuzz_binary
    26  ```
    27  respectively. Both fuzzers will run in an endless loop and you have to quit them manually. They will output 
    28  any problems (crashers) on the commandline. You'll find details of those crashers in the project directories 
    29  `tests/fuzz/binary/crashers` and `tests/fuzz/json/crashers` respectively. 
    30  
    31  If you find a crasher related to your changes please fix it, or file an issue containing the crasher information.
    32  
    33  [gofuzz]: https://github.com/google/gofuzz
    34  [go-fuzzer]: https://github.com/dvyukov/go-fuzz
    35  [protobuf]: https://developers.google.com/protocol-buffers/