Skip to content

Commit

Permalink
Expose generators and laws as public artifacts (#389)
Browse files Browse the repository at this point in the history
* Extract optics laws to its own module

* Make core laws public

* Make effects laws public

* Remove unnecessary @testable annotation

* Update Package manifest

* Add podspecs for each new pod that is exposed

* Add new modules to Getting Started

* Add descriptions of new modules

* Update README with new published modules

* Fix target membership
  • Loading branch information
truizlop authored Jul 9, 2019
1 parent 66651ed commit c2e89a7
Show file tree
Hide file tree
Showing 78 changed files with 811 additions and 188 deletions.
25 changes: 25 additions & 0 deletions Bow-OpticsLaws-Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
254 changes: 200 additions & 54 deletions Bow.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

80 changes: 80 additions & 0 deletions Bow.xcodeproj/xcshareddata/xcschemes/Bow-OpticsLaws.xcscheme
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1020"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1160D0BD22D38CEC0010323A"
BuildableName = "BowOpticsLaws.framework"
BlueprintName = "Bow-OpticsLaws"
ReferencedContainer = "container:Bow.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1160D0BD22D38CEC0010323A"
BuildableName = "BowOpticsLaws.framework"
BlueprintName = "Bow-OpticsLaws"
ReferencedContainer = "container:Bow.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1160D0BD22D38CEC0010323A"
BuildableName = "BowOpticsLaws.framework"
BlueprintName = "Bow-OpticsLaws"
ReferencedContainer = "container:Bow.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
31 changes: 31 additions & 0 deletions BowBrightFuturesGenerators.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Pod::Spec.new do |s|
s.name = "BowBrightFuturesGenerators"
s.version = "0.4.0"
s.summary = "PBT Generators for data types in BowBrightFutures."
s.homepage = "https://github.com/bow-swift/bow"
s.license = { :type => 'Apache License, Version 2.0', :text => <<-LICENSE
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
LICENSE
}
s.authors = "The Bow authors"

s.requires_arc = true
s.osx.deployment_target = "10.10"
s.ios.deployment_target = "8.0"
s.tvos.deployment_target = "9.1"
s.watchos.deployment_target = "2.0"
s.source = { :git => "https://github.com/bow-swift/bow.git", :tag => "#{s.version}" }
s.source_files = "Tests/BowBrightFuturesGenerators/**/*.swift"
s.dependency "Bow", "~> #{s.version}"
s.dependency "BowGenerators", "~> #{s.version}"
s.dependency "BowBrightFutures", "~> #{s.version}"
s.dependency "SwiftCheck", "~> 0.12.0"
end
31 changes: 31 additions & 0 deletions BowEffectsGenerators.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Pod::Spec.new do |s|
s.name = "BowEffectsGenerators"
s.version = "0.4.0"
s.summary = "PBT Generators for data types in BowEffects."
s.homepage = "https://github.com/bow-swift/bow"
s.license = { :type => 'Apache License, Version 2.0', :text => <<-LICENSE
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
LICENSE
}
s.authors = "The Bow authors"

s.requires_arc = true
s.osx.deployment_target = "10.10"
s.ios.deployment_target = "8.0"
s.tvos.deployment_target = "9.1"
s.watchos.deployment_target = "2.0"
s.source = { :git => "https://github.com/bow-swift/bow.git", :tag => "#{s.version}" }
s.source_files = "Tests/BowEffectsGenerators/**/*.swift"
s.dependency "Bow", "~> #{s.version}"
s.dependency "BowGenerators", "~> #{s.version}"
s.dependency "BowEffects", "~> #{s.version}"
s.dependency "SwiftCheck", "~> 0.12.0"
end
31 changes: 31 additions & 0 deletions BowEffectsLaws.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Pod::Spec.new do |s|
s.name = "BowEffectsLaws"
s.version = "0.4.0"
s.summary = "Laws for type classes included in BowEffects."
s.homepage = "https://github.com/bow-swift/bow"
s.license = { :type => 'Apache License, Version 2.0', :text => <<-LICENSE
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
LICENSE
}
s.authors = "The Bow authors"

s.requires_arc = true
s.osx.deployment_target = "10.10"
s.ios.deployment_target = "8.0"
s.tvos.deployment_target = "9.1"
s.watchos.deployment_target = "2.0"
s.source = { :git => "https://github.com/bow-swift/bow.git", :tag => "#{s.version}" }
s.source_files = "Tests/BowEffectsLaws/**/*.swift"
s.dependency "Bow", "~> #{s.version}"
s.dependency "BowEffects", "~> #{s.version}"
s.dependency "SwiftCheck", "~> 0.12.0"
s.dependency "Nimble", "~> 8.0.1"
end
31 changes: 31 additions & 0 deletions BowFreeGenerators.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Pod::Spec.new do |s|
s.name = "BowFreeGenerators"
s.version = "0.4.0"
s.summary = "PBT Generators for data types in BowFree."
s.homepage = "https://github.com/bow-swift/bow"
s.license = { :type => 'Apache License, Version 2.0', :text => <<-LICENSE
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
LICENSE
}
s.authors = "The Bow authors"

s.requires_arc = true
s.osx.deployment_target = "10.10"
s.ios.deployment_target = "8.0"
s.tvos.deployment_target = "9.1"
s.watchos.deployment_target = "2.0"
s.source = { :git => "https://github.com/bow-swift/bow.git", :tag => "#{s.version}" }
s.source_files = "Tests/BowFreeGenerators/**/*.swift"
s.dependency "Bow", "~> #{s.version}"
s.dependency "BowGenerators", "~> #{s.version}"
s.dependency "BowFree", "~> #{s.version}"
s.dependency "SwiftCheck", "~> 0.12.0"
end
29 changes: 29 additions & 0 deletions BowGenerators.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
Pod::Spec.new do |s|
s.name = "BowGenerators"
s.version = "0.4.0"
s.summary = "PBT Generators for data types in Bow."
s.homepage = "https://github.com/bow-swift/bow"
s.license = { :type => 'Apache License, Version 2.0', :text => <<-LICENSE
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
LICENSE
}
s.authors = "The Bow authors"

s.requires_arc = true
s.osx.deployment_target = "10.10"
s.ios.deployment_target = "8.0"
s.tvos.deployment_target = "9.1"
s.watchos.deployment_target = "2.0"
s.source = { :git => "https://github.com/bow-swift/bow.git", :tag => "#{s.version}" }
s.source_files = "Tests/BowGenerators/**/*.swift"
s.dependency "Bow", "~> #{s.version}"
s.dependency "SwiftCheck", "~> 0.12.0"
end
31 changes: 31 additions & 0 deletions BowLaws.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Pod::Spec.new do |s|
s.name = "BowLaws"
s.version = "0.4.0"
s.summary = "Laws for type classes included in Bow."
s.homepage = "https://github.com/bow-swift/bow"
s.license = { :type => 'Apache License, Version 2.0', :text => <<-LICENSE
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
LICENSE
}
s.authors = "The Bow authors"

s.requires_arc = true
s.osx.deployment_target = "10.10"
s.ios.deployment_target = "8.0"
s.tvos.deployment_target = "9.1"
s.watchos.deployment_target = "2.0"
s.source = { :git => "https://github.com/bow-swift/bow.git", :tag => "#{s.version}" }
s.source_files = "Tests/BowLaws/**/*.swift"
s.dependency "Bow", "~> #{s.version}"
s.dependency "BowGenerators", "~> #{s.version}"
s.dependency "SwiftCheck", "~> 0.12.0"
s.dependency "Nimble", "~> 8.0.1"
end
31 changes: 31 additions & 0 deletions BowOpticsLaws.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Pod::Spec.new do |s|
s.name = "BowOpticsLaws"
s.version = "0.4.0"
s.summary = "Laws for type classes included in BowOptics."
s.homepage = "https://github.com/bow-swift/bow"
s.license = { :type => 'Apache License, Version 2.0', :text => <<-LICENSE
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
LICENSE
}
s.authors = "The Bow authors"

s.requires_arc = true
s.osx.deployment_target = "10.10"
s.ios.deployment_target = "8.0"
s.tvos.deployment_target = "9.1"
s.watchos.deployment_target = "2.0"
s.source = { :git => "https://github.com/bow-swift/bow.git", :tag => "#{s.version}" }
s.source_files = "Tests/BowOpticsLaws/**/*.swift"
s.dependency "Bow", "~> #{s.version}"
s.dependency "BowOptics", "~> #{s.version}"
s.dependency "SwiftCheck", "~> 0.12.0"
s.dependency "Nimble", "~> 8.0.1"
end
31 changes: 31 additions & 0 deletions BowRxGenerators.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Pod::Spec.new do |s|
s.name = "BowRxGenerators"
s.version = "0.4.0"
s.summary = "PBT Generators for data types in BowRx."
s.homepage = "https://github.com/bow-swift/bow"
s.license = { :type => 'Apache License, Version 2.0', :text => <<-LICENSE
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
LICENSE
}
s.authors = "The Bow authors"

s.requires_arc = true
s.osx.deployment_target = "10.10"
s.ios.deployment_target = "8.0"
s.tvos.deployment_target = "9.1"
s.watchos.deployment_target = "2.0"
s.source = { :git => "https://github.com/bow-swift/bow.git", :tag => "#{s.version}" }
s.source_files = "Tests/BowRxGenerators/**/*.swift"
s.dependency "Bow", "~> #{s.version}"
s.dependency "BowGenerators", "~> #{s.version}"
s.dependency "BowRx", "~> #{s.version}"
s.dependency "SwiftCheck", "~> 0.12.0"
end
Loading

0 comments on commit c2e89a7

Please sign in to comment.