Skip to content
This repository has been archived by the owner on Mar 5, 2022. It is now read-only.

The Google Breaks Everything Protocol

Zhiming Wang edited this page Oct 7, 2020 · 1 revision

Here’s the protocol for handling incidents when Google-side changes completely breaks googler, which historically led to a flood of “No results” issues each time. Protocol first implemented in #377.

  • Once a report is confirmed and proven to be non-transient (e.g. still reproducible after 24 hours), regardlessly of whether a fix can be made available immediately, the epoch in googler and info.json should be advanced to the date of the report (in UTC), and the issue number recorded. info.json should look like:

    {
        "epoch": "20201001",
        "tracking_issue": 372,
        "fixed_on_master": false,
        "fixed_in_release": false
    }

    At this point users would see a message like this:

    $ googler hello  # Issue acknowledged, not fixed.
    No results.
    Your version of googler is broken due to Google-side changes.
    The issue is tracked at https://github.com/jarun/googler/issues/372.
  • Once a fix is committed to master, fixed_on_master should be set to true:

    {
        "epoch": "20201001",
        "tracking_issue": 372,
        "fixed_on_master": true,
        "fixed_in_release": false
    }

    At this point users would see a message like this:

    $ googler hello  # Fixed on master, not released.
    No results.
    Your version of googler is broken due to Google-side changes.
    The fix has been pushed to master, pending a release.
    Please download the master version https://git.io/googler or wait for a release.
  • Once the fix is released, fixed_in_released should be updated to the version tag:

    {
        "epoch": "20201001",
        "tracking_issue": 372,
        "fixed_on_master": true,
        "fixed_in_release": "v4.3"
    }

    At this point users would see a message like this:

    $ googler hello  # Fix released.
    No results.
    Your version of googler is broken due to Google-side changes.
    A new version, v4.3, has been released to address the changes.
    Please upgrade to the latest version.