Skip to content

Releases: ooni/probe-cli

OONI Probe CLI v3.15.1

07 Jun 10:08
v3.15.1
Compare
Choose a tag to compare

Highlights

  • ✨ We now run the experimental group for automatic/unattended ooniprobe runs
  • ✨ We reintroduced the vanilla_tor experiment
  • ✨ We added vanilla_tor to the experimental group
  • ✨ Since vanilla_tor and torsf could run for a few minutes, now we only run them for automatic/unattended runs
  • ✨ We now avoid leaving empty directories behind when we successfully submit measurements
  • ✨ We added the new quicping experiment
  • ✨ We added the new tcpping experiment
  • ✨ We added the new tlsping experiment
  • ✨ We added the new simplequicping experiment
  • ✨ We added the new dnsping experiment
  • ✨ We improved torsf to submit additional metrics related to the tor progress
  • ✨ We added several more static inputs for the dnscheck experiment
  • ✨ We now include the endpoint being used by TLS handshakes
  • ✨ We significantly improved our DNS (and especially our DNS-over-UDP) implementation
  • ✨ We significantly improved our code for detecting bogons
  • 🐛 We fixed a bug where no experiment was submitting the backend / test helpers information
  • 🐛 We fixed a bug where the last measurement in webconnectivity was sometimes not submitted on mobile
  • 🚧 We now mark automatic/unattended runs as ooniprobe-cli-unattended
  • 🚧 We retired the Summer 2021 implementation of the websteps experiment prototype
  • 🚧 We removed three IP lookuppers (avast, ipconfig, ipinfo) which were blocked by sanctions in some countries

Changes since v3.15.0

  • 🐛 fix(stunreachability): don't emit spurious progress events 4fb5f7d
  • 🐛 fix(dnscheck): remove apparently-broken static input 261d1a4

Full Changelog: v3.15.0...v3.15.1

OONI Probe CLI v3.15.0

02 Jun 09:46
v3.15.0
Compare
Choose a tag to compare

Highlights

  • ✨ We now run the experimental group for automatic/unattended ooniprobe runs
  • ✨ We reintroduced the vanilla_tor experiment
  • ✨ We added vanilla_tor to the experimental group
  • ✨ Since vanilla_tor and torsf could run for a few minutes, now we only run them for automatic/unattended runs
  • ✨ We now avoid leaving empty directories behind when we successfully submit measurements
  • ✨ We added the new quicping experiment
  • ✨ We added the new tcpping experiment
  • ✨ We added the new tlsping experiment
  • ✨ We added the new simplequicping experiment
  • ✨ We added the new dnsping experiment
  • ✨ We improved torsf to submit additional metrics related to the tor progress
  • ✨ We added several more static inputs for the dnscheck experiment
  • ✨ We now include the endpoint being used by TLS handshakes
  • ✨ We significantly improved our DNS (and especially our DNS-over-UDP) implementation
  • ✨ We significantly improved our code for detecting bogons
  • 🐛 We fixed a bug where no experiment was submitting the backend / test helpers information
  • 🐛 We fixed a bug where the last measurement in webconnectivity was sometimes not submitted on mobile
  • 🚧 We now mark automatic/unattended runs as ooniprobe-cli-unattended
  • 🚧 We retired the Summer 2021 implementation of the websteps experiment prototype
  • 🚧 We removed three IP lookuppers (avast, ipconfig, ipinfo) which were blocked by sanctions in some countries

Changes since v3.15.0-alpha.1

  • 🐛 fix(dnscheck): stop emitting progress b606494

Full Changelog: v3.15.0-alpha.1...v3.15.0

OONI Probe CLI v3.15.0-alpha.1

23 May 16:43
v3.15.0-alpha.1
Compare
Choose a tag to compare
Pre-release

Highlights

  • 🐛 fix(netxlite): hotfix for Android EAI_NODATA ce35b64
  • 🐛 fix(oonimkall): export CheckInConfig.RunType e3e3b61

Full Changelog: v3.15.0-alpha...v3.15.0-alpha.1

OONI Probe CLI v3.15.0-alpha

