Skip to content

Releases: ooni/probe-cli

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

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

OONI Probe CLI v3.14.0-alpha

06 Dec 16:59
v3.14.0-alpha
6cb8e3d
Compare
Choose a tag to compare
Pre-release

This is what changed since v3.12.0-alpha.3:

  • 🐛 fix(measurex): handle case where TH is nil (#610)
  • 🚧 [forwardport] ci/cd: publish binaries onto a release when we create a tag (#609) #611
  • 🐛 fix(websteps, webconnectivity): send the correct user agent (#616)
  • 🚧 [forwardport] refactor(oonimkall): merge internal/task into oonimkall (#617) #618
  • 🚧 [forwardport] fix(oonimkall): don't close channel to signal end of task (#619) #620
  • 🚧 fix(oonimkall): improve channel management pattern (#621)
  • 🚧 forwardport: pull the patches mentioned in ooni/probe#1908 (#629)
  • 🚧 refactor(stunreachability): input required and must be an URL (#630)
  • 🚧 refactor: create common package for holding STUN input (#631)
  • 🚧 refactor: introduce and use InputOrStaticDefault (#632)
  • 🚧 fix(ooniprobe): dnscheck,stunreachability run w/ default input (#633)
  • 🚧 fix(oonimkall): run tests with InputOrStaticDefault policy (#634)
  • 🗒️ [forwardport] release 3.11: update all the dependencies (#636) (#637)

Overall, these changes align master with changes in v3.13.0-beta aimed at making ooniprobe run experimental work as intended with dnscheck and stunreachability, plus improvements in correctness and testability for oonimkall.

We also updated dependencies.

OONI Probe CLI v3.13.0-beta

06 Dec 16:57
v3.13.0-beta
Compare
Choose a tag to compare
Pre-release

This is what changed since v3.11.0-beta.2:

  • 🐛 fix(webconnectivity): send specific user agent (#615)
  • 🚧 refactor(oonimkall): merge internal/task into oonimkall (#617)
  • 🐛 fix(oonimkall): don't close channel to signal end of task (#619)
  • 🚧 [backport] fix(oonimkall): improve channel management pattern (#621) #622
  • 🚧 fix(oonimkall): make logger used by tasks unit testable (#623)
  • 🚧 feat(oonimkall): improve taskEmitter testability (#624)
  • 🚧 refactor(oonimkall): make the runner unit-testable (#625)
  • 🚧 feat(oonimkall): write unit tests for the runner component (#626)
  • 🚧 refactor(oonimkall): merge files, use proper names, zap unneeded integration tests #627
  • 🚧 refactor(oonimkall): we can simplify StartTask tests (#628)
  • 🚧 Backport patches mentioned by ooni/probe#1912 (#635)
  • 🗒️ release 3.11: update all the dependencies (#636)

All these changes were aiming at making ooniprobe run experimental work as intended. While there, we spent some time improving the oonimkall mobile library implementation to make it more correct and more easily unit testable.

We also updated dependencies.

OONI Probe CLI v3.11.0-beta.2

23 Nov 14:21
v3.11.0-beta.2
856e436
Compare
Choose a tag to compare
Pre-release

This is what changed since v3.11.0-beta.1:

  • 🐛 fix(signal): use the correct string to score a measurement (#602)
  • 🐛 fix(mk): do nothing if we already have psiphon config (#605)
  • ✨ [backport] feat: publish miniooni binaries into releases (#607) (#608)
  • ✨ ci/cd: publish binaries onto a release when we create a tag (#609)
  • ❗ because of automatic cloud builds, we're not using the PRODUCT-staging branches anymore. If you were tracking those branches, now you should not track them anymore and just track release branches. (Sorry, about this change of plans!)

The most tangible advancement in this release is that now we're able to automatically produce cloud builds. The assets in this release are indeed all generated using GitHub actions.