dart-lang / native

Dart packages related to FFI and native assets bundling.
BSD 3-Clause "New" or "Revised" License
82 stars 27 forks source link

Prepare to publish package:ffigen and package:objective_c #1125

Closed liamappelbe closed 1 week ago

liamappelbe commented 1 week ago

The first version of package:objective_c is ready to publish. We also have to publish package:ffigen at the same time because this version of ffigen contains all the logic to use package:objective_c in the bindings.

github-actions[bot] commented 1 week ago

PR Health

Changelog Entry :heavy_check_mark:

Details | Package | Changed Files | | :--- | :--- | Changes to files need to be [accounted for](https://github.com/dart-lang/ecosystem/wiki/Changelog) in their respective changelogs.

Coverage :heavy_check_mark:

Details | File | Coverage | | :--- | :--- | This check for [test coverage](https://github.com/dart-lang/ecosystem/wiki/Test-Coverage) is informational (issues shown here will not fail the PR).

License Headers :heavy_check_mark:

Details ``` // Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. ``` | Files | | :--- | | _no missing headers_ | All source files should start with a [license header](https://github.com/dart-lang/ecosystem/wiki/License-Header).
Unrelated files missing license headers | Files | | :--- | |pkgs/ffi/example/main.dart| |pkgs/ffigen/example/libclang-example/generated_bindings.dart| |pkgs/ffigen/example/shared_bindings/generate.dart| |pkgs/ffigen/example/shared_bindings/lib/generated/a_gen.dart| |pkgs/ffigen/example/shared_bindings/lib/generated/a_shared_b_gen.dart| |pkgs/ffigen/example/shared_bindings/lib/generated/base_gen.dart| |pkgs/ffigen/example/simple/generated_bindings.dart| |pkgs/ffigen/lib/src/config_provider/config_spec.dart| |pkgs/ffigen/lib/src/header_parser/clang_bindings/clang_bindings.dart| |pkgs/ffigen/test/collision_tests/expected_bindings/_expected_decl_decl_collision_bindings.dart| |pkgs/ffigen/test/collision_tests/expected_bindings/_expected_decl_symbol_address_collision_bindings.dart| |pkgs/ffigen/test/collision_tests/expected_bindings/_expected_decl_type_name_collision_bindings.dart| |pkgs/ffigen/test/collision_tests/expected_bindings/_expected_reserved_keyword_collision_bindings.dart| |pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_comment_markup_bindings.dart| |pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_dart_handle_bindings.dart| |pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_forward_decl_bindings.dart| |pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_functions_bindings.dart| |pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_imported_types_bindings.dart| |pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_native_func_typedef_bindings.dart| |pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_opaque_dependencies_bindings.dart| |pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_packed_structs_bindings.dart| |pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_regress_384_bindings.dart| |pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_struct_fptr_fields_bindings.dart| |pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_typedef_bindings.dart| |pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_unions_bindings.dart| |pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_varargs_bindings.dart| |pkgs/ffigen/test/large_integration_tests/_expected_cjson_bindings.dart| |pkgs/ffigen/test/large_integration_tests/_expected_libclang_bindings.dart| |pkgs/ffigen/test/large_integration_tests/_expected_sqlite_bindings.dart| |pkgs/ffigen/test/native_test/_expected_native_test_bindings.dart| |pkgs/jni/lib/src/lang/jcharacter.dart| |pkgs/jni/lib/src/third_party/generated_bindings.dart| |pkgs/jni/lib/src/third_party/global_env_extensions.dart| |pkgs/jni/lib/src/third_party/jni_bindings_generated.dart| |pkgs/jnigen/android_test_runner/lib/main.dart| |pkgs/jnigen/example/in_app_java/lib/android_utils.dart| |pkgs/jnigen/example/kotlin_plugin/example/lib/main.dart| |pkgs/jnigen/example/kotlin_plugin/lib/kotlin_bindings.dart| |pkgs/jnigen/example/kotlin_plugin/lib/kotlin_plugin.dart| |pkgs/jnigen/example/pdfbox_plugin/lib/pdfbox_plugin.dart| |pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/pdmodel/PDDocument.dart| |pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/pdmodel/PDDocumentInformation.dart| |pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/pdmodel/_package.dart| |pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/text/PDFTextStripper.dart| |pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/text/_package.dart| |pkgs/jnigen/lib/src/bindings/descriptor.dart| |pkgs/jnigen/lib/src/elements/elements.g.dart| |pkgs/jnigen/test/jackson_core_test/third_party/bindings/com/fasterxml/jackson/core/_package.dart| |pkgs/jnigen/tool/command_runner.dart| |pkgs/native_assets_cli/test/model/checksum_test.dart|
coveralls commented 1 week ago

Coverage Status

coverage: 90.815%. remained the same when pulling 5fddf8f9e71527266663b081be14f518f4bade23 on pubprep into 1a6faf502c01c598ce8ed6c77ea22c29774dbf34 on main.

liamappelbe commented 1 week ago

The publish check is failing because package:objective_c needs to be published through flutter rather than dart. Apparently the same is true for ffigen, even though package:objective_c is only a dev dep. Not sure how this works for jni and jnigen. I don't see anything in .github/workflows/publish.yaml that says which packages use flutter and which use dart.

liamappelbe commented 1 week ago

I am slightly surprised we don't need to commit one of the two versions first because it would be used in the stable version of the other in the unit tests. I guess we run all unit tests with path deps?

Yeah, they only depend on each other via dev deps, and both use dep overrides to point to the relative path. The override is necessary for local development and CI.