Clone this repo:
  1. 7d37b04 bad_cl_detector: Delete. by Andrew Lamb · 3 years, 2 months ago main master
  2. 08bb558 README: Notice of function removal by Dhanya Ganesh · 5 years ago factory-atlas-11907.B factory-octopus-11512.B factory-sarien-12033.B firmware-atlas-11827.12.B firmware-atlas-11827.B firmware-sarien-12200.B release-R73-11647.B release-R74-11895.B release-R75-12105.B release-R76-12239.B stabilize-11554.B stabilize-11647.104.B stabilize-11647.70.B stabilize-11686.B stabilize-11839.1.B stabilize-11839.3.B stabilize-11839.B stabilize-11895.108.B stabilize-11895.109.B stabilize-11895.118.B stabilize-11895.72.B stabilize-11895.89.B stabilize-11895.95.B stabilize-11998.B stabilize-12054.B stabilize-12058.B stabilize-12060.B stabilize-12061.B stabilize-12088.B stabilize-12105.100.B stabilize-12105.75.B stabilize-12121.B stabilize-12202.B stabilize-12206.B stabilize-12222.B stabilize-12239.19.B stabilize-12239.46.B stabilize-12239.67.B stabilize-12239.89.B stabilize-12239.92.B stabilize-12249.B stabilize-12301.B stabilize-atlas-11512.6.B stabilize-atlas-11512.B stabilize-atlas.11448.B stabilize-flapjack-12109.B stabilize-kukui-12285.B
  3. 56ec0b8 Remove waterfall parameter from InsertBuild calls in tests by David Burger · 5 years ago firmware-kalista-11343.B release-R72-11316.B stabilize-111316.112.B stabilize-11316.123.B stabilize-11316.146.B stabilize-11316.148.B stabilize-11316.35.B stabilize-11316.37.B stabilize-11316.76.B stabilize-11316.82.B stabilize-octopus-11316.37.B stabilize-octopus-11316.38.B
  4. a6bade4 Add local server by Paul Hobbs · 6 years ago factory-grunt-11164.135.B factory-grunt-11164.B factory-nami-10715.106.B factory-nami-10715.B factory-nocturne-10984.B factory-nocturne-11066.B factory-rammus-11289.B firmware-11297.250.B firmware-grunt-11031.149.B firmware-grunt-11031.B firmware-nami-10775.108.B firmware-nami-10775.130.B firmware-nami-10775.B firmware-nocturne-10984.B firmware-octopus-11297.106.B firmware-octopus-11297.196.B firmware-octopus-11297.250.B firmware-octopus-11297.81.B firmware-octopus-11297.83.B firmware-octopus-11297.B firmware-rammus-11275.B firmware-servo-11011.B release-R67-10575.B release-R68-10718.B release-R69-10895.B release-R70-11021.B release-R71-11151.B stabilize-10569.B stabilize-10575.54.B stabilize-10575.58.B stabilize-10682.B stabilize-10718.111.B stabilize-10718.69.B stabilize-10718.71.B stabilize-10718.88.B stabilize-10866.B stabilize-10895.56.B stabilize-10895.B stabilize-10985.B stabilize-11005.B stabilize-11020.B stabilize-11021.84.B stabilize-11101.B stabilize-11151.100.B stabilize-11151.113.B stabilize-11151.59.B stabilize-11217.B stabilize-11306.B stabilize-atlas-11022.B stabilize-atlas-11177.B stabilize-atlas.10736.B stabilize-atlas.10819.B stabilize-jetstream-11056.B stabilize-meowth-10574.B stabilize-nocturne-10986.B stabilize-nocturne.10646.B stabilize-nocturne.10736.B stabilize-nocturne.10819.B stabilize-nocturne.10828.B
  5. b901d2d Add change_source to feature map by Paul Hobbs · 6 years ago

Bad CL Detector [Discontinued]

Deprecated [Dec 2018]

As of Dec 2018, the underlying database calls in this repository are no longer supported in Chromite.

As of Sep 2020 the code in this repo was deleted because it contains uninclusive language. See go/chromium-project-code-inclusion and The repo is left unarchived because some branched manifests reference it.


A system to detect if a given build failure is caused by bad CL.

Getting started

The virtualenv for this project is managed with pipenv. If you don't already have pipenv installed, you can install it with “pip install pipenv”.

Then run:

deactivate  # make sure you are not already in a virtualenv
pipenv --two install
protoc -I=lib/protos --python_out=lib/protos

You can fetch cidb credentials with “cros cidbcreds”. You will need to pass in the db credentials' path to the script.

Training & cross validation

Downloading training data, training a model and cross validating is done by one script:

pipenv run python lib/ --cred-dir=$CRED_DIR

Or, you can enter a virtualenv shell with “pipenv shell”, and then just run python lib/.

Currently this requires word2vec and word2int files to work. Making this self-contained is a work in progress.


Tests are run with pytest:

pipenv run pytest