Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Nov 10, 2025

Bumps ffigen from 19.1.0 to 20.0.0.

Release notes

Sourced from ffigen's releases.

ffigen-v20.0.0

  • Breaking change: Completely rewrite the public Dart API for FFIgen. The new API is focused on a declartive configuration: FfiGenerate(...) with a generate() method. The configuration describes everything w.r.t. to the FFIgen input and output. The generate method takes context parameters such as a logger and path to libclang. With this breaking change, also some defaults changed: (1) @Native bindings are now the default, and (2) struct/unions refered to by pointer will be generated as Opaque by default.
  • Breaking change: Rename some ObjC interface built in methods. Rename isInstance to isA, castFrom to as, and castFromPointer to fromPointer.
  • Breaking change: Change ObjC interfaces and protocols to generate as extension types. This gives a small performance boost, and in most cases won't require any code changes.
  • Breaking change: Change how ObjC protocols are generated, splitting the methods related to constructing instances into a separate Foo$Builder class. The protocol's instance methods are now directly invokable from the built object.
  • Breaking change: Minor breaking change in the way that ObjC interface methods are generated. Interface methods are now generated as extension methods instead of being part of the class. This shouldn't require any code changes unless you are using show or hide when importing the interface.
    • If you are using show/hide to show or hide a particular interface, eg Foo, you'll now also need to show or hide Foo$Methods.
    • In rare cases the runtime type of the Dart wrapper object around the ObjC object may change, but the underlying ObjC object will still be the same. In any case, you should be using Foo.isInstance(x) instead of x is Foo to check the runtime type of an ObjC object.
  • Breaking change: Minor breaking change where ObjC enums declared using NS_OPTIONS now default to generating int constants instead of a Dart enum. Users who cared about this distinction were likely already using enums.as-int for these enums. This change just provides a better default behavior, so is unlikely to cause any substantive code changes.
  • Breaking_change: The name collision resolution system has been overhauled to fix various bugs, and make the renaming more consistent. As a result, in some cases different names may be chosen when resolving collisions.
  • Breaking_change: Detect the ObjC error raising pattern, where the last param is NSError** error, capture any error returned, and throw it as a Dart NSErrorException.
  • Fix for opaque dependencies for struct/union const arrays.
  • Make the Logger argument of FfiGenerator.generate optional. It defaults to a logger printing to stdout and stderr.
Commits
  • 8215af2 [objective_c] clean up unnecessary ignore_for_files (#2752)
  • 988eebe [ffigen] clean up all unnecessary ignore_for_files (#2751)
  • b2618fc [ffigen] auto-ignore unused imports in bindings (#2750)
  • 1e6c853 [ffigen] Prepare to publish ffigen 20 and objective_c 9 (#2749)
  • b8a62a9 [hooks] clean up unnecessary ignores (#2753)
  • d7979b2 [jni] minor lint fixes (#2755)
  • e9910c3 [doc] Document how to avoid symbol clashes with embedder (#2740)
  • f75c068 [jni] Fix the context when using multiple flutter engines (#2494)
  • ad6ae81 [ffigen] Remove unnecessary ignore_for_files (#2747)
  • efb2c2c [ffigen] Migrate to extension types (#2723)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [ffigen](https://github.com/dart-lang/native/tree/main/pkgs) from 19.1.0 to 20.0.0.
- [Release notes](https://github.com/dart-lang/native/releases)
- [Commits](https://github.com/dart-lang/native/commits/ffigen-v20.0.0/pkgs)

---
updated-dependencies:
- dependency-name: ffigen
  dependency-version: 20.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added dart Pull requests that update dart code dependencies Pull requests that update a dependency file labels Nov 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dart Pull requests that update dart code dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant