v0.8.0
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:
-
the
netx/httpx
package has been merged with thenetx
package and all the names that were inhttpx
now contain theHTTP
string inside them, e.g.httpx.Client
=>netx.HTTPClient
-
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 anhandler
and had theNoHandler
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)