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

6047 Коммитов

Автор SHA1 Сообщение Дата
Ben Dean-Kawamura dbc8e8d32a Rework remote settings server URL
Let's update these to match the JS client:
15245fdb8e/extension/experiments/remotesettings/api.js (L8-L11)

This is a breaking change to the public API, but this API is not exposed
via UniFFI and it's only used in 1 place:
50bf235b9a/components/nimbus/src/stateful/client/mod.rs (L24-L35).
AFAICT, the only affect this will have is that the error message will
change slightly.

Fixed an error when downloading attachments in the new client code.  I
think I broke it with my last commit.

Also removed the `.unwrap()` calls.  It shouldn't matter because there's
no way for `.join()` to fail, but it feels silly calling `unwrap()` from
a function that returns a result.
2024-10-28 21:40:22 +00:00
Lina Butler 8bdea9d072 ios-rust: Ignore generated UniFFI sources.
As of mozilla/application-services#6413, `MozillaTestServices`
outputs all generated sources into `MozillaTestServices/Generated`.
Let's ignore them, so that they don't show up as untracked in Git.
2024-10-28 19:59:16 +00:00
Bastian Gruber 1be85e819a fix: remove topic guides from application-services docs
The topic guides moved to m-c:
https://firefox-source-docs.mozilla.org/rust-components/index.html
2024-10-28 17:05:48 +00:00
DonalMe 2db95b7c38 Start release v134.0 2024-10-28 13:20:08 +00:00
Emmanuel Ferdman 30dc84c946 Update `kind.yml` reference
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2024-10-26 23:23:45 +00:00
DonalMe a14b5edff5 Revert "update Rust for recorded context to handle event store queries"
This reverts commit b8f83af2bd.
2024-10-26 14:48:35 +00:00
Bastian Gruber f7f0addb0a fix: bundle sqlite 2024-10-25 21:20:32 +00:00
Bastian Gruber acf12a1f5d feat: add storage layer to remote-settings component 2024-10-25 18:58:11 +00:00
Charlie Humphreys b8f83af2bd update Rust for recorded context to handle event store queries 2024-10-25 13:33:59 +00:00
Ryan VanderMeulen d160a87f30 Update NDK to r27c 2024-10-24 21:09:21 +00:00
Julien Cristau 3d79da3263 Update taskgraph decision docker image to 11.2.4 2024-10-24 19:45:04 +00:00
Julien Cristau 5d72e2267f Update docker image definitions for compatibility with taskgraph 10.x
The newer image_builder creates directories listed as volumes before
running any other commands.
2024-10-24 19:45:04 +00:00
dependabot[bot] eefe21f0fa build(deps): bump mozilla-taskgraph from 2.0.3 to 3.0.0 in /taskcluster
Bumps [mozilla-taskgraph](https://github.com/mozilla-releng/mozilla-taskgraph) from 2.0.3 to 3.0.0.
- [Release notes](https://github.com/mozilla-releng/mozilla-taskgraph/releases)
- [Changelog](https://github.com/mozilla-releng/mozilla-taskgraph/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mozilla-releng/mozilla-taskgraph/compare/2.0.3...3.0.0)

---
updated-dependencies:
- dependency-name: mozilla-taskgraph
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-24 19:45:04 +00:00
Ryan VanderMeulen dbcec77cab Update NSS to version 3.106 2024-10-24 18:44:50 +00:00
Ben Dean-Kawamura 03f1c2c37e Starting new Remote Settings API
Implemented the high-level API and the client functionality. Storage is
a big TODO.

Added a CLI to test it, you can run it using `cargo remote-settings`.
2024-10-24 13:47:32 +00:00
Ben Dean-Kawamura 7e71b6a672 Remove unwanted ingestion measurements
Don't report measurements when we've already ingested all the records.
This just skews the results.
2024-10-24 13:21:23 +00:00
Ryan VanderMeulen 50bf235b9a Update Protobuf to version 4.28.2 2024-10-22 23:05:27 +00:00
Ben Dean-Kawamura c8a1a57ab1 Fix Suggest icon metrics
This one uses a slightly different code path to download things, which
caused us to measure the download time as ingestion time.
2024-10-22 13:21:46 +00:00
Drew Willcoxon a0121f3512 Add `country` to weather suggestions
I just saw that Merino expects a country to be passed along with city and region
in weather requests. Rather than assuming "US" and hardcoding that in desktop,
which would be fine for now, let's just go ahead and add the matching geoname's
country code to `Suggestion::Weather`. It's a small change.

This doesn't modify query parsing at all. Country names still aren't supported
in queries. We can cross that bridge if/when we come to it.
2024-10-21 18:57:47 +00:00
Ben Dean-Kawamura 23618bbad9 Bug 1925601 - Fix the iOS build (again)
The last hack didn't fix the iOS build.  I looked through xcframework
zip from the nightly build artifacts
(https://firefoxci.taskcluster-artifacts.net/dHGArzP3R0Cmwcr56RPQJA/0/public/build/nightly.json)
and it seems like it was correctly copying the `RustViaductFFI.h` file,
but not correctly updating module.modulemap.

The main issue was the `awk` command was printing out the updated
contents to STDOUT, but not actually modifying `module.modulemap`.  I
fixed that and also moved away from `awk`, since I'm worried about
differences between gawk and nawk.
2024-10-21 15:58:18 +00:00
Ben Dean-Kawamura 6e93be3913 Bug 1910381 - Switch Remote Settings to proc-macros
Tested this by running the following commands and diffing the generated
code from before this change:

```
cargo build --release -p megazord
cargo uniffi-bindgen generate --library target/release/libmegazord.so --crate remote_settings --language kotlin --out-dir [out-dir]
```

There were a few differences:
    - The field order for RemoteSettingsConfig changed
    - Some docstrings were missing
    - Some of the method parameter names changed

To fix this, I updated the Rust code to match the deleted UDL file.
2024-10-21 13:33:37 +00:00
Ben Dean-Kawamura a23f3adce2 Bug 1925601 - Fix the iOS build
We need to hack it to add the Viaduct header, since that component
doesn't use UniFFI.
2024-10-21 13:20:33 +00:00
Drew Willcoxon 63bb952ae6 Bug 1921124 - Implement city-based weather suggestions and GeoNames
This does a number of things to support weather queries that include cities and
regions. Sorry for how big it is. I could split it up but I think it's more
helpful to see everything in context.

I added `geoname.rs` to support ingesting and querying
[GeoNames](https://www.geonames.org/). This is how we detect cities and regions,
and how we map cities to regions when a query contains only a city. Potentially
we could use it for other suggestion types.

I wanted to mirror the raw geonames tables (the ones in the geonames dataset,
not the ones in our DB) pretty much exactly rather than trying to overfit them
into something specific to weather suggestions. I think that will serve us
better long term.

The code makes some assumptions about the geonames data we store in remote
settings. I tried to document them. And as long as weather and Suggest are US
only, we'll only upload US geonames to RS. We can scale up or down the number of
geonames in RS. For example, we might use some significantly large population as
a threshold.

Weather suggestions are matched on any of the following:

* A weather keyword. `min_keyword_length` in the weather RS data controls
  whether prefix matching is allowed. This is pretty much the same as before
  except we were relying on desktop to do the prefix threshold check, and I
  moved that here.
* A full city name (or abbreviation like "nyc" -- anything that's exactly equal
  to a geoname alternate name)
* A full city name + any prefix of its region

After any of the above are typed, you can continue to type any prefix of any of
the others and that will match too. Once you add a word that isn't recognized,
matching stops.

I added a query parsing helper called `filter_map_chunks()`. I renamed
`keyword.rs` to `util.rs` and added it there. Hopefully its doc explains what it
does, and it would be nice if it could be useful for other providers in the
future.

I added a couple of cache structs, `WeatherCache` and `GeonameCache`, as an
optimization to avoid fetching common values from the DB that are used to handle
every weather query.

I added some tables to store keyword and geoname metrics: max keyword length and
max word count. Weather query handling uses them to quickly discard search
strings that are too long so we don't end up with any performance problems
trying to parse huge strings that people sometimes paste into the urlbar. We
could simply hardcode a const (like yelp.rs does), but I think it's nice to do
this.

Providers can now map to more than one record type. This lets us ingest geonames
when weather is ingested.
2024-10-18 18:40:43 +00:00
Ben Dean-Kawamura eb1f268654 Build improvements with UniFFI library mode
Bumped UniFFI to 0.28.2

Added a tool to run uniffi-bindgen in library mode.  It can input either
a specific library path or the megazord crate name.

Use that simplify several build scripts -- especially the generate docs
ones.  The best part of this is that we no longer have to maintain
hand-written modulemaps, which makes adding a new component harder than
it needs to be.

Split out the uniffi-bindgen commands from `build-xcframework.sh`.  This
way you can run them standalone and see the results, even if you don't
have XCode setup.

One change is that
automation/swift-components-docs/generate-swift-project.sh now uses
`megazord_ios` rather than `megazord`.  I think this should result in
slightly more accurate docs, since historically some components in the
Android megazord aren't in the iOS one (Although, I think they match at
the present).
2024-10-17 17:59:42 +00:00
Jan-Erik Rediger 581f5d2866 Report time of applying experiments as a single sample to Glean
This happens early during startup and Glean will now delay executing the
actual recording until after libxul is loaded externally.
This avoids forcing that load of Glean/libxul too early.
2024-10-17 14:39:44 +00:00
Ryan VanderMeulen fd2bd27dc5 Update Android Components to version 131.0.2 2024-10-11 17:36:31 +00:00
Ryan VanderMeulen 87521c4d18 Update JUnit to version 5.11.2 2024-10-11 17:36:31 +00:00
Ryan VanderMeulen d0088b731a Update mockito to version 5.14.1 2024-10-11 17:36:31 +00:00
Tarik Eshaq 3ba1c7c2ef Fix up some internal dependences.
Takes the easy bits of #6129
2024-10-10 15:11:11 +00:00
Ben Dean-Kawamura 197fe99635 Bug 1923384 - Update remote settings errors
Use fields inside the error enum, rather than the UniFFI "flat" errors
which ignore the inner data.  This is prep for moving to proc-macros.

Switched to using error_support and define both internal and public
error types.

Switch app-services consumers to using the `RemoteSettings` type rather
than `Client`.  This way they're using the same public API as everyone
else.  This required adding a couple more pub RemoteSettings methods
that I didn't expose via UniFFI.  I didn't feel like adding new features
to this client, because I'm hoping to replace it (#6378).
2024-10-10 14:05:14 +00:00
Ryan VanderMeulen bfe363cb66 Update to Glean v61.2.0 2024-10-08 18:15:07 +00:00
Ben Dean-Kawamura a4ef3c9d71 Bug 1921532 - Update symbol upload scripts
- Add `--inlines`
- Add `VERSION` and `PRODUCTNAME` extra info args

Updated dump_syms to a recent version
2024-10-08 18:04:14 +00:00
Donal Meehan bffcd0e717 Moved the relman release steps doc to the relman wiki 2024-10-08 18:01:39 +00:00
Bastian Gruber db075c0d9f Fix: index new topic guides 2024-10-07 16:55:51 +00:00
Bastian Gruber 9fa28cafa6 Add topic guide for relevancy 2024-10-07 14:44:55 +00:00
Mark Banner 9e9705c4b6 Rename RefinedConfig for better namespacing 2024-10-04 07:43:56 +00:00
Mark Banner 9d12738f54 First round of fixing review comments 2024-10-04 07:43:56 +00:00
Mark Banner bf2aeb25b1 Fix clippy issues 2024-10-04 07:43:56 +00:00
Mark Banner ce73003166 Add notes about search, add orderHint option on SearchEngineDefinition. 2024-10-04 07:43:56 +00:00
Mark Banner 8c17a2ef32 Fix SearchEngineSelector definition so that can be used properly in desktop 2024-10-04 07:43:56 +00:00
Mark Banner a1cf1cf7fa Improve the update channel naming and description 2024-10-04 07:43:56 +00:00
Mark Banner 04c8bfbee2 Move interface definitions to Rust, remove udl file. Update documentation 2024-10-04 07:43:56 +00:00
Mark Banner 395a1e8483 Drop SearchAccessPoint icons 2024-10-04 07:43:56 +00:00
Mark Banner b52165efa0 Rename return object for the filter function 2024-10-04 07:43:56 +00:00
Mark Banner 9b0e838e65 Initial interface proposal 2024-10-04 07:43:56 +00:00
Bastian Gruber da50019725 fix: remove deleted file and link 2024-10-02 18:24:10 +00:00
Drew Willcoxon 72e6fccbdc Bug 1921925 - Factor out weather suggestions into their own file and move data from record to attachment 2024-10-02 01:48:53 +00:00
Bastian Gruber 2c9c4f2298 Add topic guide for suggest 2024-10-01 19:18:02 +00:00
Ben Dean-Kawamura c35705a06f Bug 1919574 - CLI tool to generate the android/ios directories
I was going to update the adding a new component docs, but while I was
reading them that the best way to simplify them would be to automate the
process.

* Added the `cargo start-bindings` tool.
* Removed the "Converting an existing Component to UniFFI" HOWTO.  I
  believe that all our existing components have been converted so
  there's no need to keep updating this.
* Added a section about dependencies and the build.gradle file.
* Removed the `pub use` items from the megazord lib.rs files.  I don't
  believe they were needed.
2024-10-01 14:10:28 +00:00
Ryan VanderMeulen 7aafd5efa6 Start release v133.0 2024-09-30 13:35:35 +00:00