Closed Bug 1668435 Opened 4 years ago Closed 2 years ago

vendor nimbus rust sdk into m-c

Categories

(Firefox :: Nimbus Desktop Client, task)

task

Tracking

()

RESOLVED WONTFIX

People

(Reporter: dmosedale, Assigned: dmosedale)

References

Details

Attachments

(21 obsolete files)

This bug is for vendoring the rust nimbus build into mozilla-central. I've filed it now so that Andrei and I can easily use phab to share work.

It's related to https://jira.mozilla.com/browse/EXP-419 among other things.

Stuff that we know we still need to do:

  • fix uniffi template to emit C++ bindings that build without DEBUG
  • figure out if uniffi Cargo.toml should switch from license_file to licenseor whether the build allow list needs to be a bit more liberal
  • move SDK build glue patch after artifact landing patch so that bisecting works
  • handle upstream dependency files that are too big (PRs, or make exceptions locally)
  • split apart (at least) updating existing dependencies from addition of new dependencies into PRs that are at least reviewable if not ideally bisectable
  • check dependency version pins and make sure they're up-to-date
  • remove built_bindgen as suggested by eoger (he says it was a hack)
  • make Nimbus not crash in constructor if called from wrong thread

Later (maybe):

  • figure out threading/IO model for gecko_js
    ** Kate points out that our model may want to take existing preferences idioms into account if we can make migration of existing experimenting infra less painful (eg static pref stuff).
    ** maybe consider what glean does (ideally), or telemetry (possibly necessarily pragmatically)
    ** eventually will need to be able to get some cached experiment values quickly early in startup (talk to Kate)
    ** (maybe later) generate webidl artifacts at build time rather than checking them in
Depends on: 1668704
Attachment #9178899 - Attachment is obsolete: true

Depends on D92172

Attached file Bug 1668435 - Nimbus SDK build glue (obsolete) —

Depends on D92296

Depends on D92537

Depends on D92538

Attachment #9179370 - Attachment is obsolete: true
Assignee: nobody → dmose
Status: NEW → ASSIGNED

Depends on D93449

Depends on D93450

Depends on D93453

Attachment #9179167 - Attachment is obsolete: true
Attachment #9179369 - Attachment is obsolete: true

For reasons not worth going into the revisions in this bug are all out of order. The top (parent) revision is https://phabricator.services.mozilla.com/D93448 and the rest are children of it.

Depends on D93450

Depends on D94411

Attached file Bug 1668435 - Vendor in Nimbus + deps (obsolete) —

Depends on D94412

Attachment #9181459 - Attachment is obsolete: true
Attachment #9181461 - Attachment is obsolete: true
Attachment #9181460 - Attachment is obsolete: true

Depends on D93450

Depends on D94412

Attachment #9181456 - Attachment is obsolete: true
Attachment #9181455 - Attachment is obsolete: true
Attachment #9183098 - Attachment is obsolete: true
Attachment #9183100 - Attachment is obsolete: true
Attachment #9181457 - Attachment is obsolete: true
Attachment #9184896 - Attachment is obsolete: true
Attachment #9184897 - Attachment is obsolete: true
Attachment #9184899 - Attachment is obsolete: true
Attachment #9184895 - Attachment is obsolete: true
Attachment #9183099 - Attachment description: Bug 1668435 - add Nimbus package-reference and extern decl → Bug 1668435 - add nimbus-sdk + uniffi refs and various glue
Attachment #9184898 - Attachment description: Bug 1668435 - Vendor in Nimbus and friends → Bug 1668435 - Vendor in Nimbus SDK and friends

Just an FYI, when one needs to generate the Nimbus artifacts using UniFFI, here's how:

cd uniffi-rs
# pull the uniffi PR locally; then do this:
cargo clean
cargo build
cd uniffi_bindgen
cargo run -- generate ../../nimbus-sdk/nimbus/src/nimbus.idl -l gecko_js -o ../../mozilla-central/toolkit/components/nimbus
Attachment #9179787 - Attachment description: Bug 1668435 - Add not-yet-working xpcshell test → Bug 1668435 - Add xpcshell port of test_fs_client.rs
Attachment #9184898 - Attachment is obsolete: true

This is obsolete; there is a different strategy now.

Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → WONTFIX
Attachment #9179785 - Attachment is obsolete: true
Attachment #9183099 - Attachment is obsolete: true
Attachment #9179787 - Attachment is obsolete: true
Attachment #9179786 - Attachment is obsolete: true
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: