Releases: ooni/probe-engine
v0.20.0
Packages
-
ios:
pod 'oonimkall', :podspec => 'https://dl.bintray.com/ooni/ios/oonimkall-2020.11.12-200336.podspec'
-
android:
implementation 'org.ooni:oonimkall:2020.11.12-200733'
Improvements
-
Explicitly add code of conduct based on Tor's code of conduct
-
experiment/urlgetter: add experimental support for http3 measurements
-
experiment/riseupvpn: add experimental support for measuring riseupvpn API endpoints
-
experiment/httphostheader: start sketching our experiment to check for Host-header-based blocking
-
experiment/tlstool: start exploring better TLS blocking measurements
-
geolocate: add more ways of finding the user's IP address
-
session: use cloudflare dns as the resolver since it's more reliable than powerdns.org
API changes
-
tests: We now run a smaller test suite at every commit, causing the coverage measurement to drop. This is actually an artefact caused by such a change in the measurement procedure. We run most other tests once per day nightly. When a branch is named
^release/*
, however, we run much more stringent checks, because we want much more QA when we are about to bless a release. -
dependencies: The Psiphon dependency is now vendored inside https://github.com/ooni/psiphon. This allows us to simplify dependencies management as well as to avoid requiring Go 1.15 users to specify
-tags PSIPHON_DISABLE_QUIC
thanks to small local changes. -
tests: use https://ams-pg-test.ooni.org for integration tests
Updates
-
Dependencies
-
User-Agent header used for measuring
-
Bundled certificates
Bug Fixes
-
tests: make sure
go test run -short ./...
has a reasonably short runtime by flagging many integration tests as "long" and/or by rewriting long tests to become less dependent on external services and/or the network. -
experiment/sniblocking: use example.org as test helper, since this seems more reliable than example.com
-
experiment/urlgetter: allow using a custom CA pool
-
libminiooni: support input files with CRLF line terminators on Unix systems
-
experiment.go: clarify when Run should return an error to the caller
-
oonimkall: emit progress events for tests taking input
v0.19.0
Packages
-
ios:
pod 'oonimkall', :podspec => 'https://dl.bintray.com/ooni/ios/oonimkall-2020.10.27-135607.podspec'
-
android:
implementation 'org.ooni:oonimkall:2020.10.27-135833'
API changes
-
if you're on Go > 1.14, please use
PSIPHON_DISABLE_QUIC
now, instead ofDISABLE_QUIC
, to disable QUIC inside Psiphon and thus make sure the binaries you generate actually work (see #866) -
removed workaround from ObjC API that replaced
@import
with#import
. The iOS framework now should not work with ObjC++ anymore because of this change. This does not affect OONI, since now we don't use ObjC++ anymore, but it may affect you. If this changes is breaking your workflow, please let us know. -
session.go: remove support for CABundlePath. This was needed by MK code, for which we removed support already.
Updates
-
Dependencies
-
User-Agent header used for measuring
-
Bundled certificates
Bug Fixes
-
ndt7: use 1<<20 for buffers rather than 1<<24, as the official ndt-server has been doing for a while
-
experiment/urlgetter: make sure we can use DNSHTTPHost and DNSTLSServerName options from command line
-
netx: use "h2", "http/1.1" as ALPN when doing DoH
-
netx: use "dot" as ALPN when doing DoT
-
netx: make sure we can specify UDP and TCP DNS servers w/o an explicit port: in such cases we use ":53" by default
-
oonimkall: find a way to export debugging counters to mobile apps
-
oonimkall: skip broken test after OONI API changed; see https://github.com/ooni/probe-engine/issues/992 (we should fix the problem on the API side and then we can close the related issue)
v0.18.0
Packages
-
ios:
pod 'oonimkall', :podspec => 'https://dl.bintray.com/ooni/ios/oonimkall-2020.10.06-103613.podspec'
-
android:
implementation 'org.ooni:oonimkall:2020.10.06-103820'
Improvements
experiment/dnscheck
: new experiment (still in alpha) that should help to more easily replicate past investigations, e.g., https://ooni.org/post/2020-iran-dot.
Bug Fixes
-
Make sure we honour the
include_asn
setting correctly: scrubprobe_network_name
,resolver_asn
,resolver_network_name
when this setting isfalse
by setting them respectively to""
,"AS0"
, and""
. This issue has been noticed when investigating ooni/explorer#495. -
Make the code more strict and set
resolver_ip
andtest_keys.client_resolver
to"127.0.0.2"
unlessinclude_ip
istrue
. This issue has been noticed when investigating ooni/explorer#495.
v0.17.0
Packages
-
ios:
pod 'oonimkall', :podspec => 'https://dl.bintray.com/ooni/ios/oonimkall-2020.09.30-053035.podspec'
-
android:
implementation 'org.ooni:oonimkall:2020.09.30-053239'
Improvements
-
add test verifying we build with Go 1.15
-
add test verifying we can create a shared library
-
add test verifying another package can import us
-
document each top-level directory
-
libminiooni: support reading inputs from file
-
libminiooni: support integer options
-
netx/resolver: implement IDNA support
-
oonimkall: implement APIs for geolookup and resubmission required by mobile apps
API Changes
-
the version package has been merged into the top-level package (i.e.
engine
) -
the message for opening a report now includes a
test_start_time
field like MK does -
netx: move top-level code from
./netx/httptransport
to./netx
-
netx: moved legacy code to
./legacy/netx
-
experiment/handler: merged with the model package
-
geoiplookup package refactored and renamed geolocate
-
libminiooni: remove obsolete
--bouncer
,--collector
flags -
libminiooni: rename
--probe-services-url
to--probe-services
Updates
-
Dependencies
-
Assets
-
mlablocatev2: use
/v2/nearest
rather than/v2beta1/query
Bug Fixes
-
make sure code compiles with Go 1.15
-
urlgetter: set 45 s timeout when run as
miniooni ... urlgetter
(still no timeout when used as a library)
v0.16.0
Packages
-
ios:
pod 'oonimkall', :podspec => 'https://dl.bintray.com/ooni/ios/oonimkall-2020.08.21-075809.podspec'
-
android:
implementation 'org.ooni:oonimkall:2020.08.21-082427'
Improvements
-
Write Web Connectivity implementation in Go
-
We don't depend on Measurement Kit anymore
-
Merge github.com/ooni/jafar as cmd/jafar
-
Write QA scripts for all supported censorship measurement experiments
-
Periodically run
go test ./...
using GitHub Actions -
Periodically run QA scripts using GitHub Actions
-
Document how to build iOS bindings
-
miniooni
: add--home
flag to tellminiooni
where$HOME
is
API Changes
- Consolidate macos, windows, linux
miniooni
build actions into a single build
Updates
-
Dependencies
-
Assets
Bug Fixes
netx/archival/archival.go
: spot and fix cases where the top-level error wasn't properly wrapped
v0.15.2
v0.15.1
Packages
-
ios:
pod 'oonimkall', :podspec => 'https://dl.bintray.com/ooni/ios/oonimkall-2020.07.23-091126.podspec'
-
android:
implementation 'org.ooni:oonimkall:2020.07.23-091427'
Improvements
-
experiment/hhfm: print user friendly output
-
experiment/hirl: make output during experiment more user friendly
Bug fixes
- measurementkit/mkgo: make sure we can link with MK on windows
v0.15.0
Packages
-
ios:
pod 'oonimkall', :podspec => 'https://dl.bintray.com/ooni/ios/oonimkall-2020.07.21-132903.podspec'
-
android:
implementation 'org.ooni:oonimkall:2020.07.21-133436'
Improvements
-
experiment/sniblocking: rewrite using urlgetter
-
experiment/urlgetter: sync the event times for multi getter
-
experiment/urlgetter: optionally ask the code to fail if the response is >= 400
-
experiment/urlgetter: add to TestKeys extra fields to simplify analysis
-
session: use TRR2 and PowerDNS for the session's resolver
-
netx/archival: start adding support for webconnectivity in Go
-
netx: map the
json_parse_error
error
API Changes
-
experiment/fbmessenger: rewrite in Go
-
experiment/hhfm: rewrite in Go
-
experiment/hirl: rewrite in Go
-
experiment/whatsapp: rewrite in Go (the new implementation always tests all endpoints)
-
session: expose ResolverIP
-
remove support for Go < 1.14
-
oonimkall: just warn if AllEndpoints is present
-
oonimkall: add API to get a new UUID4 as a string
Updates
-
direct and indirect dependencies
-
assets
-
user agent used when measuring
-
require MK v0.10.12
Bug fixes
-
miniooni: print panic message when code panics
-
experiment.go: self identify in annotations as
ooniprobe-engine
-
selfcensor/dialer: add default timeout
-
probeservices: use correct parameter for sending country code to orchestra
v0.14.1
Packages
-
ios
pod 'oonimkall', :podspec => 'https://dl.bintray.com/ooni/ios/oonimkall-2020.07.10-084946.podspec'
-
android
implementation 'org.ooni:oonimkall:2020.07.10-085110'
Bug fixes
- fix(probeservices): use correct parameter for orchestra: it's
country_code
rather thanprobe_cc
v0.14.0
Packages
-
ios:
pod 'oonimkall', :podspec => 'https://dl.bintray.com/ooni/ios/oonimkall-2020.06.25-151841.podspec'
-
android:
implementation 'org.ooni:oonimkall:2020.06.25-152030'
Improvements
-
experiment/tor: add support for tor private bridges
-
probeservices: merge with orchestra, so we can use the selected probe service to talk with the orchestra backend
-
probeservices: add new API for fetching test lists
-
probeservices: race between ps1.ooni.io and ps2.ooni.io to select the fastest service
API Changes
- we now use
[scrubbed]
(as opposed to[REDACTED]
) when scrubbing the user's IP from measurements
Updates
-
direct and indirect dependencies
-
assets
-
user agent used when measuring
Bug fixes
-
experiment/urlgetter: set DNSCache to
null
when no DNSCache is configured -
libminiooni: log extra options passed from command line using
-O
-
dnsoverhttps: use the same user agent used for measurements as opposed to OONI's user agent