Skip to content

91.0.0

Compare
Choose a tag to compare
@skhamis skhamis released this 01 Feb 22:27
· 414 commits to main since this release
53d2f85

v91.0.0 (2022-01-31)

Full Changelog

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 --classname option. By default the object is MyNimbus.
      • All the enums and objects defined in the manifest as idiomatic Swift code.
    • 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)

⚠️ 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

  • Moved SwiftKeychainWrapper from an external Swift Package to be bundled with FxA. This is due to issues Firefox iOS had with their dependency tree. (#4797)
  • Exposed all crates as targets for the XCFramework. (#4797)