Граф коммитов

4090 Коммитов

Автор SHA1 Сообщение Дата
Sammy Khamis 6c839a3ade
Update uniffi 0.14.0 (#4389)
* Update UniFFI dependency to v0.14.0

Co-authored-by: Ryan Kelly <ryan@rfk.id.au>
2021-08-19 16:31:02 -10:00
Tarik Eshaq 32514b77ca
Merge pull request #4392 from mozilla/cut-v82.2.0
Cut release v82.2.0
2021-08-19 11:16:05 -07:00
Tarik Eshaq cae255ab95 Cut release v82.2.0 2021-08-19 10:52:37 -07:00
Tarik Eshaq 94baebdc8a Fixes dependency licenses branch rename 2021-08-16 17:36:03 +00:00
Tarik Eshaq 3b676efa41
Merge pull request #4378 from mozilla/notify-fetch-nimbus
[nimbus] adds posting a notification when fetching experiments on iOS
2021-08-10 12:03:58 -07:00
Tarik Eshaq 26dcd5d4e0 [nimbus] adds posting a notification when fetching experiments on iOS 2021-08-10 11:40:13 -07:00
Ryan Kelly ce6a72abd8 Have Nimbus optionally import Glean as an external Swift module.
Currently on iOS, Nimbus and Glean are always compiled together as
part of the same Swift module in the iOS megazord. This means that
Nimbus can see and use many of Glean's internal helper functions,
which in fact it does.

When we switch to distributing via Swift packages, we'll need to
be more careful about inter-module hygiene. I think ideally the
Nimbus Swift code would consume Glean as an ordinary Swift dependency
via `import Glean`.

To make that work while also preserving the current behaviour for
current consumers, I have:

* Added a conditional import of Glean, which gets ignored in the
  existing megazord but makes Glean available in a Swift package build.
* Copied the internal helper modules that we were using from Glean
  into the `nimbus/ios` directory, so that this directory can be
  compiled as a standalone Swift module using only public Glean
  APIs.

Importantly, I have *not* included the copied utility files in the
iOS megazord Xcode project. That build already uses the ones from
Glean and would error out if we included duplicates.

All in all, this doesn't seem like a sustainable setup, but perhaps
it can be the first step towards something cleaner. Maybe we could
make a shared utility module that both Glean and Nimbus can depend
on? Maybe Glean could commit to making these utilities part of its
public API surface?

Suggestions welcome! What I know is that this helps unblock the work
on publishing as a Swift package in the meantime. Fixes #4308.
2021-08-09 05:08:09 +00:00
Grisha Kruglov 761f710a08 Update NDK versions mentioned in building instructions 2021-08-03 23:10:17 -07:00
Tarik Eshaq e16821a601 Adds push component tests for autorecovery 2021-08-03 18:44:59 +00:00
Tarik Eshaq fbfa83c025 Adds push improvements 2021-08-03 18:44:59 +00:00
Mark Hammond 212b6fcfa7
Replace places history_metadata's protobuf implementations with uniffi. (#4183)
This is intended to be a small but significant step on the road to uniffi-ing
places. It takes all the hard stuff from Ryan's #3900, but limits the scope to just
the new-ish history_metadata module.

Co-authored-by: Ryan Kelly <ryan@rfk.id.au>
Co-authored-by: Sammy Khamis <skhamis@mozilla.com>
2021-08-03 19:21:08 +10:00
Ryan Kelly d47a31b089 Add a note about locally-published iOS builds with Glean. 2021-08-03 00:32:40 +00:00
Ryan Kelly 7e1e61d024 Move the viaduct Swift wrapper into `./ios` subdirectory.
This makes it more consistent with the other components, which
should simplify our lives when we come to UniFFI it and/or start
distributing it as an independent Swift package.
2021-08-03 00:32:40 +00:00
Ryan Kelly f6d454be1d Move the rc_log Swift wrapper into `./ios` subdirectory.
This makes it more consistent with the other components, which
should simplify our lives when we come to UniFFI it and/or start
distributing it as an independent Swift package.
2021-08-03 00:32:40 +00:00
Ryan Kelly ae22569f9e Move KeychainWrapper extensions into FxAClient module.
The FxAClient Swift module is the only thing that uses
the KeychainWrapper extensions, so let's make them live
inline in that codebase. This will simplify eventual
migration to publishing as separate Swift modules.
2021-08-03 00:32:40 +00:00
Ryan Kelly 294e65a89b Move some low-level utilities into `sync15/ios`.
This will make it easier for us to distribute them as a common
dependency for multiple Swift packages.
2021-08-03 00:32:40 +00:00
Ryan Kelly b0e7775ab1 Cut release v82.1.0 2021-07-30 12:07:03 +10:00
Nishant Bhasin 2d832d9165 Fixed test case 2021-07-30 10:08:58 +10:00
Nishant Bhasin b765f85e50 Fixed a broken test case 2021-07-30 10:08:58 +10:00
Nishant Bhasin 930dda9211 lint cleanup 2021-07-30 10:08:58 +10:00
Nishant Bhasin ba7f3cdcab Cleanup lint issues 2021-07-30 10:08:58 +10:00
Nishant Bhasin 3afd1aa119 Made both document type and history metadata codable so that we can easily preserve it if needed 2021-07-30 10:08:58 +10:00
Nishant Bhasin bdc34a59fb Refactored history observation enum to struct 2021-07-30 10:08:58 +10:00
Nishant Bhasin c57422a876 Cleanup 2021-07-30 10:08:58 +10:00
Nishant Bhasin 2decd8c748 Fixes #4370 - History metadata enums and struct access 2021-07-30 10:08:58 +10:00
Ryan Kelly b5d0bc3709 Cut release v82.0.0 2021-07-29 11:54:55 +10:00
Ryan Kelly c4304d97bb The android-components default branch is now `main`. 2021-07-29 11:02:04 +10:00
Tarik Eshaq abd95ad021
Merge pull request #4359 from mozilla/nimbus-specific-context
Allows nimbus to accept context defined in the consumer
2021-07-28 12:46:50 -07:00
Tarik Eshaq 3a47f52330 Allows nimbus to accept context defined in the consumer 2021-07-27 12:58:04 -07:00
Mathieu Leplatre 5e021426e8 Update CHANGELOG 2021-07-27 15:55:00 +00:00
Mathieu Leplatre 2eddfb60a5 Implement content signature verification in rc_crypto 2021-07-27 15:55:00 +00:00
Mathieu Leplatre c8bd7b8f6e Add FFI bindings for cert chain and signature verification in NSS 2021-07-27 15:55:00 +00:00
Mathieu Leplatre ef1b68c73b Upgrade to NSS 3.66 2021-07-27 15:55:00 +00:00
Ryan Kelly 918dde9c03 Update Glean submodule to v39.0.4.
This fixes some build warnings on iOS caused by expired metrics.
It also updates Nimbus event recoding to the a newer, more strongly-
typed API.
2021-07-27 08:09:31 +10:00
Ryan Kelly 702f1d8e47 Verify desktop build environment when verifying for mobile.
It's reasonable for mobile-focused consumers to want to be able
to do a quick `cargo build` to test their local checkout, and it's
not reasonable for us to expect them to understand how or why this
is different from building inside Xcode or Android Studio. Let's
help make this Just Work (tm) by verifying the Desktop development
environment whenever we verify a Mobile development environment.
2021-07-27 07:51:06 +10:00
Ryan Kelly c40fd3a12b
Update android dependencies [ci full] (#4345)
This uses the new, cleaner factoring of our Android config from #4194
as an excuse to update some of our Android dependencies to bring them
inline with what's used in current android-components. It was much
easier than it has been in the past!
2021-07-26 11:09:11 +10:00
Ryan Kelly cf35f6ccd6 Mark ADR-0003 as accepted. 2021-07-22 15:13:44 +10:00
Ryan Kelly 0d84b14070 Add an ADR for plans around Swift Packages.
This summarizes the results of my prototyping work on Swift Packages
with a concrete proposal for how we should proceed. Given preliminary
feedback I've had so far I have gone ahead and selected a recommended
option, but that is of course up for change if further discussion leads
us in that direction.
2021-07-22 15:13:44 +10:00
Tarik Eshaq eae2a40100
Merge pull request #4346 from mozilla/fix-github-actions
fixes github actions failure
2021-07-20 10:11:12 -07:00
Tarik Eshaq 92a2a566d0 fixes github actions failure 2021-07-20 09:22:53 -07:00
Ryan Kelly c12b286312 Extract the bulk of shared gradle logic into script plugins.
Prior to this commit, the `build.gradle` for each individual
project contained copy-pasted logic for configuring Android
and protobuf. Some of them were even using slightly different
versions of the same dependencies.

With this commit, there are two new gradle scripts that encapsulate
this shared logic:

* ./build-scripts/component-common.gradle, for basic Android
  and Kotlin setup.
* ./build-scripts/protobuf-common.gradle, for configuration specific
  to the protobuf plugin.

Hopefully this will make the logic easier to maintain going forward.
2021-07-20 13:56:15 +10:00
Sammy Khamis 158a181ceb
Cut release v81.0.1 (#4344)
* Cut release v81.0.1
2021-07-19 16:12:27 -10:00
Sammy Khamis 31c7fb7f3b
Updates to uniffi tabs (#4343)
* changed last_used in the Tab struct to be i64 instead of u64
2021-07-19 14:28:44 -10:00
Tarik Eshaq 1ab507c0ef
Merge pull request #4340 from mozilla/adds-push-diagram
Adds push component diagram and cargo docs
2021-07-19 14:44:10 -07:00
Tarik Eshaq ab54b56bb9 Adds push component diagram and cargo docs 2021-07-19 14:25:10 -07:00
Ryan Kelly e31161e607 Run all android tests at once when cutting a release.
Prior to the commit, the Taskcluster job for each individual component
would execute `./gradlew component:test` and would thus need to build
the Rust code for the megazord.

With this commit, each of those tasks now depend on the existing
`android-build` task which knows how to run all the tests in a single
build. This should reduce the number of times we have to build the
megazord from once-per-components to just once. (Plus the independent
builds we do for actually publishin the megazord).
2021-07-19 14:03:17 +10:00
Ryan Kelly e067d0aa63 Reduce gradle task dependencies on megazord build.
Prior to this commit, the gradle tasks for building and for testing
each component would depend on the "cargoBuild" gradle task of the
megazord, which means they would built it for all configured targets.
In TaskCluster we configure *seven* targets, so each `module-build-X`
TaskCluster job will build the full megazord seven times.

This commit makes two changes:

* Building the gradle package of a component no longer depends on
  building the megazord at all. We doesn't actually need to the
  Rust code built in order to package up the Kotlin files, and I
  think this dependency was a hangover from when each component
  used to build its own individual Rust library.
* Running the gradle tests of a component now depends only on
  building the megazord for the native host platform, since that's
  the only one that is actually needed for running the tests.

Given that we have 11 components that depend on the megazord,
each of which will now avoid building 6 useless copies of it
for non-native platforms, I expect this will save a total of
66 expensive `cargo build` invocations in a full TaskCluster run.

I've also included a few other tweaks to do less unnecessary
work in TaskCluster, which seem to save about a minute on the
much-more-common `android-build-pr` task.
2021-07-19 13:40:43 +10:00
Ryan Kelly 28e4982cd2
Consolidate megazord-related gradle logic into a shared helper. (#4187)
Prior to this commit, each of our individual components had its
own copy of gradle logic for depending on the megazord, including
a couple of lengthy comments about fiddling around with JNA for
the Android Studio test runner.

I've moved all that logic into a helper function in `publish.gradle`
so that we can maintain it in a single location from here out.
There may be a cleaner or more idiomatic way to achieve this kind
of code-sharing in gradle, but I figure this *has* to be better
than our current copy-paste-based approach.

I've manually confirmed that a local `./gradlew test` completes
successfully, as well as testing via Android Studio.
2021-07-19 13:14:08 +10:00
Ryan Kelly 65c88a630a Add some context-setting docs for the push component.
There's a lot if background info you need to know if you're going
to effectively work on the push component, this tries to add some
pointers to it in the README.

I've also removed what appeared to be an early prototype API doc
since it mostly didn't match what is actually in the code, and
removed the `LICENSE` file for consistency with other components.
2021-07-14 07:20:03 +00:00
Tarik Eshaq 36f27d3c2f
Merge pull request #4338 from mozilla/cut-v81.0.0
Cut release v81.0.0
2021-07-13 18:20:20 -07:00