20 May 15:58
v3.15.0-alpha
a4bdc6d
Compare
Choose a tag to compare
Pre-release

Highlights

  • ✨ We now run the experimental group for automatic/unattended ooniprobe runs
  • ✨ We reintroduced the vanilla_tor experiment
  • ✨ We added vanilla_tor to the experimental group
  • ✨ Since vanilla_tor and torsf could run for a few minutes, now we only run them for automatic/unattended runs
  • ✨ We now avoid leaving empty directories behind when we successfully submit measurements
  • ✨ We added the new quicping experiment
  • ✨ We added the new tcpping experiment
  • ✨ We added the new tlsping experiment
  • ✨ We added the new simplequicping experiment
  • ✨ We added the new dnsping experiment
  • ✨ We improved torsf to submit additional metrics related to the tor progress
  • ✨ We added several more static inputs for the dnscheck experiment
  • ✨ We now include the endpoint being used by TLS handshakes
  • ✨ We significantly improved our DNS (and especially our DNS-over-UDP) implementation
  • ✨ We significantly improved our code for detecting bogons
  • 🐛 We fixed a bug where no experiment was submitting the backend / test helpers information
  • 🐛 We fixed a bug where the last measurement in webconnectivity was sometimes not submitted on mobile
  • 🚧 We now mark automatic/unattended runs as ooniprobe-cli-unattended
  • 🚧 We retired the Summer 2021 implementation of the websteps experiment prototype
  • 🚧 We removed three IP lookuppers (avast, ipconfig, ipinfo) which were blocked by sanctions in some countries

What's Changed since v3.14.0-alpha.1

  • fix(i/t/tor.go): show correct command line by @bassosimone in #673
  • fix(reduceErrors): return error when given an empty list by @bassosimone in #675
  • fix: disable riseupvpn experiment by @bassosimone in #679
  • fix(resolvermake): re-enable dns.google DoH HTTP3 resolutions by @yeganathan18 in #680
  • fix(jafar): re-enable previously broken integration test by @bassosimone in #681
  • feat(torsf): collect tor logs, select rendezvous method, count bytes by @bassosimone in #683
  • geolocate: add cloudflare-based IP lookup by @SrijanSriv in #676
  • fix(geolocate): enforce 7s timeout for each lookupper by @bassosimone in #678
  • chore: start hacking on 3.15.0-alpha by @bassosimone in #687
  • doc: clarify semantic versioning policy by @bassosimone in #688
  • [forwardport] fix(netx): stop collecting HTTP performance metrics by @bassosimone in #689
  • [forwardport] fix(jafar/iptables/test): force using pure Go resolver by @bassosimone in #690
  • [forwardport] fix(qa): adapt to new wcth by @bassosimone in #691
  • jafar(README.md): fix typo by @ainghazal in #692
  • [forwardport] fix(ooniprobe): ensure tunnelDir is correctly set by @bassosimone in #694
  • feat: add oonireport client by @kelmenhorst in #682
  • feat: add an experimental quicping experiment by @kelmenhorst in #677
  • fix(dnscheck): log "ok" rather than "" on success by @yeganathan18 in #695
  • chore: import DoH servers from DNSCrypt/dnscrypt-resolvers by @yeganathan18 in #693
  • doc(CONTRIBUTING.md): add golang resources and links to community channels by @yeganathan18 in #697
  • [forwardport] fix(oonimkall): ensure we can submit last measurement by @bassosimone in #699
  • fix(ndt7): force our bundled CA pool by @bassosimone in #700
  • cleanup: use ErrorToStringOrOK func in other tests that returns nil by @yeganathan18 in #701
  • feat: add support for OpenBSD by @Erethon in #703
  • chore(ci): generate tarball with vendored dependencies when releasing by @CyberTailor in #702
  • fix: experimental should be unattended by @yeganathan18 in #704
  • chore: support go1.18 and update dependencies by @bassosimone in #708
  • chore: use ooni/go-libtor v1.1.5 by @bassosimone in #712
  • chore: use go1.17.9 by @bassosimone in #713
  • fix(ooniprobe): use ooniprobe-cli-unattended for unattended runs by @bassosimone in #714
  • fix(cli/geoip): correct typos in tests by @ParitoshKabra in #710
  • fix(torsf): ensure tor-logs-filtering regexp is correct by @ParitoshKabra in #707
  • feat(torsf): add default_timeout test keys by @DecFox in #709
  • tls_handshakes: add endpoint addresses to handshake list by @DecFox in #711
  • cli: upgrade to lucas-clemente/quic-go@v0.27.0 by @DecFox in #715
  • Upgrade library to github.com/upper/db/v4 by @stergem in #705
  • feat: introduce the tcpping experiment by @bassosimone in #696
  • feat: introduce the tlsping experiment by @bassosimone in #716
  • feat: introduce the simplequicping experiment by @bassosimone in #717
  • feat: add a simple dnsping experiment by @bassosimone in #674
  • fix(httpx): correctly combine paths by @yeganathan18 in #706
  • feat: re-implement the vanilla_tor experiment by @bassosimone in #718
  • fix(ndt7): should read and discard messages during upload by @yeganathan18 in #719
  • chore(ci): start saving/restoring go build cache by @bassosimone in #721
  • cleanup: remove websteps summer 2021 implementation by @bassosimone in #722
  • chore: import improved bogons handling code by @bassosimone in #723
  • feat(netxlite): implement parallel resolver by @bassosimone in #724
  • fix(netxlite): LookupHTTPS: short circuit IP addr by @bassosimone in #725
  • refactor(netxlite): consolidate IPv4/IPv6 checking code by @bassosimone in #726
  • fix(netxlite): HTTPSSvc: better no_answer checks by @bassosimone in #727
  • fix(netxlite): map servfail error by @bassosimone in #728
  • cleanup(quic): wait for handshake completion in netxlite by @bassosimone in #729
  • netxlite: factor common code for parsing UDPAddr by @bassosimone in #730
  • refactor(netxlite): add Transport suffix to DNS transports by @bassosimone in #731
  • fix(netxlite): reject replies with wrong queryID by @bassosimone in #732
  • fix(netxlite): prefer composition over embedding by @bassosimone in #733
  • feat(netxlite): implements NS queries by @bassosimone in #734
  • fix(netxlite): ensure we only accept DNS responses by @bassosimone in #735
  • fix(backend api): re-enable previosuly disabled tests by @bassosimone in #737
  • fix(ooniprobe): remove empty measurements directories by @stergem in #720
  • fix(webconnectivity): Add TH to measurement by @DecFox in #736
  • fix(ooniprobe show): correctly handle % in the JSON by @bassosimone in #738
  • chore: use go1.17.10 by @bassosimone in #740
  • chore: upgrade to ooni/probe-assets v0.9.0 by @bassosimone in #741
  • chore: update all dependencies by @bassosimone in #742
  • chore: run go generate ./... by @bassosimone in #743
  • chore(mk): update the version of the tools we use by @bassosimone in #744
  • feat(ooniprobe): add vanilla_tor to experimental by @bassosimone in #745
  • chore: update the user-agent used for measuring by @bassosimone in #746
  • cleanup(geolocate): remove IP lookuppers blocked by sanctions by @bassosimone in #747
  • fix(mk): use NDK version that works with gomobile by @bassosimone in #748

New Contributors

  • @yeganathan18 made their first contribution in htt...
Read more

OONI Probe CLI v3.14.2

12 Apr 10:13
v3.14.2
Compare
Choose a tag to compare

Changes since v3.14.1:

  • 🚧 [backport] chore(ci): generate release tarball 2f95f49

  • ✨ [backport] feat: add support for OpenBSD 5dcd8a0

  • ✨ [backport] chore: support go1.18 and update dependencies 45a7092

Regarding support for go1.18, this release adds support for building ooniprobe using go1.18. We are still using go1.17 internally for building ooniprobe. Also, ooni/go and ooni/oohttp are still using go1.17. A future release will completely switch to go1.18.

OONI Probe CLI v3.14.1

