Skip to content

OONI Probe CLI v3.22.0-alpha

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 15 May 07:56
v3.22.0-alpha
ad70998

This is an alpha release for creating a branching point for the release/3.22 branch. As usual, this release includes both an OONI Probe CLI release and the corresponding release of the measurement engine, which is hosted by the same repository.

Here's a thematic summary of what changed since v3.21.0-alpha:

  • ✨ Preparing Web Connectivity LTE for use in production
  • 🐛 Prioritize DNS results when communicating with backends
  • 🚧 Refactor and document communication with the OONI backend
  • 📖 Documenting the release process
  • 🚧 Minor changes & bug fixes

In terms of testing requirements, this release mostly changed the interaction with backend services, so we need

  1. QA testing of ooniprobe and miniooni operating in normal and restricted operating conditions, to see how the new algorithms are faring, collect feedback, and plan for future changes (or revert patches if needed).

  2. We should also probably test whether we're able to trigger the Web Connectivity LTE A/B testing using the check-in API, so we're actually able to perform the A/B testing 😅.

  3. We should also test the new oohelperd in production, for now the code has a generous 8 seconds timeout for receiving HTTP headers rather than leaving the timeout unbounded (we should be fine, but we should nonetheless test).

  4. We should ensure in the desktop app that we can reset the OONI_HOME multiple times without errors.

  5. We should test in the CLI that the "panics" added for handling survey errors have no practical implication unless something very weird like not being able to write the standard output happens.

More in detail, here's what has changed:

✨ Preparing Web Connectivity LTE for use in production

We worked towards closing all the open Web Connectivity LTE issues, such that we can finally be well placed to run an A/B testing between the v0.4 and LTE using this version of the OONI Probe Engine.

🐛 Prioritize DNS results when communicating with backends

We documented the strategy to communicate with backends, including the OONI backend, and we discussed the design as part of the #1552. During such a review, it was requested to modify the policy with which we communicate with the backends, so that the DNS results have higher priority. The main concern of this change request was to avoid long recovery periods if the currently deployed bridge becomes unavailable as well as to tilt the overall design such that uncensored OONI Probe users communicate with the backends in the simplest possible way.

🚧 Refactor and document communication with the OONI backend

We wanted to document the interaction with the OONI backend and specifically with the "probe services" (i.e., the collection of APIs used by OONI Probe), per ooni/probe#2700. To this end, we seized the opportunity to simplify the code interactions, reduce the number of used packages, and refactor the code to improve its reliability and future usability.

📖 Documenting the release process

We were asked to document the release process in ooni/probe#2698, and the resulting work is this:

🚧 Releasing & maintenance

This set of changes deal with preparing a release. In particular, in this case, we took on the chore of reducing the number of warnings emitted by gosec, such that its output can actually be informative and actionable (there was lots of noise). In terms of behavioral changes in the ooniprobe binary, these are the two most "impactful" changes:

  1. I explicitly ignore errors when resetting with -f the OONI_HOME directory, to keep the previous idempotent behavior, because I think that otherwise the desktop app may emit errors if asked to delete the OONI_HOME multiple times: https://github.com/ooni/probe-cli/pull/1603/files#diff-2e841e5388e3f75b0ab808e74d5b34a9ebb72466a508daecda35625a7eab5c7fR29

  2. I am now panicking if survey fails (which should not happen unless we misconfigure survey in the code or we're not able to write to the standard output): https://github.com/ooni/probe-cli/pull/1603/files#diff-3e09d6a095d686f531f06efe21b6e430b311340af5ce74989f110dc05424cbcdR24

  3. I am now reporting an error if we fail to update the database to set the upload status: https://github.com/ooni/probe-cli/pull/1603/files#diff-2a4cd822f78eb174dc7c6b88e3ab71be4810624b358b98109c10bcb5371e4844R249

  4. I have now configured timeouts for receiving headers in oohelperd: https://github.com/ooni/probe-cli/pull/1603/files#diff-663f720a0015bc642e1957e965f9bc9115cea500fc0268bf5a6e22b5ad7cb44dR111

Here's the full list of pull requests:

🚧 Minor changes & bug fixes

Full Changelog: v3.21.0-alpha...v3.22.0-alpha