d57c78bc71
This is how I did it: 1. `git clone https://github.com/ooni/probe-engine internal/engine` 2. ``` (cd internal/engine && git describe --tags) v0.23.0 ``` 3. `nvim go.mod` (merging `go.mod` with `internal/engine/go.mod` 4. `rm -rf internal/.git internal/engine/go.{mod,sum}` 5. `git add internal/engine` 6. `find . -type f -name \*.go -exec sed -i 's@/ooni/probe-engine@/ooni/probe-cli/v3/internal/engine@g' {} \;` 7. `go build ./...` (passes) 8. `go test -race ./...` (temporary failure on RiseupVPN) 9. `go mod tidy` 10. this commit message Once this piece of work is done, we can build a new version of `ooniprobe` that is using `internal/engine` directly. We need to do more work to ensure all the other functionality in `probe-engine` (e.g. making mobile packages) are still WAI. Part of https://github.com/ooni/probe/issues/1335
84 lines
2.6 KiB
Markdown
84 lines
2.6 KiB
Markdown
# OONI probe measurement engine
|
|
|
|
[![GoDoc](https://godoc.org/github.com/ooni/probe-engine?status.svg)](https://godoc.org/github.com/ooni/probe-engine) [![Short Tests Status](https://github.com/ooni/probe-engine/workflows/shorttests/badge.svg)](https://github.com/ooni/probe-engine/actions?query=workflow%3Ashorttests) [![All Tests Status](https://github.com/ooni/probe-engine/workflows/alltests/badge.svg)](https://github.com/ooni/probe-engine/actions?query=workflow%3Aalltests) [![Coverage Status](https://coveralls.io/repos/github/ooni/probe-engine/badge.svg?branch=master)](https://coveralls.io/github/ooni/probe-engine?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/ooni/probe-engine)](https://goreportcard.com/report/github.com/ooni/probe-engine)
|
|
|
|
This repository contains OONI probe's [measurement engine](
|
|
https://github.com/ooni/spec/tree/master/probe#engine). That is, the
|
|
piece of software that implements OONI nettests as well as all the
|
|
required functionality to run such nettests.
|
|
|
|
We expect you to use the Go version indicated in [go.mod](go.mod).
|
|
|
|
## Integrating ooni/probe-engine
|
|
|
|
We recommend pinning to a specific version of probe-engine:
|
|
|
|
```bash
|
|
go get -v github.com/ooni/probe-engine@VERSION
|
|
```
|
|
|
|
See also the [workflows/using.yml](.github/workflows/using.yml) test
|
|
where we check that the latest commit can be imported by a third party.
|
|
|
|
We do not provide any API stability guarantee.
|
|
|
|
## Building miniooni
|
|
|
|
[miniooni](cmd/miniooni) is a small command line client used for
|
|
research and quality assurance testing. Build using:
|
|
|
|
```bash
|
|
go build -v ./cmd/miniooni/
|
|
```
|
|
|
|
See also `./build-cli.bash` for more advanced builds (e.g. to create
|
|
statically linked and/or stripped binaries).
|
|
|
|
We don't provide any `miniooni` command line flags stability guarantee.
|
|
|
|
See
|
|
|
|
```bash
|
|
./miniooni --help
|
|
```
|
|
|
|
for more help.
|
|
|
|
## Building Android bindings
|
|
|
|
```bash
|
|
./build-android.bash
|
|
```
|
|
|
|
We automatically build Android bindings whenever commits are pushed to the
|
|
`mobile-staging` branch. Such builds could be integrated by using:
|
|
|
|
```Groovy
|
|
implementation "org.ooni:oonimkall:VERSION"
|
|
```
|
|
|
|
Where VERSION is like `2020.03.30-231914` corresponding to the
|
|
time when the build occurred.
|
|
|
|
## Building iOS bindings
|
|
|
|
```bash
|
|
./build-ios.bash
|
|
```
|
|
|
|
We automatically build iOS bindings whenever commits are pushed to the
|
|
`mobile-staging` branch. Such builds could be integrated by using:
|
|
|
|
```ruby
|
|
pod 'oonimkall', :podspec => 'https://dl.bintray.com/ooni/ios/oonimkall-VERSION.podspec'
|
|
```
|
|
|
|
Where VERSION is like `2020.03.30-231914` corresponding to the
|
|
time when the build occurred.
|
|
|
|
## Updating dependencies
|
|
|
|
```
|
|
go get -u -v ./... && go mod tidy
|
|
```
|