From 8b58c4aaeb4d893a5628d65fecda9eb79867ae27 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 00:16:14 -0800 Subject: [PATCH 01/17] Create github-actions-demo.yml --- .github/.github/github-actions-demo.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/.github/github-actions-demo.yml diff --git a/.github/.github/github-actions-demo.yml b/.github/.github/github-actions-demo.yml new file mode 100644 index 0000000..15a61d6 --- /dev/null +++ b/.github/.github/github-actions-demo.yml @@ -0,0 +1,18 @@ +name: GitHub Actions Demo +run-name: ${{ github.actor }} is testing out GitHub Actions 🚀 +on: [push] +jobs: + Explore-GitHub-Actions: + runs-on: ubuntu-latest + steps: + - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." + - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!" + - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." + - name: Check out repository code + uses: actions/checkout@v4 + - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." + - run: echo "🖥️ The workflow is now ready to test your code on the runner." + - name: List files in the repository + run: | + ls ${{ github.workspace }} + - run: echo "🍏 This job's status is ${{ job.status }}." From 59303f2e3fdd24d08a2e8754818330d77b48eb92 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 00:26:09 -0800 Subject: [PATCH 02/17] Create github-actions-demo.yml --- .github/workflows/github-actions-demo.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/workflows/github-actions-demo.yml diff --git a/.github/workflows/github-actions-demo.yml b/.github/workflows/github-actions-demo.yml new file mode 100644 index 0000000..15a61d6 --- /dev/null +++ b/.github/workflows/github-actions-demo.yml @@ -0,0 +1,18 @@ +name: GitHub Actions Demo +run-name: ${{ github.actor }} is testing out GitHub Actions 🚀 +on: [push] +jobs: + Explore-GitHub-Actions: + runs-on: ubuntu-latest + steps: + - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." + - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!" + - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." + - name: Check out repository code + uses: actions/checkout@v4 + - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." + - run: echo "🖥️ The workflow is now ready to test your code on the runner." + - name: List files in the repository + run: | + ls ${{ github.workspace }} + - run: echo "🍏 This job's status is ${{ job.status }}." From 0b9ba891537f8c5719ee8fea4650c9b971fe0b9f Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 00:31:53 -0800 Subject: [PATCH 03/17] Create cmake-multi-platform.yml --- .github/workflows/cmake-multi-platform.yml | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 .github/workflows/cmake-multi-platform.yml diff --git a/.github/workflows/cmake-multi-platform.yml b/.github/workflows/cmake-multi-platform.yml new file mode 100644 index 0000000..9ec0432 --- /dev/null +++ b/.github/workflows/cmake-multi-platform.yml @@ -0,0 +1,75 @@ +# This starter workflow is for a CMake project running on multiple platforms. There is a different starter workflow if you just want a single platform. +# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml +name: CMake on multiple platforms + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + build: + runs-on: ${{ matrix.os }} + + strategy: + # Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable. + fail-fast: false + + # Set up a matrix to run the following 3 configurations: + # 1. + # 2. + # 3. + # + # To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list. + matrix: + os: [ubuntu-latest, windows-latest] + build_type: [Release] + c_compiler: [gcc, clang, cl] + include: + - os: windows-latest + c_compiler: cl + cpp_compiler: cl + - os: ubuntu-latest + c_compiler: gcc + cpp_compiler: g++ + - os: ubuntu-latest + c_compiler: clang + cpp_compiler: clang++ + exclude: + - os: windows-latest + c_compiler: gcc + - os: windows-latest + c_compiler: clang + - os: ubuntu-latest + c_compiler: cl + + steps: + - uses: actions/checkout@v3 + + - name: Set reusable strings + # Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file. + id: strings + shell: bash + run: | + echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT" + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: > + cmake -B ${{ steps.strings.outputs.build-output-dir }} + -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }} + -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} + -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} + -S ${{ github.workspace }} + + - name: Build + # Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator). + run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }} + + - name: Test + working-directory: ${{ steps.strings.outputs.build-output-dir }} + # Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator). + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: ctest --build-config ${{ matrix.build_type }} From 7470ca0d77afb737c89853a597a773d5df6d5494 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 00:35:02 -0800 Subject: [PATCH 04/17] Delete .github/.github directory --- .github/.github/github-actions-demo.yml | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 .github/.github/github-actions-demo.yml diff --git a/.github/.github/github-actions-demo.yml b/.github/.github/github-actions-demo.yml deleted file mode 100644 index 15a61d6..0000000 --- a/.github/.github/github-actions-demo.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: GitHub Actions Demo -run-name: ${{ github.actor }} is testing out GitHub Actions 🚀 -on: [push] -jobs: - Explore-GitHub-Actions: - runs-on: ubuntu-latest - steps: - - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." - - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!" - - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." - - name: Check out repository code - uses: actions/checkout@v4 - - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." - - run: echo "🖥️ The workflow is now ready to test your code on the runner." - - name: List files in the repository - run: | - ls ${{ github.workspace }} - - run: echo "🍏 This job's status is ${{ job.status }}." From d127b77804173305143c4cd8e21b20e08cf47d22 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 00:35:30 -0800 Subject: [PATCH 05/17] Delete .github/workflows/github-actions-demo.yml --- .github/workflows/github-actions-demo.yml | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 .github/workflows/github-actions-demo.yml diff --git a/.github/workflows/github-actions-demo.yml b/.github/workflows/github-actions-demo.yml deleted file mode 100644 index 15a61d6..0000000 --- a/.github/workflows/github-actions-demo.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: GitHub Actions Demo -run-name: ${{ github.actor }} is testing out GitHub Actions 🚀 -on: [push] -jobs: - Explore-GitHub-Actions: - runs-on: ubuntu-latest - steps: - - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." - - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!" - - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." - - name: Check out repository code - uses: actions/checkout@v4 - - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." - - run: echo "🖥️ The workflow is now ready to test your code on the runner." - - name: List files in the repository - run: | - ls ${{ github.workspace }} - - run: echo "🍏 This job's status is ${{ job.status }}." From b9df4e2bbce6938f03530c352fb5b1ff8c8a1632 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 00:39:07 -0800 Subject: [PATCH 06/17] Update cmake-multi-platform.yml --- .github/workflows/cmake-multi-platform.yml | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/.github/workflows/cmake-multi-platform.yml b/.github/workflows/cmake-multi-platform.yml index 9ec0432..35039b7 100644 --- a/.github/workflows/cmake-multi-platform.yml +++ b/.github/workflows/cmake-multi-platform.yml @@ -23,26 +23,16 @@ jobs: # # To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list. matrix: - os: [ubuntu-latest, windows-latest] - build_type: [Release] - c_compiler: [gcc, clang, cl] + os: [ubuntu-latest] + build_type: [Release, Debug] + c_compiler: [gcc, clang] include: - - os: windows-latest - c_compiler: cl - cpp_compiler: cl - os: ubuntu-latest c_compiler: gcc cpp_compiler: g++ - os: ubuntu-latest c_compiler: clang cpp_compiler: clang++ - exclude: - - os: windows-latest - c_compiler: gcc - - os: windows-latest - c_compiler: clang - - os: ubuntu-latest - c_compiler: cl steps: - uses: actions/checkout@v3 @@ -62,7 +52,9 @@ jobs: -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} - -S ${{ github.workspace }} + -DLIB_PROTO_MUTATOR_DOWNLOAD_PROTOBUF=ON + -GNinja + -S ${{ github.workspace }}/src - name: Build # Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator). From 1506b57b84f44edc32a82d90c7bb75da009766f5 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 00:40:54 -0800 Subject: [PATCH 07/17] Update cmake-multi-platform.yml --- .github/workflows/cmake-multi-platform.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake-multi-platform.yml b/.github/workflows/cmake-multi-platform.yml index 35039b7..a4e41ee 100644 --- a/.github/workflows/cmake-multi-platform.yml +++ b/.github/workflows/cmake-multi-platform.yml @@ -54,7 +54,7 @@ jobs: -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DLIB_PROTO_MUTATOR_DOWNLOAD_PROTOBUF=ON -GNinja - -S ${{ github.workspace }}/src + -S ${{ github.workspace }} - name: Build # Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator). From d89be703882d2218dcb227a70d0e7f4af1d4984f Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 00:45:27 -0800 Subject: [PATCH 08/17] Update cmake-multi-platform.yml --- .github/workflows/cmake-multi-platform.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/cmake-multi-platform.yml b/.github/workflows/cmake-multi-platform.yml index a4e41ee..be10435 100644 --- a/.github/workflows/cmake-multi-platform.yml +++ b/.github/workflows/cmake-multi-platform.yml @@ -37,6 +37,9 @@ jobs: steps: - uses: actions/checkout@v3 + - name: Install Ninja + run: sudo apt install -y ninja-build + - name: Set reusable strings # Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file. id: strings From 095d72ebd5ecf1f909de165d4083c3426c48347c Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 00:53:50 -0800 Subject: [PATCH 09/17] Update cmake-multi-platform.yml --- .github/workflows/cmake-multi-platform.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/cmake-multi-platform.yml b/.github/workflows/cmake-multi-platform.yml index be10435..8b5e9b2 100644 --- a/.github/workflows/cmake-multi-platform.yml +++ b/.github/workflows/cmake-multi-platform.yml @@ -60,11 +60,7 @@ jobs: -S ${{ github.workspace }} - name: Build - # Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator). - run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }} + run: ninja -C ${{ steps.strings.outputs.build-output-dir }} - name: Test - working-directory: ${{ steps.strings.outputs.build-output-dir }} - # Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator). - # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - run: ctest --build-config ${{ matrix.build_type }} + run: ninja -C ${{ steps.strings.outputs.build-output-dir }} check From 7928160aa6909b6a3c1d1b935c0f41f8da34e18a Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 00:58:59 -0800 Subject: [PATCH 10/17] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 690710c..ffbb915 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # libprotobuf-mutator +![example workflow](https://github.com/google/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml/badge.svg) [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/libprotobuf-mutator.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html#libprotobuf-mutator) ## Overview From 9aafba1d98d367599f1b868a281163eb03d9e085 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 00:59:18 -0800 Subject: [PATCH 11/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ffbb915..d28a994 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # libprotobuf-mutator -![example workflow](https://github.com/google/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml/badge.svg) +![example workflow](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml/badge.svg) [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/libprotobuf-mutator.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html#libprotobuf-mutator) ## Overview From f7c6f3f0fb42069003ee68bfa79947de0ae398e9 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 01:08:42 -0800 Subject: [PATCH 12/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d28a994..01a4e95 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # libprotobuf-mutator -![example workflow](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml/badge.svg) +[![Build Status](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml/badge.svg)]https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/libprotobuf-mutator.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html#libprotobuf-mutator) ## Overview From a56694fea1c35d93ba6c563f66251d5c9eeeb60d Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 01:09:05 -0800 Subject: [PATCH 13/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 01a4e95..0333000 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # libprotobuf-mutator -[![Build Status](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml/badge.svg)]https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml +[![Build Status](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml/badge.svg)](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml) [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/libprotobuf-mutator.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html#libprotobuf-mutator) ## Overview From f34a5f1e35c8ffcd8fede578ca00d66886af67e5 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 01:11:01 -0800 Subject: [PATCH 14/17] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0333000..f6a17f4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # libprotobuf-mutator -[![Build Status](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml/badge.svg)](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml) -[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/libprotobuf-mutator.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html#libprotobuf-mutator) +[![Build Status](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml/badge.svg?event=push)](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml?event=push) +[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/libprotobuf-mutator.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html#libprotobuf-mutator?query=event%3Apush) ## Overview libprotobuf-mutator is a library to randomly mutate From 2288972afe6066b410d37dd9761f6a906a563512 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 01:11:56 -0800 Subject: [PATCH 15/17] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f6a17f4..808ebea 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # libprotobuf-mutator -[![Build Status](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml/badge.svg?event=push)](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml?event=push) -[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/libprotobuf-mutator.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html#libprotobuf-mutator?query=event%3Apush) +[![Build Status](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml/badge.svg?event=push)](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml?query=event%3Apush) +[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/libprotobuf-mutator.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html#libprotobuf-mutator) ## Overview libprotobuf-mutator is a library to randomly mutate From 592a7988d3f8005f5206cc2b83f8e355279ab975 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 01:12:48 -0800 Subject: [PATCH 16/17] Update cmake-multi-platform.yml --- .github/workflows/cmake-multi-platform.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/cmake-multi-platform.yml b/.github/workflows/cmake-multi-platform.yml index 8b5e9b2..c6cb4ae 100644 --- a/.github/workflows/cmake-multi-platform.yml +++ b/.github/workflows/cmake-multi-platform.yml @@ -25,11 +25,8 @@ jobs: matrix: os: [ubuntu-latest] build_type: [Release, Debug] - c_compiler: [gcc, clang] + c_compiler: [clang] include: - - os: ubuntu-latest - c_compiler: gcc - cpp_compiler: g++ - os: ubuntu-latest c_compiler: clang cpp_compiler: clang++ From abdc1f33a932eb430d3f87e9f139b7db9971ffec Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 11 Jan 2024 01:13:36 -0800 Subject: [PATCH 17/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 808ebea..50081f1 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # libprotobuf-mutator -[![Build Status](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml/badge.svg?event=push)](https://github.com/vitalybuka/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml?query=event%3Apush) +[![Build Status](https://github.com/google/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml/badge.svg?event=push)](https://github.com/google/libprotobuf-mutator/actions/workflows/cmake-multi-platform.yml?query=event%3Apush) [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/libprotobuf-mutator.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html#libprotobuf-mutator) ## Overview