Skip to content

Releases: ooni/probe-cli

OONI Probe CLI v3.20.0

13 Dec 19:50
v3.20.0
Compare
Choose a tag to compare

This is a stable release. On a high-level, this is what changed since 3.19:

  • ✨ Web Connectivity v0.5 is nearly production ready
  • ✨ Initial support for Go 1.21
  • 🚧 Scripting to make research faster
  • 🚧 Refactoring and improvements for the experimental dslx package
  • 🚧 Release engineering (aka keeping the lights on)
  • 🐛 Miscellaneous bug fixes

More in detail:

✨ Web Connectivity v0.5 is nearly production ready

We implemented the minipipeline package, borrowing the https://github.com/ooni/data design, to make sure that Web Connectivity v0.5 produces the same top-level keys produced by Web Connectivity v0.4 for our GVisor-based QA test suite. Because of that, we're now ready to start enabling Web Connectivity v0.5 for all users for limited periods of time using the check-in API's feature flags. By doing this, we would be able to more thoroughly A/B test v0.4 and v0.5. In turn, this would allow us to fix additional bugs and hopefully v0.5 would be the default implementation of Web Connectivity in the 3.21 or 3.22 release cycles.

Related commits

✨ Initial support for Go 1.21

Community members asked us to add Go 1.21 support. It is now possible to compile OONI Probe using Go 1.21. Because Psiphon does not support Go 1.21 yet, when you're building using Go 1.21, it would not be possible to use Psiphon as a circumvention tunnel or to run the Psiphon experiment. (Psiphon should finish migrating to Go 1.21 soon, so OONI Probe 3.21 should have full Go 1.21 support.)

Related commits

🚧 Scripting to make research faster

