commit | 1b61ced248f9e64449260494832e55a198440a56 | [log] [tgz] |
---|---|---|
author | Laura Peskin <pesk@google.com> | Mon Oct 26 23:51:17 2020 +0000 |
committer | CQ Bot <commit-bot@chromium.org> | Mon Oct 26 23:51:17 2020 +0000 |
tree | d3d095e97bdaa9609c4c82ef32b84a866e90277b | |
parent | 58f768e43b7c27ac6df30691bd6d2d494cc66551 [diff] |
[Cobalt 1.1 privacy] Bucket integers on client for per-device histogram reports with privacy For reports without added privacy, contributions for the Cobalt 1.1 per-device histogram report types consist of raw integers which are bucketed on the server side. However, for per-device histogram reports with privacy, the encoding is much more straightforward and will likely give us a better privacy/error tradeoff if we bucket contributions on the client side and send an encoding of the histogram bucket index. This CL implements client-side bucketing and privacy encoding for per-device histogram reports with privacy and updates the ReportDefinition proto to note the change. Change-Id: I817b33125d6960b20c341ccfc684cc7b2c62315d Reviewed-on: https://fuchsia-review.googlesource.com/c/cobalt/+/442720 Commit-Queue: Laura Peskin <pesk@google.com> Reviewed-by: Alexandre Zani <azani@google.com>
Cobalt is a pipeline for collecting metrics data from user-owned devices in the field and producing aggregated reports.
Cobalt includes a suite of features for preserving user privacy and anonymity while giving product owners the data they need to improve their products.
The code in the Git repo at https://fuchsia.googlesource.com/cobalt is known as Cobalt Core. It contains:
In order to have a working Cobalt system you need to also have
//third_party/cobalt
.This document describes how to develop, build and test Cobalt Core independently of Fuchsia.
For example via
git clone https://fuchsia.googlesource.com/cobalt
cd cobalt
./cobaltb.py setup
This will take a few minutes the first time. It does the following:
third_party
dir via Git submodules.sysroot
dir. This uses CIPD.The Python script cobaltb.py
in the root directory is used to orchestrate building and testing Cobalt. It was already used above in ./cobaltb.py setup
.
./cobaltb.py -h
for general helpcobaltb.py <command> -h
for help on a command./cobaltb.py build
The Cobalt build uses GN and ninja.
./cobaltb.py test
./cobaltb.py fmt
./cobaltb.py lint
See: clang-tidy for an explanation of clang-tidy configuration options.
Cobalt uses the Gerrit code review tool. Although Cobalt Core is independent of Fuchsia, we do share infrastructure with Fucshia and so much of the instructions from Fuchsia's Contributing Guide apply to Cobalt Core. The main difference is that Cobalt Core does not use Jiri--it uses Git submodules instead.
Follow the instructions here.
To create a change in Gerrit do the following:
cd ~/cobalt
git checkout -b <branch_name>
git add <files>
git commit
git push origin HEAD:refs/for/master
See the Gerrit documentation for more information.
After creating a change, to upload a patch to your change, do the following:
git add <files>
--amend
option: git commit --amend
git push origin HEAD:refs/for/master