Commit Graph

37 Commits

Author SHA1 Message Date
Simone Basso
4c65147009
WIP: Start preparing release v3.0.7 (#147)
* Use ooni/probe-engine 0.16.0
* Update all the other dependencies
* Use GitHub Actions rather than Travis CI
* Automatically build and test binaries on the target OS (for Windows, macOS, Linux on amd64)
* Make sure we correctly measure coverage
* Make sure we use `-race` when running tests
* Remove unnecessary scripts
* Make sure the README is up-to-date
* Write small script to update binary data and add GitHub Actions checks for it
* Notice that we needed to run ./updatebindata.sh and run it
* Self documenting instructions regarding cross compiling
* Set version number to v3.0.7-beta

Part of https://github.com/ooni/probe-engine/issues/748
2020-08-22 11:20:50 +02:00
Simone Basso
b05ec668e3 Pin to ooni/probe-engine 0.15.2 2020-07-23 19:39:06 +02:00
Simone Basso
de62c51342 Pin to ooni/probe-engine@v0.15.1 2020-07-23 11:29:55 +02:00
Simone Basso
6587c4d386 Pin to 57a29da91d
See 2d94c2eb4c
2020-07-21 20:33:19 +02:00
Simone Basso
552d8e73c2 Upgrade all deps to the latest stable version 2020-07-21 15:48:02 +02:00
Simone Basso
2f47634ad1
Use ooni/probe-engine@v0.14.1 (#141) 2020-07-10 11:23:45 +02:00
Simone Basso
9902d74f19 go get -v github.com/ooni/probe-engine@v0.13.2 && go mod tidy
Part of https://github.com/ooni/probe-engine/issues/728
2020-06-24 11:59:15 +02:00
Simone Basso
c10d91fbca go mod tidy 2020-06-19 13:04:57 +02:00
Simone Basso
596e3ae0f5 go.mod go.sum: pin to github.com/ooni/probe-engine@v0.13.1 2020-06-19 12:59:58 +02:00
Simone Basso
ef4b1aee76
Upgrade to probe-engine@v0.13.0 and fix Psiphon logic (#138)
* go.mod go.sum: pin to ooni/probe-engine@v0.13.0, update all other deps

Make sure dependencies of probe-engine are at the same exact version to
which is probe-engine, to avoid any possible issue.

* Readme.md: clarify the procedure for updating deps
2020-06-15 14:57:00 +02:00
Simone Basso
b4934b1619
Use ooni/probe-engine 0.12.0+patches (#133)
* nettests/groups.go: remove redundant struct names

* go.mod go.sum: update deps except probe-engine

* Update to ooni/probe-engine@e768161f91

The API has changed. Methods that used to change bits of the session have
been removed. Now the session is more immutable than before.

As such, we need to completely fill the config before using it.

* Set IncludeCountry to always true

Co-authored-by: Arturo Filastò <arturo@filasto.net>
2020-06-04 11:19:38 +02:00
Simone Basso
76bb083ec4 Update to probe-engine@v0.11.0
This also updates all the dependencies that needed it.
2020-05-14 16:53:22 +02:00
Simone Basso
46e01eab98 Pin to ooni/probe-engine@v0.10.0
Part of https://github.com/ooni/probe-engine/issues/504
2020-04-22 17:16:51 +02:00
Simone Basso
acbe133ad6 go.mod go.sum: pin to ooni/probe-engine@7ac6a37960
This includes fixes in the data format emitted by ndt7.
2020-04-08 13:04:25 +02:00
Simone Basso
4a563ebe13 Pin to latest probe-engine and bless v3.0.0-rc.13
I'm pinning to ooni/probe-engine@72c12b0b81
because it generates more correct data and I think we're going to have
most likely this probe-cli version in the stable desktop release.
2020-04-06 13:22:10 +02:00
Simone Basso
9f4ae7c78b Update direct and indirect dependencies 2020-04-05 23:38:39 +02:00
Simone Basso
07e4367f6d
nettests: Just use "ndt", which is now "ndt7" in probe-engine (#121)
Part of https://github.com/ooni/backend/issues/369
2020-03-18 15:50:55 +01:00
Simone Basso
fe0b4a02be
nettests/ndt.go: use ndt7 rather than ndt5 (#119)
Part of https://github.com/ooni/probe/issues/969
2020-03-12 19:36:32 +01:00
Simone Basso
1d5c913019
Update deps and pin to ooni/probe-engine@v0.8.0 (#118)
Part of https://github.com/ooni/probe/issues/1030
2020-03-10 12:02:30 +01:00
Simone Basso
6b9353ebe1 Pin to ooni/probe-engine@8ba2a70c5f
This allows us to pull this fix https://github.com/ooni/probe-engine/pull/375.

It's part of the QA for probe-cli https://github.com/ooni/probe/issues/1028.
2020-02-27 14:34:13 +01:00
Simone Basso
f3b21f90c6
deps: latest upper.io/db and pin probe-engine (#116)
We're specifically pinning a commit of probe-engine that is using
MK v0.10.11, so that we address the following issues:

1. we use db-ip.com for the country database as opposed to using
the increasingly stale MaxMind database (see https://github.com/ooni/probe-engine/issues/334)

2. we're using an implementation of WhatsApp that does not suffer
from the super-old CIDR bug (see https://github.com/ooni/probe-engine/issues/341)

3. we're not linking to libcurl anymore on Windows and Linux, thanks to
this new version of MK where we can optionally disable libcurl; we are
still linking to libcurl on macOS, but that has no impact on the binary
size since on macOS libcurl is part of the system

This should be enough, from my side to bless a new release of the
probe-cli (see https://github.com/ooni/probe/issues/1028).
2020-02-26 22:34:23 +01:00
Simone Basso
051aee1aac
Update all deps, pin to probe-engine@v0.7.0 (#114) 2020-02-22 15:23:20 +01:00
Simone Basso
c38c01f974
build.sh: pass -tags ooni to build (#112)
See https://github.com/ooni/probe-engine/pull/333

Closes https://github.com/ooni/probe-engine/issues/267
2020-02-18 09:53:38 +01:00
Simone Basso
028ff6ed63
go.mod go.sum: update all dependencies (#107)
Closes https://github.com/ooni/probe/issues/1010
2020-02-11 09:21:56 +01:00
Simone Basso
85e8b611da go.mod go.sum: pin to latest probe-engine with summary for tor
At this stage is fine to just pin to the latest master. I am planning on
blessing periodic releases and it's fine to pin sometimes.

I'm pinning this specific version because it currently supports the
summary for experiment/tor, which @sarathms would benefit from.
2020-01-30 18:12:53 +01:00
Simone Basso
03e7d2ccac
circumvention: add the tor experiment (#100)
* go.mod go.sum: update all non-probe-engine deps

For each line in the go.mod, run `go get -u -v $package` if the
line is not an indirect dependency and is not probe-engine.

Upgrading probe-engine is going to require the same spell that
is used in probe-engine to update psiphon.

* go get -v github.com/ooni/probe-engine@v0.5.0

This just pins to the latest probe-engine but we've not manually
pinned all the other dependencieds yet.

Take care of the trivial API changes in probe-engine as well, such
that we can have a working build after this commit.

* go.mod go.sum: pin to probe-engine dependencies

Basically: remove all indirect dependencies. Merge this go.mod with
the one of probe-engine, to pin dependencies. Run `go mod tidy`.

* circumvention: add basic implementation of tor

This needs to be polished further, of course. But at least we have
now added support for running tor in the circumvention group.

* Readme.md: document how to update dependencies

* go get -v github.com/ooni/probe-engine@fcc9ee0a7afb

* go get -v github.com/ooni/probe-engine@4d254f5b2

* nettests/tor.go: implement summary test keys
2020-01-28 10:05:54 +01:00
Simone Basso
259ab41b15 Implement the circumvention nettest group
Only Psiphon for now. Closes #87 #77.
2019-12-28 17:48:07 +01:00
Simone Basso
67d2f544a7 go.mod go.sum: update all direct dependencies 2019-12-26 18:10:13 +01:00
Simone Basso
8a1622d0c1 Update to ooni/probe-engine@v0.3.0
1. `go get -u github.com/ooni/probe-engine@v0.3.0`

2. `go mod tidy`

3. fix build failures
2019-12-26 18:09:23 +01:00
Arturo Filastò
e0160b5881 Bump probe-engine 2019-11-14 18:02:18 +01:00
Simone Basso
0bee29bc21 Upgrade to github.com/ooni/probe-engine@v0.2.0 2019-11-12 16:45:24 +01:00
Simone Basso
946289d6fe
Use more general ooni/probe-engine API (#67)
No functional change, just importing less stuff and meddling
much less with the internals of ooni/probe-engine.
2019-10-28 14:05:05 +01:00
Simone Basso
f3865d2ec0
Upgrade to ooni/probe-engine@v0.1.1 (#60) 2019-10-03 09:43:25 +02:00
Arturo Filastò
f425d3f007 Implement the show command (#53) 2019-10-02 18:23:14 +02:00
Simone Basso
b9b555ba68 Integrate further with ooni/probe-engine: episode two (#46)
* utils/geoip.go: use github.com/ooni/probe-engine

Let's start using the engine by rewriting utils/geoip.go to
be just a thin wrapper around the engine functionality.

* Ready for review

* Checkpoint: the im tests are converted

Still have some doubts with respect to the variables that
are passed to MK via probe-engine. Will double check.

* fix(i/c/r/run.go): write the correct logic

* nettests: one more comment and also fix a format string

* Tweak previous

* progress

* Fix doofus

* better comment

* XXX => actionable comment

* Add glue to simplify test keys management

Making the concept of measurement more abstract in the engine is
not feasible because, when submitting a measurement, we need to
modify it to update the report ID and the measurement ID. Therefore,
returning a serialized measurement is not a good idea. We will
keep using a model.Measurement in the engine.

Changing model.Measurement.TestKeys's type from a `interface{}`
pointing to a well defined data structure to `map[string]interface{}`
is a regression because means that we are moving from code that
has a clear and defined structure to code that is more complicated
to parse and validate. Since we're already suffering havily from
the lack of a good schema, I'm not going to make the situation
worst by worsening the engine. At least for ndt7 and psiphon, we
now have a good schema and I don't want to lose that.

However, the current code in this repository is expecting the
test keys to be a `map[string]interface{}`. This choice was
dictated by the fact that we receive a JSON from Measurement Kit
and by the fact that there's not a clear schema.

To solve this tension, in this commit I am going to write glue
adapter code that makes sure that the TestKeys of a Measurement
are converted to `map[string]interface{}`. This will be done
using a type cast where possible and JSON serialization and parsing
otherwise. In a perfect world, glue is not a good idea, but in a
real world it may actually be useful.

When all tests in the engine will have a clear Go data structure,
we'll then remove the glue and just cast to the proper data
structure from `interface{}` where required.

* nettests/performance: use probe-engine

* go.{mod,sum}: upgrade to latest probe-engine

* nettests/middlebox: use ooni/probe-engine

* Update to the latest probe-engine

* web_connectivity: rewrite to use probe-engine

* Cosmetic change suggested by @hellais

* nettests/nettests.go: remove unused code

* nettests/nettests.go: fix progress

* nettests/nettests.go: remove go-measurement-kit code

* We don't depend on go-measurement-kit anymore

* Improve non-verbose output where possible

See also: https://github.com/measurement-kit/measurement-kit/issues/1856

* Make web_connectivity output pleasant

* Update to the latest probe-engine

* nettests/nettests.go: honour sharing settings

* Update to the latest probe-engine

* Use log.WithFields for probe-engine

* Update go.mod go.sum

* Revert "Update go.mod go.sum"

This reverts commit 5ecd38d8236f4a4e9b77ddb8e8a0d1e3cdd4b818.

* Revert "Revert "Update go.mod go.sum""

This reverts commit 6114b31eca98826112032776bd0feff02d763ecd.

* Upgrade ooni/probe-engine

* Unset GOPATH before running go build commands

* Dockefile: fix linux build by using latest

* Update to the latest ooni/probe-engine

```
go get -u github.com/ooni/probe-engine
go mod tidy
```

* Repair build
2019-08-15 18:08:43 +02:00
Simone Basso
df629237be
Use ooni/probe-engine: episode 1 (#42) 2019-05-23 16:38:46 +02:00
Simone Basso
9992690f8f Use MK v0.10.x, zap legacy GeoIP, build also on Linux (#29)
* Gopkg.lock: use MK v0.10.3

* ooni: stop using legacy GeoIP database files

* Some yak shaving of Makefile

1. remove now broken commands to download deps

2. also define the CXX cross compiler

* chore(dep): migrate from dep to go 1.11+ modules

See https://blog.callr.tech/migrating-from-dep-to-go-1.11-modules/

I need this to simplify my life in building for Travis.

* Introduce build.sh and repair build

In going forward, I believe we don't actually need a Makefile but I
didn't want to make such a radical change now.

* Another strategy wrt gopath

* travis: run regress tests on macOS

Closes #30
2019-05-15 15:48:06 +03:00