As part of our richer input efforts (https://github.com/ooni/2023-05-richer-input), we developed DSL code designed to executed from a scripting language environment. We have been also using this code for research purposes, to address cases where we need to iterate faster and deploying new binaries frequently slows down the process significantly. In this release, we are starting to merge part of this code into this repository and to expose it (as an experimental preview) to the miniooni tool. Namely, we have merged the underlying DSL engine and the corresponding bindings for the https://github.com/dop251/goja JavaScript engine. We will add additional documentation about this functionality in the next release cycles, as we continue experimenting and using it for research. In the meanwhile, see https://github.com/bassosimone/2023-12-09-ooni-javascript/ for additional information and details about this experimental feature.

Related commits

🚧 Refactoring and improvements for the experimental dslx package

We continued working on our experimental internal DSL prototype, by trying to simplify and make it suitable for production usage. We also used some of the refactored code in the scripting functionality implementation described above.

Related commits

🚧 Release engineering (aka keeping the lights on)

🐛 Miscellaneous bug fixes

OONI Probe CLI v3.20.0-alpha

13 Dec 18:37
v3.20.0-alpha
e5c1f6a
Compare
Choose a tag to compare
Pre-release

This is an alpha release for creating a branching point for the release/3.20 branch.

Please see release 3.20 for an explanatory changelog.

What's Changed

Full Changelog: v3.19.0-alpha...v3.20.0-alpha

OONI Probe CLI v3.19.2

01 Dec 11:41
v3.19.2
Compare
Choose a tag to compare

This is a stable release. On a high-level, this is what changed in 3.19:

  • ✨ Better Support for Measuring Throttling
  • ✨ Introducing OONI Probe Bridges
  • ✨ Improving Measurements Scrubbing
  • ✨ Netemx: A Better Unit/Integration Testing Framework
  • ✨ OONI Run v2 Support
  • ✨ Unit Testing Improvements (go test -short ./... does not use the host network anymore)
  • 🐛 OONI Probe Bootstrap fixes
  • 🐛 Web Connectivity v0.4 Fixes
  • 🐛 Snowflake Fixes

We recommend reading v3.19.0-alpha's changelog because it contains an exhaustive description of the most significant changes in 3.19 compared to 3.18. The following is the complete list of all the releases that led to this release:

On top of the v3.19.1 release, this follow-up release adds the following changes backported from the master branch:

  • 🐛 fix(signal): trim down tested endpoints 85c6d1b

OONI Probe CLI v3.19.1

21 Nov 14:41
v3.19.1
Compare
Choose a tag to compare

This is a stable release. On a high-level, this is what changed in 3.19:

  • ✨ Better Support for Measuring Throttling
  • ✨ Introducing OONI Probe Bridges
  • ✨ Improving Measurements Scrubbing
  • ✨ Netemx: A Better Unit/Integration Testing Framework
  • ✨ OONI Run v2 Support
  • ✨ Unit Testing Improvements (go test -short ./... does not use the host network anymore)
  • 🐛 OONI Probe Bootstrap fixes
  • 🐛 Web Connectivity v0.4 Fixes
  • 🐛 Snowflake Fixes

We recommend reading v3.19.0-alpha's changelog because it contains an exhaustive description of the most significant changes in 3.19 compared to 3.18. The following is the complete list of all the releases that led to this release:

On top of the v3.19.0 release, this follow-up release adds the following changes backported from the master branch:

  • 🐛 Update signal test endpoints 6b32fbf

OONI Probe CLI v3.19.0

20 Oct 09:11
v3.19.0
Compare
Choose a tag to compare

This is a stable release. On a high-level, this is what changed in 3.19:

  • ✨ Better Support for Measuring Throttling
  • ✨ Introducing OONI Probe Bridges
  • ✨ Improving Measurements Scrubbing
  • ✨ Netemx: A Better Unit/Integration Testing Framework
  • ✨ OONI Run v2 Support
  • ✨ Unit Testing Improvements (go test -short ./... does not use the host network anymore)
  • 🐛 OONI Probe Bootstrap fixes
  • 🐛 Web Connectivity v0.4 Fixes
  • 🐛 Snowflake Fixes

We recommend reading v3.19.0-alpha's changelog because it contains an exhaustive description of the most significant changes in 3.19 compared to 3.18. The following is the complete list of all the unstable releases that led to this release:

On top of the v3.19.0-alpha.5 release, this follow-up release adds the following changes backported from the master branch:

  • 🐛 fix(registry): disable vanilla_tor by default 6a40751
  • 🚧 chore: upgrade NDKVERSION to latest r26 09d3102
  • 🚧 chore: set version to 3.19.0 3cce54b

In short, we also marked vanilla_tor as disabled by default, because it has issues on Android. We'll enable it again using the check-in API, but we would like to take advantage of the possibility of deciding to disable it in the future. We also need to upgrade the NDK since there has been a new release of the r26 LTS.

OONI Probe CLI v3.19.0-alpha.5

18 Oct 16:40
v3.19.0-alpha.5
Compare
Choose a tag to compare
Pre-release

This release is an alpha release. It is not ready for general availability and should only be used for QA.

A stable release will follow suit hopefully in a few days from today.

This release is based on v3.19.0-alpha.4. Make sure you also read the changelog of:

On top of the v3.19.0-alpha.4 release, this follow-up release adds the following changes backported from the master branch:

  • 🐛 fix(nettests): failing to start a nettest is a warning 7c4e537

In short, without this diff, running experimental with default-disabled experiments such as riseupvpn when they are check-in-disabled shows a visual error that modifies the view and which is totally unnecessary to show.

OONI Probe CLI v3.19.0-alpha.4

16 Oct 22:40
v3.19.0-alpha.4
Compare
Choose a tag to compare
Pre-release

This release is an alpha release. It is not ready for general availability and should only be used for QA.

A stable release will follow suit hopefully in a few days from today.

This release is based on v3.19.0-alpha.3. Make sure you also read the changelog of:

On top of the v3.19.0-alpha.3 release, this follow-up release adds the following changes backported from the master branch:

  • 🐛 fix(ios): publish libcrypto, libssl, libevent, libtor, libz frameworks a2b71cb

In short, this release fixes the iOS build by publishing all the required dependencies frameworks.

OONI Probe CLI v3.19.0-alpha.3

12 Oct 18:14
v3.19.0-alpha.3
Compare
Choose a tag to compare
Pre-release

This release is an alpha release. It is not ready for general availability and should only be used for QA.

A stable release will follow suit hopefully in a few days from today.

This release is based on v3.19.0-alpha.2. Make sure you also read the changelog of:

On top of the v3.19.0-alpha.2 release, this follow-up release adds the following changes backported from the master branch:

  • 🚧 refactor(buildtool): use list for OpenSSL ./Configure flags 06cda7b
  • 🚧 cleanup(buildtool): disable unit tests when building tor cfb3c85
  • 🐛 fix(buildtool): let libevent use OpenSSL's pkgconfig 79740bc
  • ✨ feat(buildtool): build zlib, openssl, libevent, and tor for iOS ed915b5
  • 🚧 chore(buildtool): add ios-build unit tests d71e416
  • ✨ feat(ios): replace go-libtor with ./internal/libtor 4513a12

In short, this release includes work to build tor for iOS using the same build tool used for Android.

OONI Probe CLI v3.19.0-alpha.2

11 Oct 20:58
v3.19.0-alpha.2
Compare
Choose a tag to compare
Pre-release

This release is an alpha release. It is not ready for general availability and should only be used for QA.

A stable release will follow suit hopefully in a few days from today.

This release is based on v3.19.0-alpha.1. Make sure you read the changelog of v3.19.0-alpha.1 and v3.19.0-alpha.

On top of the v3.19.0-alpha.1 release, this follow-up release adds the following changes backported from the master branch:

  • 🚧 cleanup(riseupvpn): remove summary keys 7c45887
  • 🚧 refactor(riseupvpn): rename structs, change progress, bump version cafc118
  • 🚧 refactor(riseupvpn): handle failing API and simplify test 3989fd4
  • 🚧 feat(riseupvpn): include bootstrap in progress a1b7f60
  • 🚧 chore(ooniprobe): add riseupvpn to experimental test suite 0eabe59

In short, this release includes work to re-enable the riseupvpn experiment as part of ooniprobe run experimental. We are adding back this experiment as a data collection experimental experiment. We are not performing local classification of the results in the probe anymore. Also, this experiment is disabled-by-default, which means we can choose when to run it using the check-in API. We will slowly reintroduce this experiment to all users and monitor the results it is collecting as part of the 3.19 cycle. Further improvements to this experiment will be implemented in subsequent ooniprobe releases.

It's important to note that riseupvpn data format has changed, and the experiment minor version number has changed.

We now have just two top-level test keys:

  • api_failures (a []string containing all API calls failures), and
  • ca_cert_status (a bool which was also present in the previous version of riseupvpn and has not changed its semantics).

If you were processing riseupvpn measurements, you should update your code to use the new keys described above.

OONI Probe CLI v3.19.0-alpha.1

11 Oct 16:19
v3.19.0-alpha.1
Compare
Choose a tag to compare
Pre-release

This release is an alpha release. It is not ready for general availability and should only be used for QA.

A stable release will follow suit hopefully in a few days from today.

This release is based on v3.19.0-alpha, whose changelog you are encouraged to read.

On top of the v3.19.0-alpha release, this follow-up release adds the following changes backported from the master branch:

  • ✨ feat: mvp of conditionally enabling experiments 85b63eb
  • 🐛 fix(torsf): bump the version number e5f950b
  • ✨ feat: add echcheck to the experimental suite a8f4fc2
  • 🐛 fix(ooniprobe): make sure we actually run echcheck d13a7ca
  • 🐛 fix(registry): mark torsf as disabled by default 7bcf415
  • 🚧 chore: use go1.20.10 a4037a2

In short, we're now based on go1.20.10 (released yesterday). Also, the echcheck experiment now runs as part of ooniprobe run experimental. However, and notably, both echcheck and torsf are now disabled-by-default experiments. This means that they will only run if in the last 24h the backend has told us it was safe to do so. (You can always bypass this restriction by setting the OONI_FORCE_ENABLE_EXPERIMENT environment variable to 1.)

We're setting echcheck as disabled by default because it is a new experiment and we want to use the backend API to incrementally and gradually expose this experiment to all users. We're setting torsf as disabled by default because Snowflake made changes during the ooniprobe 3.18 cycle that broke the torsf experiment, and we want to be robust to potential future similar changes. Hence, while as part of this release we will configure the OONI backend API to allow all users to run torsf, we reserve the possibility of disabling torsf, should it be needed, anytime in the future.