What is missing
A Rust consumer can read a 51Did but cannot take part in verifying one from
a published crate.
fodid is on crates.io at 4.5.3, so parsing and offline signature checking
are available. The client that does the two-step verification is new, added
in #33 as the fodid-client crate, and is not published anywhere.
Why it matters now
51Did is about to be launched, and every other language a consumer might
reach for is in a different position:
A Rust user who wants to verify a 51Did today has to depend on a git
revision, which is not something to ask of anyone adopting a new feature.
What needs deciding as well as doing
There are two things here, and only the first is mechanical.
Publishing fodid-client. It has no blocking dependency, since it
depends on fodid which is already published. It needs a version, a
crates.io owner, and a CI path. ci/publish-crates.sh already exists and
skips versions that are published, so adding the new member may be most of
the work.
The owid crate question. fodid compiles the OWID source in as a
private module rather than depending on a published owid crate, because
ci/copy-owid-source.ps1 copies it from the owid-rust submodule at build
time. The owid crate that exists on crates.io at 1.0.0 was published by
James Rosewell personally rather than by the organisation. Whether
fodid-client inherits that arrangement or whether it is time to settle the
owid publication properly is a decision for James, not something to
resolve inside this issue.
How to tell it is fixed
cargo add fodid-client works from a clean project, and the example in that
crate's README runs against the live service without a git dependency.
What is missing
A Rust consumer can read a 51Did but cannot take part in verifying one from
a published crate.
fodidis on crates.io at 4.5.3, so parsing and offline signature checkingare available. The client that does the two-step verification is new, added
in #33 as the
fodid-clientcrate, and is not published anywhere.Why it matters now
51Did is about to be launched, and every other language a consumer might
reach for is in a different position:
FiftyOne.Didfiftyone.pipeline.didfiftyone-pipeline-didfodidfodid-clientpipeline.didfiftyone.pipeline.didA Rust user who wants to verify a 51Did today has to depend on a git
revision, which is not something to ask of anyone adopting a new feature.
What needs deciding as well as doing
There are two things here, and only the first is mechanical.
Publishing
fodid-client. It has no blocking dependency, since itdepends on
fodidwhich is already published. It needs a version, acrates.io owner, and a CI path.
ci/publish-crates.shalready exists andskips versions that are published, so adding the new member may be most of
the work.
The
owidcrate question.fodidcompiles the OWID source in as aprivate module rather than depending on a published
owidcrate, becauseci/copy-owid-source.ps1copies it from theowid-rustsubmodule at buildtime. The
owidcrate that exists on crates.io at 1.0.0 was published byJames Rosewell personally rather than by the organisation. Whether
fodid-clientinherits that arrangement or whether it is time to settle theowidpublication properly is a decision for James, not something toresolve inside this issue.
How to tell it is fixed
cargo add fodid-clientworks from a clean project, and the example in thatcrate's README runs against the live service without a git dependency.