From 3c83b0fed442320e40e3f7bb321a28bdd05621d6 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Wed, 21 Aug 2024 09:48:35 +0200 Subject: [PATCH 1/8] chore(release): publish packages - powersync@1.6.6 - powersync_attachments_helper@0.6.4 - powersync_flutter_libs@0.2.1 --- CHANGELOG.md | 31 +++++++++++++++++++ demos/django-todolist/pubspec.yaml | 2 +- demos/supabase-anonymous-auth/pubspec.yaml | 2 +- .../supabase-edge-function-auth/pubspec.yaml | 2 +- demos/supabase-simple-chat/pubspec.yaml | 2 +- demos/supabase-todolist-drift/pubspec.yaml | 4 +-- demos/supabase-todolist/pubspec.yaml | 4 +-- packages/powersync/CHANGELOG.md | 4 +++ packages/powersync/pubspec.yaml | 4 +-- .../powersync_attachments_helper/CHANGELOG.md | 4 +++ .../powersync_attachments_helper/pubspec.yaml | 4 +-- packages/powersync_flutter_libs/CHANGELOG.md | 4 +++ packages/powersync_flutter_libs/pubspec.yaml | 2 +- 13 files changed, 56 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89b315a1..b66b229e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,37 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## 2024-08-21 + +### Changes + +--- + +Packages with breaking changes: + + - There are no breaking changes in this release. + +Packages with other changes: + + - [`powersync` - `v1.6.6`](#powersync---v166) + - [`powersync_attachments_helper` - `v0.6.4`](#powersync_attachments_helper---v064) + - [`powersync_flutter_libs` - `v0.2.1`](#powersync_flutter_libs---v021) + +--- + +#### `powersync` - `v1.6.6` + + - **CHORE**: Update dependency powersync_flutter_libs + +#### `powersync_attachments_helper` - `v0.6.4` + + - Update a dependency to the latest release. + +#### `powersync_flutter_libs` - `v0.2.1` + + - **FIX**: Prebundling downloaded core binaries + + ## 2024-08-19 ### Changes diff --git a/demos/django-todolist/pubspec.yaml b/demos/django-todolist/pubspec.yaml index b1a049c9..573f1450 100644 --- a/demos/django-todolist/pubspec.yaml +++ b/demos/django-todolist/pubspec.yaml @@ -10,7 +10,7 @@ environment: dependencies: flutter: sdk: flutter - powersync: ^1.6.5 + powersync: ^1.6.6 path_provider: ^2.1.1 path: ^1.8.3 logging: ^1.2.0 diff --git a/demos/supabase-anonymous-auth/pubspec.yaml b/demos/supabase-anonymous-auth/pubspec.yaml index acd0de17..488df1f8 100644 --- a/demos/supabase-anonymous-auth/pubspec.yaml +++ b/demos/supabase-anonymous-auth/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: flutter: sdk: flutter - powersync: ^1.6.5 + powersync: ^1.6.6 path_provider: ^2.1.1 supabase_flutter: ^2.0.2 path: ^1.8.3 diff --git a/demos/supabase-edge-function-auth/pubspec.yaml b/demos/supabase-edge-function-auth/pubspec.yaml index a0474e02..99a8df17 100644 --- a/demos/supabase-edge-function-auth/pubspec.yaml +++ b/demos/supabase-edge-function-auth/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: flutter: sdk: flutter - powersync: ^1.6.5 + powersync: ^1.6.6 path_provider: ^2.1.1 supabase_flutter: ^2.0.2 path: ^1.8.3 diff --git a/demos/supabase-simple-chat/pubspec.yaml b/demos/supabase-simple-chat/pubspec.yaml index ee6cd0b2..9c9c49f7 100644 --- a/demos/supabase-simple-chat/pubspec.yaml +++ b/demos/supabase-simple-chat/pubspec.yaml @@ -37,7 +37,7 @@ dependencies: supabase_flutter: ^2.0.2 timeago: ^3.6.0 - powersync: ^1.6.5 + powersync: ^1.6.6 path_provider: ^2.1.1 path: ^1.8.3 logging: ^1.2.0 diff --git a/demos/supabase-todolist-drift/pubspec.yaml b/demos/supabase-todolist-drift/pubspec.yaml index 582818ea..916d512d 100644 --- a/demos/supabase-todolist-drift/pubspec.yaml +++ b/demos/supabase-todolist-drift/pubspec.yaml @@ -9,8 +9,8 @@ environment: dependencies: flutter: sdk: flutter - powersync_attachments_helper: ^0.6.3+2 - powersync: ^1.6.5 + powersync_attachments_helper: ^0.6.4 + powersync: ^1.6.6 path_provider: ^2.1.1 supabase_flutter: ^2.0.1 path: ^1.8.3 diff --git a/demos/supabase-todolist/pubspec.yaml b/demos/supabase-todolist/pubspec.yaml index 2d5957ec..23fe166c 100644 --- a/demos/supabase-todolist/pubspec.yaml +++ b/demos/supabase-todolist/pubspec.yaml @@ -10,8 +10,8 @@ environment: dependencies: flutter: sdk: flutter - powersync_attachments_helper: ^0.6.3+2 - powersync: ^1.6.5 + powersync_attachments_helper: ^0.6.4 + powersync: ^1.6.6 path_provider: ^2.1.1 supabase_flutter: ^2.0.1 path: ^1.8.3 diff --git a/packages/powersync/CHANGELOG.md b/packages/powersync/CHANGELOG.md index 43a08711..9ad962de 100644 --- a/packages/powersync/CHANGELOG.md +++ b/packages/powersync/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.6.6 + + - **CHORE**: Update dependency powersync_flutter_libs + ## 1.6.5 - **CHORE**: Update dependency `powersync_flutter_libs` diff --git a/packages/powersync/pubspec.yaml b/packages/powersync/pubspec.yaml index 3b3f99c5..ca86ca1a 100644 --- a/packages/powersync/pubspec.yaml +++ b/packages/powersync/pubspec.yaml @@ -1,5 +1,5 @@ name: powersync -version: 1.6.5 +version: 1.6.6 homepage: https://powersync.com repository: https://github.com/powersync-ja/powersync.dart description: PowerSync Flutter SDK - keep PostgreSQL databases in sync with on-device SQLite databases. @@ -13,7 +13,7 @@ dependencies: sqlite_async: ^0.8.1 universal_io: ^2.0.0 sqlite3_flutter_libs: ^0.5.23 - powersync_flutter_libs: ^0.2.0 + powersync_flutter_libs: ^0.2.1 meta: ^1.0.0 http: ^1.1.0 uuid: ^4.2.0 diff --git a/packages/powersync_attachments_helper/CHANGELOG.md b/packages/powersync_attachments_helper/CHANGELOG.md index 7941151b..6b04eefd 100644 --- a/packages/powersync_attachments_helper/CHANGELOG.md +++ b/packages/powersync_attachments_helper/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.4 + + - Update a dependency to the latest release. + ## 0.6.3+2 - Update a dependency to the latest release. diff --git a/packages/powersync_attachments_helper/pubspec.yaml b/packages/powersync_attachments_helper/pubspec.yaml index 92fd3467..c71252a6 100644 --- a/packages/powersync_attachments_helper/pubspec.yaml +++ b/packages/powersync_attachments_helper/pubspec.yaml @@ -1,6 +1,6 @@ name: powersync_attachments_helper description: A helper library for handling attachments when using PowerSync. -version: 0.6.3+2 +version: 0.6.4 repository: https://github.com/powersync-ja/powersync.dart homepage: https://www.powersync.com/ environment: @@ -10,7 +10,7 @@ dependencies: flutter: sdk: flutter - powersync: ^1.6.5 + powersync: ^1.6.6 logging: ^1.2.0 sqlite_async: ^0.8.1 path_provider: ^2.0.13 diff --git a/packages/powersync_flutter_libs/CHANGELOG.md b/packages/powersync_flutter_libs/CHANGELOG.md index 6abf75f9..1eb5dc4a 100644 --- a/packages/powersync_flutter_libs/CHANGELOG.md +++ b/packages/powersync_flutter_libs/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.1 + + - **FIX**: Prebundling downloaded core binaries + ## 0.2.0 - **FEAT**: Prebundle downloaded core binaries diff --git a/packages/powersync_flutter_libs/pubspec.yaml b/packages/powersync_flutter_libs/pubspec.yaml index 1cdf7b67..5bebafa9 100644 --- a/packages/powersync_flutter_libs/pubspec.yaml +++ b/packages/powersync_flutter_libs/pubspec.yaml @@ -1,6 +1,6 @@ name: powersync_flutter_libs description: PowerSync core binaries for the PowerSync Flutter SDK. Needs to be included for Flutter apps. -version: 0.2.0 +version: 0.2.1 repository: https://github.com/powersync-ja/powersync.dart homepage: https://www.powersync.com/ From b9f60b53bdbcde15f806240d69b00e098547507c Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Wed, 21 Aug 2024 09:49:36 +0200 Subject: [PATCH 2/8] Bump lock versions --- demos/django-todolist/pubspec.lock | 4 ++-- demos/supabase-anonymous-auth/pubspec.lock | 4 ++-- demos/supabase-edge-function-auth/pubspec.lock | 4 ++-- demos/supabase-simple-chat/pubspec.lock | 4 ++-- demos/supabase-todolist-drift/pubspec.lock | 6 +++--- demos/supabase-todolist/pubspec.lock | 6 +++--- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/demos/django-todolist/pubspec.lock b/demos/django-todolist/pubspec.lock index c36ef1f2..035a10ee 100644 --- a/demos/django-todolist/pubspec.lock +++ b/demos/django-todolist/pubspec.lock @@ -310,14 +310,14 @@ packages: path: "../../packages/powersync" relative: true source: path - version: "1.6.5" + version: "1.6.6" powersync_flutter_libs: dependency: "direct overridden" description: path: "../../packages/powersync_flutter_libs" relative: true source: path - version: "0.2.0" + version: "0.2.1" pub_semver: dependency: transitive description: diff --git a/demos/supabase-anonymous-auth/pubspec.lock b/demos/supabase-anonymous-auth/pubspec.lock index 9030747b..216ac1f8 100644 --- a/demos/supabase-anonymous-auth/pubspec.lock +++ b/demos/supabase-anonymous-auth/pubspec.lock @@ -366,14 +366,14 @@ packages: path: "../../packages/powersync" relative: true source: path - version: "1.6.5" + version: "1.6.6" powersync_flutter_libs: dependency: "direct overridden" description: path: "../../packages/powersync_flutter_libs" relative: true source: path - version: "0.2.0" + version: "0.2.1" pub_semver: dependency: transitive description: diff --git a/demos/supabase-edge-function-auth/pubspec.lock b/demos/supabase-edge-function-auth/pubspec.lock index 9030747b..216ac1f8 100644 --- a/demos/supabase-edge-function-auth/pubspec.lock +++ b/demos/supabase-edge-function-auth/pubspec.lock @@ -366,14 +366,14 @@ packages: path: "../../packages/powersync" relative: true source: path - version: "1.6.5" + version: "1.6.6" powersync_flutter_libs: dependency: "direct overridden" description: path: "../../packages/powersync_flutter_libs" relative: true source: path - version: "0.2.0" + version: "0.2.1" pub_semver: dependency: transitive description: diff --git a/demos/supabase-simple-chat/pubspec.lock b/demos/supabase-simple-chat/pubspec.lock index 2f199f9c..945dff6c 100644 --- a/demos/supabase-simple-chat/pubspec.lock +++ b/demos/supabase-simple-chat/pubspec.lock @@ -382,14 +382,14 @@ packages: path: "../../packages/powersync" relative: true source: path - version: "1.6.5" + version: "1.6.6" powersync_flutter_libs: dependency: "direct overridden" description: path: "../../packages/powersync_flutter_libs" relative: true source: path - version: "0.2.0" + version: "0.2.1" pub_semver: dependency: transitive description: diff --git a/demos/supabase-todolist-drift/pubspec.lock b/demos/supabase-todolist-drift/pubspec.lock index a021556b..fab3421b 100644 --- a/demos/supabase-todolist-drift/pubspec.lock +++ b/demos/supabase-todolist-drift/pubspec.lock @@ -686,21 +686,21 @@ packages: path: "../../packages/powersync" relative: true source: path - version: "1.6.5" + version: "1.6.6" powersync_attachments_helper: dependency: "direct main" description: path: "../../packages/powersync_attachments_helper" relative: true source: path - version: "0.6.3+2" + version: "0.6.4" powersync_flutter_libs: dependency: "direct overridden" description: path: "../../packages/powersync_flutter_libs" relative: true source: path - version: "0.2.0" + version: "0.2.1" pub_semver: dependency: transitive description: diff --git a/demos/supabase-todolist/pubspec.lock b/demos/supabase-todolist/pubspec.lock index a6c7ddc8..2cfb0b95 100644 --- a/demos/supabase-todolist/pubspec.lock +++ b/demos/supabase-todolist/pubspec.lock @@ -470,21 +470,21 @@ packages: path: "../../packages/powersync" relative: true source: path - version: "1.6.5" + version: "1.6.6" powersync_attachments_helper: dependency: "direct main" description: path: "../../packages/powersync_attachments_helper" relative: true source: path - version: "0.6.3+2" + version: "0.6.4" powersync_flutter_libs: dependency: "direct overridden" description: path: "../../packages/powersync_flutter_libs" relative: true source: path - version: "0.2.0" + version: "0.2.1" pub_semver: dependency: transitive description: From cb47f3bc0211e889563c01ee5c79b102d366bf24 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Wed, 21 Aug 2024 10:12:29 +0200 Subject: [PATCH 3/8] Remove windows and linux binaries from gitignore --- packages/powersync_flutter_libs/.gitignore | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/powersync_flutter_libs/.gitignore b/packages/powersync_flutter_libs/.gitignore index 1593a1f1..28c38e06 100644 --- a/packages/powersync_flutter_libs/.gitignore +++ b/packages/powersync_flutter_libs/.gitignore @@ -28,7 +28,5 @@ migrate_working_dir/ .dart_tool/ build/ -*.so *.a -*.dylib -*.dll +*.dylib \ No newline at end of file From 9289479ee195053b726e7e8960a70962f4899d30 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Wed, 21 Aug 2024 10:14:26 +0200 Subject: [PATCH 4/8] Remove dylib from gitignore for macos --- packages/powersync_flutter_libs/.gitignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/powersync_flutter_libs/.gitignore b/packages/powersync_flutter_libs/.gitignore index 28c38e06..4edd0620 100644 --- a/packages/powersync_flutter_libs/.gitignore +++ b/packages/powersync_flutter_libs/.gitignore @@ -28,5 +28,4 @@ migrate_working_dir/ .dart_tool/ build/ -*.a -*.dylib \ No newline at end of file +*.a \ No newline at end of file From c2802fb38878cf1a7fe2198251c0a9cec573e5ef Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Wed, 21 Aug 2024 11:06:00 +0200 Subject: [PATCH 5/8] Refactor to use dart script to download binaries for demos --- melos.yaml | 4 +-- packages/powersync_flutter_libs/.gitignore | 5 ++- scripts/download_core_binary_demos.dart | 37 ++++++++++++++++++++++ tool/download_binaries.sh | 12 ------- 4 files changed, 43 insertions(+), 15 deletions(-) create mode 100644 scripts/download_core_binary_demos.dart delete mode 100644 tool/download_binaries.sh diff --git a/melos.yaml b/melos.yaml index 0f4f76a1..e487621f 100644 --- a/melos.yaml +++ b/melos.yaml @@ -16,7 +16,7 @@ command: noPrivate: true publish: hooks: - pre: sh tool/download_binaries.sh v0.1.8 # Download latest core binaries when publishing + pre: dart ./scripts/download_core_binary_demos.dart # Download latest core binaries when publishing packageFilters: noPrivate: true @@ -25,7 +25,7 @@ scripts: description: Download SQLite3 WASM for demos run: | melos bootstrap && melos prepare:assets && dart ./scripts/compile_webworker.dart && dart ./scripts/init_powersync_core_binary.dart - melos prepare:demos + dart ./scripts/download_core_binary_demos.dart && melos prepare:demos prepare:demos: description: Download SQLite3 wasm for demos diff --git a/packages/powersync_flutter_libs/.gitignore b/packages/powersync_flutter_libs/.gitignore index 4edd0620..3c6d8232 100644 --- a/packages/powersync_flutter_libs/.gitignore +++ b/packages/powersync_flutter_libs/.gitignore @@ -28,4 +28,7 @@ migrate_working_dir/ .dart_tool/ build/ -*.a \ No newline at end of file +!*.so +*.a +!*.dylib +!*.dll \ No newline at end of file diff --git a/scripts/download_core_binary_demos.dart b/scripts/download_core_binary_demos.dart new file mode 100644 index 00000000..4bf22cdc --- /dev/null +++ b/scripts/download_core_binary_demos.dart @@ -0,0 +1,37 @@ +/// Downloads the powersync-core dynamic library to run the demos using melos +/// This is only necessary in the monorepo setup +import 'dart:io'; + +final coreUrl = + 'https://github.com/powersync-ja/powersync-sqlite-core/releases/download/v0.1.8'; + +void main() async { + final powersyncLibsLinuxPath = "packages/powersync_flutter_libs/linux"; + final powersyncLibsWindowsPath = "packages/powersync_flutter_libs/windows"; + + final linuxArm64FileName = "libpowersync_aarch64.so"; + final linuxX64FileName = "libpowersync_x64.so"; + final windowsX64FileName = "powersync_x64.dll"; + + // Download dynamic library + await downloadFile("$coreUrl/$linuxArm64FileName", + "$powersyncLibsLinuxPath/$linuxArm64FileName"); + await downloadFile("$coreUrl/$linuxX64FileName", + "$powersyncLibsLinuxPath/$linuxX64FileName"); + await downloadFile("$coreUrl/$windowsX64FileName", + "$powersyncLibsWindowsPath/$windowsX64FileName"); +} + +Future downloadFile(String url, String savePath) async { + print('Downloading: $url'); + var httpClient = HttpClient(); + var request = await httpClient.getUrl(Uri.parse(url)); + var response = await request.close(); + if (response.statusCode == HttpStatus.ok) { + var file = File(savePath); + await response.pipe(file.openWrite()); + } else { + print( + 'Failed to download file: ${response.statusCode} ${response.reasonPhrase}'); + } +} diff --git a/tool/download_binaries.sh b/tool/download_binaries.sh deleted file mode 100644 index 2f8209f7..00000000 --- a/tool/download_binaries.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -if [ -z "$1" ]; then - echo "Core version is not set"; - exit 2; -fi - -github="https://github.com/powersync-ja/powersync-sqlite-core/releases/download/$1" - -curl "${github}/libpowersync_aarch64.so" -o packages/powersync_flutter_libs/linux/libpowersync_aarch64.so --create-dirs -L -f -curl "${github}/libpowersync_x64.so" -o packages/powersync_flutter_libs/linux/libpowersync_x64.so --create-dirs -L -f -curl "${github}/powersync_x64.dll" -o packages/powersync_flutter_libs/windows/powersync_x64.dll --create-dirs -L -f \ No newline at end of file From bfa44c971f04365e6b1b831a9b35f3a01713c598 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Wed, 21 Aug 2024 11:21:45 +0200 Subject: [PATCH 6/8] Update gitignore to publish binaries --- .github/workflows/publish.yml | 4 ++++ packages/powersync_flutter_libs/.gitignore | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index fb3a0ec4..6c2a14c3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -39,6 +39,10 @@ jobs: echo "PACKAGE_NAME=$PACKAGE_NAME" >> $GITHUB_ENV echo "Package name: $PACKAGE_NAME" + - name: Update gitignore + run: | + sed -i '' -e 's/*.so/!*.so/g; s/*.dll/!*.dll/g; s/*.dylib/!*.dylib/g' packages/powersync_flutter_libs/.gitignore + - name: Publish packages dry run run: | melos publish --yes --scope=$PACKAGE_NAME diff --git a/packages/powersync_flutter_libs/.gitignore b/packages/powersync_flutter_libs/.gitignore index 3c6d8232..77616b6b 100644 --- a/packages/powersync_flutter_libs/.gitignore +++ b/packages/powersync_flutter_libs/.gitignore @@ -28,7 +28,7 @@ migrate_working_dir/ .dart_tool/ build/ -!*.so +*.so *.a -!*.dylib -!*.dll \ No newline at end of file +*.dylib +*.dll \ No newline at end of file From 48618c6e63a58c271137fd1b371bd1d104977fa4 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Wed, 21 Aug 2024 11:32:04 +0200 Subject: [PATCH 7/8] Fix sed for linux --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 6c2a14c3..7b80a820 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -41,7 +41,7 @@ jobs: - name: Update gitignore run: | - sed -i '' -e 's/*.so/!*.so/g; s/*.dll/!*.dll/g; s/*.dylib/!*.dylib/g' packages/powersync_flutter_libs/.gitignore + sed -i -e 's/*.so/!*.so/g; s/*.dll/!*.dll/g; s/*.dylib/!*.dylib/g' packages/powersync_flutter_libs/.gitignore - name: Publish packages dry run run: | From 3f2f587f44de0a3068a6c12c881e0be1488f88a2 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Wed, 21 Aug 2024 11:59:34 +0200 Subject: [PATCH 8/8] Remove sed command in favour of .pubignore --- .github/workflows/publish.yml | 4 ---- packages/powersync_flutter_libs/.pubignore | 25 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 packages/powersync_flutter_libs/.pubignore diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 7b80a820..fb3a0ec4 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -39,10 +39,6 @@ jobs: echo "PACKAGE_NAME=$PACKAGE_NAME" >> $GITHUB_ENV echo "Package name: $PACKAGE_NAME" - - name: Update gitignore - run: | - sed -i -e 's/*.so/!*.so/g; s/*.dll/!*.dll/g; s/*.dylib/!*.dylib/g' packages/powersync_flutter_libs/.gitignore - - name: Publish packages dry run run: | melos publish --yes --scope=$PACKAGE_NAME diff --git a/packages/powersync_flutter_libs/.pubignore b/packages/powersync_flutter_libs/.pubignore new file mode 100644 index 00000000..befa626a --- /dev/null +++ b/packages/powersync_flutter_libs/.pubignore @@ -0,0 +1,25 @@ +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +*.iml +*.ipr +*.iws +.idea/ + +/pubspec.lock +**/doc/api/ +.dart_tool/ +build/ + +!*.so +!*.a +!*.dylib +!*.dll \ No newline at end of file