Skip to content

OONI Probe CLI v3.14.0-alpha.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@bassosimone bassosimone released this 24 Jan 13:59
· 972 commits to master since this release
v3.14.0-alpha.1
2a566f2

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.