23 Feb 15:21
v3.14.1
Compare
Choose a tag to compare

This release is just like v3.14.0, except that the version number is correctly set.

See https://github.com/ooni/probe-cli/releases/tag/v3.14.0 for a list of what changed.

OONI Probe CLI v3.14.0

23 Feb 12:52
v3.14.0
Compare
Choose a tag to compare

This is what changed since v3.14.0-beta:

  • 🐛 fix(oonimkall): ensure we can submit last measurement 018b5de

  • 🐛 [backport] fix(ndt7): force our bundled CA pool 7aa0b5a

  • 🐛 fix(netxlite): hotfix for Android EAI_NODATA 2b48dcf

These are the most important changes since v3.13.0:

  • ✨ We refactored the way in which ooniprobe list works to ensure that it does not use nested queries. This improvement made ooniprobe list significantly faster (around 7x in our testing).

  • ✨ The torsf experiment is now part of ooniprobe run experimental. Note: if you are packaging ooniprobe, you need to make sure the package depends on tor, because torsf assumes the tor binary is installed on the system.

  • ✨ We improved the Go rewrite of the Web Connectivity test helper and we're starting to roll it out (which may have some impact on the measurements quality: the new implementation should work ~better with ooniprobe 3.x).

  • ✨ We improved iplookup by adding support for using Cloudflare to lookup the IP address of a probe.

  • ✨ We're now annotating measurements with the probe's architecture.

  • 🐛 Fixed dnscheck integration with ooniprobe run experimental: now ooni/probe-desktop is able to run dnscheck as part of experimental smoothly (while integration was more complex with release/3.13).

  • 🐛 Fixedstunreachability integration with ooniprobe run experimental: running stunreachability now records the URL we test.

  • 🐛 Fixed ndt so that it works on old Android devices whose CA bundle is now very outdated (e.g., Android 6) https://github.com/ooni/probe-cli/commit
    /7aa0b5abedf658b6876ce265588ef25afd202217.

  • 🐛 We bumped psiphon timeout to 300 seconds to better investigate issues in bootstrapping (the previous timeout, 60 s, was considered to be too short according to Psiphon developers).

  • 🐛 We disable the riseupvpn experiment this release, following reports of false positives, and we're working to make it more robust.

  • 🐛 Fixed DNS lookup on Android devices 2b48dcf.

  • 🚨 We modified stunreachability to expect input to be an URL like stun://1.2.3.4:567

  • 🚧 We improved web_connectivity by making some heuristics dealing with the status code more robust.

  • 🚧 We rewrote the tor experiment to use more modern networking abstractions and we've removed previous abstractions (this should be kept in mind; we tested and are satisfied, but still this change could cause some differences).

  • 🚧 We moved the scripts to package for debian to https://github.com/ooni/probe-releases.

  • 🚧 We added support for experiments returning more than one measurement per input, which is required by websteps (the replacement for web_connectivity on which we're working).

  • 🚧 We now have a new policy for experiments "or_static_default" that allows us to statically vendor a test list for experiments such as stunreachability or dnscheck for which there is currently no backend support.

  • 🚧 We wrote a new implementation of websteps, called webstepsx, which is going to be the prototype that we'll keep updating (the previous implementation, named websteps, has now been deprecated).

  • 🚧 We added the new internal/measurex package, which shall be the underlying library used by websteps, and wrote a tutorial about it.

  • 🚧 We refactored common data types into the internal/model package to better isolate packages from each other.

  • 🚧 We updated dependencies and we're now using go1.17.6.

OONI Probe CLI v3.14.0-beta

11 Feb 12:08
v3.14.0-beta
Compare
Choose a tag to compare
Pre-release

This is the second pre-release we'll use for testing torsf along everything else that changed since the last pre-release. Here's what we roughly did in this pre-release cycle along with some hints on what to test more intensively:

  • ✨ session: re-enable Google DoH resolver #680
  • ✨ torsf: significantly improve after convo with Snowflake devs #683
  • ✨ geolocate: add cloudflare as an IP lookup option #676
  • 🚧 riseupvpn: temporarily disable until we fix data quality issues #679
  • 🐛 torsf: show correct tor command line #673
  • 🐛 netxlite: handle unlikely corner case rather than crashing #675
  • 🐛 geolocate: enforce 7s timeout for each IP lookup operation #678
  • 🐛 obfs4: pin a previous obfs4 version until we understand data quality issues f5e10e0
  • 🐛 ooniprobe: ensure tunnelDir is set correctly 59c63ee

The aspect that requires more careful testing still remains torsf.

OONI Probe CLI v3.14.0-alpha.1

24 Jan 13:59
v3.14.0-alpha.1
2a566f2
Compare
Choose a tag to compare
Pre-release

This is the pre-release we'll use for testing torsf along everything else that changed since the last release. Here's what we roughly did in this release cycle along with some hints on what to test more intensively:

  • ✨ Ensure that we can run torsf on desktop and mobile. To do that, we need tor. On desktop, we ship tor along with the desktop app. We have added support for probe-desktop to tell probe-cli where tor has been installed. On mobile, we're using https://github.com/ooni/go-libtor (our fork of https://github.com/ipsn/go-libtor). We should obviously test this new experiment.

  • ✨ We refactored the way in which ooniprobe list works to ensure that it does not use nested queries. This improvement made ooniprobe list significantly faster (around 7x in our testing).

  • 🐛 Ensure that all experiments return either a valid measurement or nil. This allowed us to close a bug introduced when implementing websteps, where we strictly required experiments to return either a measurement or nil. Previously, the measurement engine was more lax, and some experiments took advantage of that by returning an error and a valid measurement. This occurred in cases in which there was a network error, so the correct behavior would have been to save the error inside of the measurement and return nil. Now we should have ensured that experiments don't do that anymore. As part of these changed, we fixed the following experiments: dash, ndt7, psiphon, run, stunreachability, urlgetter. (We never released a stable version featuring this bug, but the previous alpha version featured this bug.)

  • 🚧 Refactor the tor experiment to use a newer underlying measurement library, which allowed us to delete the code it was depending on (basically the original https://github.com/ooni/netx). Such code was not used by any other experiment. This obviously means that we should test this experiment more intensively.

  • 🚧 Upgrade the Snowflake library to v2. The upgrade implies that we should test torsf more than usual (but, since this is a new experiment, it will be anyway in the spotlight).

  • 🚧 Refactor internals to have a unique internal/model package with important data structures and interfaces shared by all other packages, to create new opportunities for decoupling modules and writing unit tests more easily.

To summarize, the main aspects to test are: torsf, tor, and psiphon. It's also worth double checking whether ooniprobe list is significantly faster after upgrading to this new release.

OONI Probe CLI v3.13.0

14 Dec 16:00
Compare
Choose a tag to compare

This is what changed since v3.13.0-beta:

  • 🐛 ensure we generate an usable CocoaPod spec (21a9b97 and e41b625)

These are the most important changes since v3.10.1:

  • ✨ you can now run dnscheck and stunreachability as part of ooniprobe run experimental
  • 🐛 reliability fixes and improvements in the API between the measurement engine and mobile APIs
  • 🐛 [backport] fix(webconnectivity): ignore any status code <= 0 (#579) #580
  • 🐛 fix the way in which we map errors on Windows, so most unknown_error... should go away now
  • 🐛 [backport] fix(geolocate): use powerdns.org whoami service (#592) #595
  • 🐛 [backport] fix(psiphon): increase the maximum runtime to 300s (#596) #597
  • ❗ relicense repository to GPLv3: #446
  • ✨ torsf: sketch out experiment for running snowflake over tor using the ptx package: #373 #378 #387 #415
  • ✨ tutorial: start adding tutorials explaining how to contribute to the OONI engine: #390
  • 🛠️ ooniprobe-cli.timer: run every 12h: #512
  • 🐛 ensure we don't leak QUIC connections: #407
  • ✨ [backport] annotate measurements with their architecture #540
  • 🐛 [backport] webconnectivity & oohelperd comparison and fixes #537 #541 #542 #543 #545 #546