Skip to content

v0.8.0

Compare
Choose a tag to compare
@bassosimone bassosimone released this 10 Mar 09:30
· 700 commits to master since this release
v0.8.0
dea2d21

This release features significant API changes.

Now you MUST close a session, e.g.:

sess, err := engine.NewSession(config)
if err != nil {
    log.Fatal(err)
}
defer sess.Close()

We should have done this before. We are doing this now, because we are now aware of this issue.

The second API change is that now an experiment implementation is represented by an interface, model.ExperimentMeasurer, which describes an experiment to the engine.

type ExperimentMeasurer interface {
    // ExperimentName returns the experiment name.
    ExperimentName() string

    // ExperimentVersion returns the experiment version.
    ExperimentVersion() string

    // Run runs the experiment with the specified context, session,
    // measurement, and experiment calbacks.
    Run(
        ctx context.Context, sess ExperimentSession,
        measurement *Measurement, callbacks ExperimentCallbacks,
    ) error
}

The third change is that the SessionConfig.TLSConfig field has been removed. You now have now way to specify a CA bundle different from the one which we chose as default.

The fourth change is that ExperimentBuilder.Build has ben renamed ExperimentBuilder.NewExperiment.

The fifth change is that log.Logger is now model.Logger.

The sixth change is that handlers.Callbacks is now model.ExperimentCallbacks.

The seventh change is that github.com/ooni/netx is now github.com/ooni/probe-engine/netx along with the following changes into the API:

  1. the netx/httpx package has been merged with the netx package and all the names that were in httpx now contain the HTTP string inside them, e.g. httpx.Client => netx.HTTPClient

  2. all the public functions and methods that used to take an handler as argument now don't take it anymore, and we removed the alternative methods which did not take an handler and had the NoHandler suffix

Finally, this release requires Go 1.14 and improves support for Android.

Read on for the usual classification of the PRs that make this release.

Improvements

  • oonimkall: be liberal in the settings we accept (#364)

  • .github/workflows: add tests using MK (#369)

  • Require and use measurement-kit v0.10.11 (#374)

  • Replace internal/httpx code with netx (#383)

  • sniblocking: revamp classification mechanism (#397)

API changes

  • Move httpx code into the internal package (#378)

  • internal: remove the retrying dialer (#379)

  • Vendor ooni/netx@4f8d645 and use it (#380)

  • netx: unify netx and httpx packages (#381)

  • netx: merge public API with internal (#382)

  • remove session/session.go and experiment/experiment.go (#385)

  • session.go: ensure we close idle connections (#386)

Updates

  • internal/resources: update assets to 20200225143707 (#373)

  • Update all dependencies and use Go 1.14 (#395)

Bug fixes

  • iplookup: remove akamai IP lookup method (#368)

  • mkcgo: fail if we don't have the right MK version (#370)

  • orchestra: register desktop clients with AS0 and ZZ (#375)

  • oonimkall: never omit mandatory event fields (#377)

  • testlists.go: use naming consistent with other files (#387)

  • sniblocking: use example.com as test helper (#389)

  • sniblocking: cache recent results (#390)

  • sniblocking: classify failures to produce a result (#391)

  • tor: use targets-list-length dependent timeout (#394)

  • README.md: document how to build miniooni (#398)