Bump version to 3.0.0 (#216)

diff --git a/.github/workflows/test-package.yml b/.github/workflows/test-package.yml
index 642fed7..da0cc9b 100644
--- a/.github/workflows/test-package.yml
+++ b/.github/workflows/test-package.yml
@@ -19,7 +19,7 @@
     strategy:
       fail-fast: false
       matrix:
-        sdk: [2.13.0-211.6.beta] # TODO: revert to 2.13.
+        sdk: [2.13.0]
     steps:
       - uses: actions/checkout@v2
       - uses: dart-lang/setup-dart@v1.0
@@ -43,7 +43,7 @@
       - uses: actions/checkout@v2
       - uses: dart-lang/setup-dart@v1.0
         with:
-          sdk: 2.13.0-211.6.beta # TODO: revert to 2.13.
+          sdk: 2.13.0
       - name: Install dependencies
         run: dart pub get
       - name: Install libclang-10-dev
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5139d6f..3b1f928 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+# 3.0.0
+- Release for dart sdk `>=2.13` (Support for packed structs and inline arrays).
+
 # 3.0.0-beta.0
 - Added support for inline arrays in `Struct`s.
 - Remove config key `array-workaround`.
diff --git a/lib/src/config_provider/spec_utils.dart b/lib/src/config_provider/spec_utils.dart
index a08d8c8..73c0d0d 100644
--- a/lib/src/config_provider/spec_utils.dart
+++ b/lib/src/config_provider/spec_utils.dart
@@ -9,8 +9,8 @@
 import 'package:glob/glob.dart';
 import 'package:logging/logging.dart';
 import 'package:path/path.dart' as p;
-import 'package:yaml/yaml.dart';
 import 'package:quiver/pattern.dart' as quiver;
+import 'package:yaml/yaml.dart';
 
 import '../strings.dart' as strings;
 import 'config_types.dart';
diff --git a/lib/src/header_parser/parser.dart b/lib/src/header_parser/parser.dart
index ddcd9c6..93dfaa1 100644
--- a/lib/src/header_parser/parser.dart
+++ b/lib/src/header_parser/parser.dart
@@ -7,8 +7,8 @@
 import 'package:ffi/ffi.dart';
 import 'package:ffigen/src/code_generator.dart';
 import 'package:ffigen/src/config_provider.dart';
-import 'package:ffigen/src/header_parser/sub_parsers/macro_parser.dart';
 import 'package:ffigen/src/config_provider/config_types.dart';
+import 'package:ffigen/src/header_parser/sub_parsers/macro_parser.dart';
 import 'package:ffigen/src/header_parser/translation_unit_parser.dart';
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
diff --git a/lib/src/header_parser/sub_parsers/macro_parser.dart b/lib/src/header_parser/sub_parsers/macro_parser.dart
index 4574417..61db537 100644
--- a/lib/src/header_parser/sub_parsers/macro_parser.dart
+++ b/lib/src/header_parser/sub_parsers/macro_parser.dart
@@ -6,13 +6,13 @@
 import 'dart:io';
 import 'dart:typed_data';
 
-import 'package:ffigen/src/strings.dart' as strings;
-import 'package:path/path.dart' as p;
 import 'package:ffi/ffi.dart';
 import 'package:ffigen/src/code_generator.dart';
 import 'package:ffigen/src/header_parser/data.dart';
 import 'package:ffigen/src/header_parser/includer.dart';
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
+import 'package:path/path.dart' as p;
 
 import '../clang_bindings/clang_bindings.dart' as clang_types;
 import '../data.dart';
diff --git a/lib/src/header_parser/type_extractor/cxtypekindmap.dart b/lib/src/header_parser/type_extractor/cxtypekindmap.dart
index 7c7a936..48c915a 100644
--- a/lib/src/header_parser/type_extractor/cxtypekindmap.dart
+++ b/lib/src/header_parser/type_extractor/cxtypekindmap.dart
@@ -2,9 +2,9 @@
 // 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.
 
+import 'package:ffigen/src/code_generator.dart' show SupportedNativeType;
 import 'package:ffigen/src/header_parser/clang_bindings/clang_bindings.dart'
     as clang;
-import 'package:ffigen/src/code_generator.dart' show SupportedNativeType;
 
 /// Utility to convert CXType to [code_generator.Type].
 ///
diff --git a/pubspec.yaml b/pubspec.yaml
index 15555a2..ddacda0 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,12 +3,12 @@
 # BSD-style license that can be found in the LICENSE file.
 
 name: ffigen
-version: 3.0.0-beta.0
+version: 3.0.0
 homepage: https://github.com/dart-lang/ffigen
 description: Generator for FFI bindings, using LibClang to parse C header files.
 
 environment:
-  sdk: '>=2.13.0-211.6.beta <3.0.0'
+  sdk: '>=2.13.0 <3.0.0'
 
 dependencies:
   ffi: ^1.0.0
diff --git a/test/config_tests/compiler_opts_test.dart b/test/config_tests/compiler_opts_test.dart
index 1c5493b..b5e644b 100644
--- a/test/config_tests/compiler_opts_test.dart
+++ b/test/config_tests/compiler_opts_test.dart
@@ -6,8 +6,8 @@
 import 'package:ffigen/src/code_generator.dart';
 import 'package:ffigen/src/config_provider/spec_utils.dart';
 import 'package:ffigen/src/strings.dart' as strings;
-import 'package:yaml/yaml.dart' as yaml;
 import 'package:test/test.dart';
+import 'package:yaml/yaml.dart' as yaml;
 
 late Library actual, expected;
 
diff --git a/test/config_tests/packed_struct_override_test.dart b/test/config_tests/packed_struct_override_test.dart
index fd8be93..ca371d8 100644
--- a/test/config_tests/packed_struct_override_test.dart
+++ b/test/config_tests/packed_struct_override_test.dart
@@ -5,8 +5,8 @@
 import 'package:ffigen/ffigen.dart';
 import 'package:ffigen/src/code_generator.dart';
 import 'package:ffigen/src/strings.dart' as strings;
-import 'package:yaml/yaml.dart' as yaml;
 import 'package:test/test.dart';
+import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
diff --git a/test/example_tests/cjson_example_test.dart b/test/example_tests/cjson_example_test.dart
index 3d4536f..f6504a8 100644
--- a/test/example_tests/cjson_example_test.dart
+++ b/test/example_tests/cjson_example_test.dart
@@ -2,12 +2,12 @@
 // 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.
 
-import 'package:ffigen/src/header_parser.dart';
-import 'package:logging/logging.dart';
-import 'package:yaml/yaml.dart';
 import 'package:ffigen/src/config_provider/config.dart';
+import 'package:ffigen/src/header_parser.dart';
 import 'package:ffigen/src/strings.dart' as strings;
+import 'package:logging/logging.dart';
 import 'package:test/test.dart';
+import 'package:yaml/yaml.dart';
 
 import '../test_utils.dart';
 
diff --git a/test/example_tests/libclang_example_test.dart b/test/example_tests/libclang_example_test.dart
index deed803..43407fc 100644
--- a/test/example_tests/libclang_example_test.dart
+++ b/test/example_tests/libclang_example_test.dart
@@ -2,12 +2,12 @@
 // 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.
 
-import 'package:ffigen/src/header_parser.dart';
-import 'package:logging/logging.dart';
-import 'package:yaml/yaml.dart';
 import 'package:ffigen/src/config_provider/config.dart';
+import 'package:ffigen/src/header_parser.dart';
 import 'package:ffigen/src/strings.dart' as strings;
+import 'package:logging/logging.dart';
 import 'package:test/test.dart';
+import 'package:yaml/yaml.dart';
 
 import '../test_utils.dart';
 
diff --git a/test/example_tests/simple_example_test.dart b/test/example_tests/simple_example_test.dart
index 5b22de7..8f4c181 100644
--- a/test/example_tests/simple_example_test.dart
+++ b/test/example_tests/simple_example_test.dart
@@ -2,12 +2,12 @@
 // 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.
 
-import 'package:ffigen/src/header_parser.dart';
-import 'package:logging/logging.dart';
-import 'package:yaml/yaml.dart';
 import 'package:ffigen/src/config_provider/config.dart';
+import 'package:ffigen/src/header_parser.dart';
 import 'package:ffigen/src/strings.dart' as strings;
+import 'package:logging/logging.dart';
 import 'package:test/test.dart';
+import 'package:yaml/yaml.dart';
 
 import '../test_utils.dart';
 
diff --git a/test/header_parser_tests/comment_markup_test.dart b/test/header_parser_tests/comment_markup_test.dart
index 6d3f8ba..9771f63 100644
--- a/test/header_parser_tests/comment_markup_test.dart
+++ b/test/header_parser_tests/comment_markup_test.dart
@@ -3,12 +3,12 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
 import 'package:yaml/yaml.dart' as yaml;
-import 'package:ffigen/src/strings.dart' as strings;
 
 import '../test_utils.dart';
 
diff --git a/test/header_parser_tests/dart_handle_test.dart b/test/header_parser_tests/dart_handle_test.dart
index 27ce68e..ed9d1aa 100644
--- a/test/header_parser_tests/dart_handle_test.dart
+++ b/test/header_parser_tests/dart_handle_test.dart
@@ -3,13 +3,13 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:cli_util/cli_util.dart';
-import 'package:path/path.dart' as path;
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
+import 'package:path/path.dart' as path;
 import 'package:test/test.dart';
 import 'package:yaml/yaml.dart' as yaml;
-import 'package:ffigen/src/strings.dart' as strings;
 
 import '../test_utils.dart';
 
diff --git a/test/header_parser_tests/forward_decl_test.dart b/test/header_parser_tests/forward_decl_test.dart
index b0418b5..0d4488e 100644
--- a/test/header_parser_tests/forward_decl_test.dart
+++ b/test/header_parser_tests/forward_decl_test.dart
@@ -3,12 +3,12 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
 import 'package:yaml/yaml.dart' as yaml;
-import 'package:ffigen/src/strings.dart' as strings;
 
 import '../test_utils.dart';
 
diff --git a/test/header_parser_tests/function_n_struct_test.dart b/test/header_parser_tests/function_n_struct_test.dart
index aec4502..861a6bf 100644
--- a/test/header_parser_tests/function_n_struct_test.dart
+++ b/test/header_parser_tests/function_n_struct_test.dart
@@ -3,12 +3,12 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
 import 'package:yaml/yaml.dart' as yaml;
-import 'package:ffigen/src/strings.dart' as strings;
 
 import '../test_utils.dart';
 
diff --git a/test/header_parser_tests/functions_test.dart b/test/header_parser_tests/functions_test.dart
index ec5c2f6..6e526b1 100644
--- a/test/header_parser_tests/functions_test.dart
+++ b/test/header_parser_tests/functions_test.dart
@@ -3,11 +3,11 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:test/test.dart';
 import 'package:yaml/yaml.dart' as yaml;
-import 'package:ffigen/src/strings.dart' as strings;
 
 import '../test_utils.dart';
 
diff --git a/test/header_parser_tests/globals_test.dart b/test/header_parser_tests/globals_test.dart
index 7da2414..467be8a 100644
--- a/test/header_parser_tests/globals_test.dart
+++ b/test/header_parser_tests/globals_test.dart
@@ -3,11 +3,11 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:test/test.dart';
 import 'package:yaml/yaml.dart' as yaml;
-import 'package:ffigen/src/strings.dart' as strings;
 
 import '../test_utils.dart';
 
diff --git a/test/header_parser_tests/macros_test.dart b/test/header_parser_tests/macros_test.dart
index 2611940..d615b26 100644
--- a/test/header_parser_tests/macros_test.dart
+++ b/test/header_parser_tests/macros_test.dart
@@ -3,12 +3,12 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
 import 'package:yaml/yaml.dart' as yaml;
-import 'package:ffigen/src/strings.dart' as strings;
 
 import '../test_utils.dart';
 
diff --git a/test/header_parser_tests/native_func_typedef_test.dart b/test/header_parser_tests/native_func_typedef_test.dart
index e041f56..cc348cb 100644
--- a/test/header_parser_tests/native_func_typedef_test.dart
+++ b/test/header_parser_tests/native_func_typedef_test.dart
@@ -3,12 +3,12 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
 import 'package:yaml/yaml.dart' as yaml;
-import 'package:ffigen/src/strings.dart' as strings;
 
 import '../test_utils.dart';
 
diff --git a/test/header_parser_tests/nested_parsing_test.dart b/test/header_parser_tests/nested_parsing_test.dart
index 4dc9427..284d170 100644
--- a/test/header_parser_tests/nested_parsing_test.dart
+++ b/test/header_parser_tests/nested_parsing_test.dart
@@ -3,11 +3,11 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:test/test.dart';
 import 'package:yaml/yaml.dart' as yaml;
-import 'package:ffigen/src/strings.dart' as strings;
 
 import '../test_utils.dart';
 
diff --git a/test/header_parser_tests/opaque_dependencies_test.dart b/test/header_parser_tests/opaque_dependencies_test.dart
index 1107767..aea5468 100644
--- a/test/header_parser_tests/opaque_dependencies_test.dart
+++ b/test/header_parser_tests/opaque_dependencies_test.dart
@@ -3,12 +3,12 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
 import 'package:yaml/yaml.dart' as yaml;
-import 'package:ffigen/src/strings.dart' as strings;
 
 import '../test_utils.dart';
 
diff --git a/test/header_parser_tests/packed_structs_test.dart b/test/header_parser_tests/packed_structs_test.dart
index e334fab..4e99c03 100644
--- a/test/header_parser_tests/packed_structs_test.dart
+++ b/test/header_parser_tests/packed_structs_test.dart
@@ -3,12 +3,12 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
 import 'package:yaml/yaml.dart' as yaml;
-import 'package:ffigen/src/strings.dart' as strings;
 
 import '../test_utils.dart';
 
diff --git a/test/header_parser_tests/typedef_test.dart b/test/header_parser_tests/typedef_test.dart
index 8f2abc7..4e3daa5 100644
--- a/test/header_parser_tests/typedef_test.dart
+++ b/test/header_parser_tests/typedef_test.dart
@@ -3,12 +3,12 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
 import 'package:yaml/yaml.dart' as yaml;
-import 'package:ffigen/src/strings.dart' as strings;
 
 import '../test_utils.dart';
 
diff --git a/test/header_parser_tests/unnamed_enums_test.dart b/test/header_parser_tests/unnamed_enums_test.dart
index 02994af..ea9f32d 100644
--- a/test/header_parser_tests/unnamed_enums_test.dart
+++ b/test/header_parser_tests/unnamed_enums_test.dart
@@ -3,11 +3,11 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:test/test.dart';
 import 'package:yaml/yaml.dart' as yaml;
-import 'package:ffigen/src/strings.dart' as strings;
 
 import '../test_utils.dart';
 
diff --git a/test/large_integration_tests/large_test.dart b/test/large_integration_tests/large_test.dart
index fc38fb3..b7cf797 100644
--- a/test/large_integration_tests/large_test.dart
+++ b/test/large_integration_tests/large_test.dart
@@ -2,13 +2,13 @@
 // 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.
 
-import 'package:ffigen/src/header_parser.dart';
-import 'package:logging/logging.dart';
-import 'package:yaml/yaml.dart';
 import 'package:ffigen/src/config_provider/config.dart';
-import 'package:test/test.dart';
+import 'package:ffigen/src/header_parser.dart';
 import 'package:ffigen/src/strings.dart' as strings;
+import 'package:logging/logging.dart';
 import 'package:path/path.dart' as path;
+import 'package:test/test.dart';
+import 'package:yaml/yaml.dart';
 
 import '../test_utils.dart';
 
diff --git a/test/native_test/build_test_dylib.dart b/test/native_test/build_test_dylib.dart
index 5ec89ac..a41f686 100644
--- a/test/native_test/build_test_dylib.dart
+++ b/test/native_test/build_test_dylib.dart
@@ -58,7 +58,6 @@
   final options = getPlatformOptions()!;
 
   // Run clang compiler to generate the dynamic library.
-  // ignore: omit_local_variable_types
   final processResult = runClangProcess(options);
   printSuccess(processResult, options);
 }
diff --git a/test/rename_tests/rename_test.dart b/test/rename_tests/rename_test.dart
index b6fd403..bb4f0ee 100644
--- a/test/rename_tests/rename_test.dart
+++ b/test/rename_tests/rename_test.dart
@@ -3,11 +3,11 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:test/test.dart';
 import 'package:yaml/yaml.dart' as yaml;
-import 'package:ffigen/src/strings.dart' as strings;
 
 import '../test_utils.dart';