Releases: mozilla/application-services
Releases · mozilla/application-services
v92.0.0
v92.0.0 (2022-03-17)
Places
⚠️ Breaking Changes ⚠️
- Removed some functions related to sync interruption. These were never really completed and don't seem to be in use by iOS/Android code:
PlacesApi.new_sync_conn_interrupt_handle()- Swift only:
PlacesAPI.interrupt()
- The exception variant
InternalPanicwas removed. It's only use was replaced by the already existingUnexpectedPlacesException. (#4847)
What's New
- The Places component will report more error variants to telemetry. (#4847)
Autofill / Logins / Places / Sync Manager, Webext-Storage
What's Changed
- Updated interruption handling and added support for shutdown-mode which interrupts all operations.
Tabs
⚠️ Breaking Changes ⚠️
- The tabs component's constructor now requires the path to the database file where remote tabs will be persisted to.
- Requesting remote tabs before the first sync will now return the tabs in this database, so may be "stale".
Glean
⚠️ Breaking Changes ⚠️
Swift
- GleanMetrics should now be imported under
import Gleaninstead of importing viaMozillaRustComponents
Nimbus FML
What's Changed
- Papercut fixes for nicer developer experience #4867
- More helpful validation error reporting
- Better handling of defaults in objects and enum maps
- More YAML syntactic checking.
- Allow experimenter to output to a YAML file, as well as JSON. #4874
- If the file extension is
yaml, then output as YAML, otherwise, output as JSON.
- If the file extension is
Autofill
What's New
- Added
temp-store,journal-mode, andforeign-keyspragmas to autofill component. (#4882)
v91.1.0
v91.1.0 (2022-02-11)
⛅️🔬🔭 Nimbus SDK
What's fixed
- Fixes a bug where disabling studies did not disable rollouts. (#4807)
✨ What's New ✨
- A message helper is now available to apps wanting to build a Messaging System on both Android and iOS. Both of these access the variables
provided by Nimbus, and can have app-specific variables added. This provides two functions:
Xcode
- Bumped Xcode version from 13.1.0 -> 13.2.1
Nimbus FML
What's fixed
- Fixes a bug where each time the fml is run, the ordering of features in the experimenter json is changed. (#4819)
v91.0.1
v91.0.1 (2022-02-02)
Places
What's Changed
- The database initialization code now uses BEGIN IMMIDIATE to start a
transaction. This will hopefully preventdatabase is lockederrors when
opening a sync connection.
What's New
- The
HistoryVisitInfostruct now has anis_remoteboolean which indicates whether the
represented visit happened locally or remotely. (#4810)
v91.0.0
v91.0.0 (2022-01-31)
Nimbus FML
What's New
- The Nimbus FML can now generate swift code for the feature manifest. (#4780)
- It can be invoked using:
$ nimbus-fml <FEATURE_MANIFEST_YAML> -o <OUTPUT_NAME> ios features
- You can check the support flags and options by running:
$ nimbus-fml ios --help
- The generated code exposes:
- a high level nimbus object, whose name is configurable using the
--classnameoption. By default the object isMyNimbus. - All the enums and objects defined in the manifest as idiomatic Swift code.
- a high level nimbus object, whose name is configurable using the
- Usage:
- To access a feature's value:
// MyNimbus is the class that holds all the features supported by Nimbus // MyNimbus has an singleton instance, you can access it using the `shared` field: let nimbus = MyNimbus.shared // Then you can access the features using: // MyNimbus.features.<featureNameCamelCase>.value(), for example: let feature = nimbus.features.homepage.value()
- To access a field in the feature:
// feature.<propertyNameCamelCase>, for example: assert(feature.sectionsEnabled[HomeScreenSection.topSites] == true)
- To access a feature's value:
⚠️ Breaking Changes ⚠️
-
Android only: Accessing drawables has changed to give access to the resource identifier. (#4801)
- Migration path to the old behaviour is:
let drawable: Drawable = MyNimbus.features.exampleFeature.demoDrawable
becomes:
let drawable: Drawable = MyNimbus.features.exampleFeature.demoDrawable.resource
General iOS
What's changed
v90.0.1
v90.0.1 (2022-01-24)
Places
- Fixed an issue with previously consumed errors for invalid URLs were propagating to consumers and causing a crash
- Changed
bookmarks_get_all_with_urlandaccept_resultto accept a string instead of url
- Changed
v90.0.0
v90.0.0 (2022-01-20)
Places
⚠️ Breaking Changes ⚠️
- Places has been completely UniFFI-ed
v89.0.0
v89.0.0 (2022-01-20)
Supported Xcode Versions
- Reverting the supported Xcode version from 13.2.1 to 13.1.0 to circumvent the issues with Swift Package Manager in Xcode 13.2.1. (#4787)
Nimbus☁️🔬🔭
What's New
- Add
TextandImagesupport for the FML to access bundled resources (#4784).
Breaking Change
- The
NimbusInterfacenow exposes acontext: Contextproperty.
v88.0.0
v88.0.0 (2022-01-19)
Nimbus☁️🔬🔭
What's Changed
- The SDK is now tolerant to legacy experiment recipes that have both
featureandfeaturesin their branches (SDK-1989)
General
⚠️ Breaking Changes ⚠️
- The bundled version of Glean has been updated to v43.0.2.
See the Glean Changelog for full details.
BREAKING CHANGE: Pass build info into initialize, which contains the build date.
A suitable instance is generated byglean_parserinGleanMetrics.GleanBuild.info.
v86.2.2
v86.2.2 (2022-01-13)
Logins
What's changed
- The `update()` and `add_or_update()` methods will log rather than return an error when trying to update a duplicate login (#4648)
v87.3.0
v87.3.0 (2022-01-11)
Supported Xcode Versions
- As of Jan 2022, support for Xcode version 13.2.1 is upcoming. After the associated PR is merged AS side and a release is cut, Fx-iOS will update on their side to fully support this Xcode version. See Fx-iOS's Wiki for details.
viaduct
What's New
- Add support for PATCH methods. (#4751)
Nimbus
What's new
- The Nimbus SDK now support application version targeting, where experiment creators can set
app_version|versionCompare({VERSION}) >= 0and the experiments will only target users runningVERSIONor higher. (#4752)- The
versionComparetransform will return a positive number ifapp_versionis greater than
VERSION, a negative number ifapp_versionis less thanVERSIONand zero if they are equal VERSIONmust be passed in as a string, for example:app_version|versionCompare('95.!') >= 0will target users who are on any version starting with95or above (95.0,95.1,95.2.3-beta,96etc..)
- The