From a328d80704dbd23597a99b71e80b56bbef89c202 Mon Sep 17 00:00:00 2001 From: Adam Sharp Date: Sat, 18 Jun 2016 00:38:41 -0400 Subject: [PATCH 1/3] Don't lock transitive dependencies using submodules When Carthage checks out Swish into a project, it also recursively copies its submodules. This means that even if Carthage finds a more recent version of Result or Argo, when Swish is built it will always link against the version in the submodule. If the app and Swish are linked against two different versions of the same dependency, the app may crash on launch when looking up symbols. This change now ignores Cartfile.resolved, and stops using submodules, so that Swish can dynamically be linked against any compatible version that the app uses, rather than a specific submodule revision. --- .gitignore | 1 + .gitmodules | 12 ------------ Cartfile.resolved | 4 ---- Carthage/Checkouts/Argo | 1 - Carthage/Checkouts/Nimble | 1 - Carthage/Checkouts/Quick | 1 - Carthage/Checkouts/Result | 1 - bin/setup | 2 +- bin/update | 2 +- circle.yml | 2 +- 10 files changed, 4 insertions(+), 23 deletions(-) delete mode 100644 Cartfile.resolved delete mode 160000 Carthage/Checkouts/Argo delete mode 160000 Carthage/Checkouts/Nimble delete mode 160000 Carthage/Checkouts/Quick delete mode 160000 Carthage/Checkouts/Result diff --git a/.gitignore b/.gitignore index 922780e..3f59860 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,7 @@ Pods # Carthage Carthage/Build +Cartfile.resolved # AppCode specific files .idea/ diff --git a/.gitmodules b/.gitmodules index e88a9f6..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +0,0 @@ -[submodule "Carthage/Checkouts/Result"] - path = Carthage/Checkouts/Result - url = https://github.com/antitypical/Result.git -[submodule "Carthage/Checkouts/Nimble"] - path = Carthage/Checkouts/Nimble - url = https://github.com/Quick/Nimble.git -[submodule "Carthage/Checkouts/Quick"] - path = Carthage/Checkouts/Quick - url = https://github.com/Quick/Quick.git -[submodule "Carthage/Checkouts/Argo"] - path = Carthage/Checkouts/Argo - url = https://github.com/thoughtbot/Argo.git diff --git a/Cartfile.resolved b/Cartfile.resolved deleted file mode 100644 index 677768a..0000000 --- a/Cartfile.resolved +++ /dev/null @@ -1,4 +0,0 @@ -github "thoughtbot/Argo" "v3.0.1" -github "Quick/Nimble" "v4.0.1" -github "Quick/Quick" "v0.9.2" -github "antitypical/Result" "2.0.0" diff --git a/Carthage/Checkouts/Argo b/Carthage/Checkouts/Argo deleted file mode 160000 index be127e5..0000000 --- a/Carthage/Checkouts/Argo +++ /dev/null @@ -1 +0,0 @@ -Subproject commit be127e583674ff8e92653c9bbd0328ab55daebc7 diff --git a/Carthage/Checkouts/Nimble b/Carthage/Checkouts/Nimble deleted file mode 160000 index 0cf1291..0000000 --- a/Carthage/Checkouts/Nimble +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0cf12916a276ba7bc7a66ded95bd8f7e77ca7f6b diff --git a/Carthage/Checkouts/Quick b/Carthage/Checkouts/Quick deleted file mode 160000 index dc2b4b7..0000000 --- a/Carthage/Checkouts/Quick +++ /dev/null @@ -1 +0,0 @@ -Subproject commit dc2b4b75d2f718518acbdef289a72fad77975a8a diff --git a/Carthage/Checkouts/Result b/Carthage/Checkouts/Result deleted file mode 160000 index 5dec9cf..0000000 --- a/Carthage/Checkouts/Result +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5dec9cf225d5fa3b0602679fb2638e40191da46b diff --git a/bin/setup b/bin/setup index b948c6e..08d919d 100755 --- a/bin/setup +++ b/bin/setup @@ -1,4 +1,4 @@ #!/usr/bin/env bash brew install carthage 2> /dev/null -carthage bootstrap --use-submodules --no-build --no-use-binaries +carthage bootstrap --no-build --no-use-binaries diff --git a/bin/update b/bin/update index a408e48..8055648 100755 --- a/bin/update +++ b/bin/update @@ -1,4 +1,4 @@ #!/usr/bin/env bash brew install carthage 2> /dev/null -carthage update --use-submodules --no-build --no-use-binaries +carthage update --no-build --no-use-binaries diff --git a/circle.yml b/circle.yml index 5c7fe38..0f9b32d 100644 --- a/circle.yml +++ b/circle.yml @@ -4,7 +4,7 @@ machine: dependencies: override: - - git submodule update --init --recursive + - bin/setup test: override: From 68a5285e55797e69cce96d55d2b2b6064ad37448 Mon Sep 17 00:00:00 2001 From: Adam Sharp Date: Thu, 28 Jul 2016 16:30:22 -0600 Subject: [PATCH 2/3] Remove the workspace Carthage always prefers workspaces of projects, but the workspace dependencies won't compile in a `carthage build` without using submodules, because carthage checkouts don't share checkouts of transitive dependencies. --- Swish.xcworkspace/contents.xcworkspacedata | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 Swish.xcworkspace/contents.xcworkspacedata diff --git a/Swish.xcworkspace/contents.xcworkspacedata b/Swish.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 48b4239..0000000 --- a/Swish.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - From 5578b2adae0aa2c50fe333f39c422edac9567adb Mon Sep 17 00:00:00 2001 From: Adam Sharp Date: Thu, 28 Jul 2016 16:31:58 -0600 Subject: [PATCH 3/3] Ignore the entire Carthage/ sandbox --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 3f59860..267875a 100644 --- a/.gitignore +++ b/.gitignore @@ -29,7 +29,7 @@ build/ Pods # Carthage -Carthage/Build +Carthage/ Cartfile.resolved # AppCode specific files