Skip to content

Commit 53f7cb3

Browse files
authored
Version 1.0.0 - Bump of RxSwift dependency to 6.x.x (currently 6.9.0), bump minimum iOS requirement to iOS 15 (#26)
* Bump minimum iOS version requirement to iOS 15. Bump RxSwift dependency version to 6.9.0 * Bump iOS version in cocoapods * Fix tests in CI * Lock in the RxSwift dependency to 6.x.x * Fixing CI * Version 1.0.0 * Update readme
1 parent e305157 commit 53f7cb3

File tree

18 files changed

+202
-19
lines changed

18 files changed

+202
-19
lines changed

.github/workflows/iOS.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
-workspace RIBs.xcworkspace \
3030
-scheme RIBs-Example \
3131
-sdk iphonesimulator \
32-
-destination 'platform=iOS Simulator,name=iPhone 16,OS=18.2' \
32+
-destination 'platform=iOS Simulator,name=iPhone 16' \
3333
-enableCodeCoverage YES \
3434
clean test
3535

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,3 +136,8 @@
136136
* Increase buffer capacity for mutableRouterEvents flow within RibEvents by @RahulDMello in https://github.com/uber/RIBs/pull/635
137137
* Add test asserting Rx subscription is disposed after `RibCoroutineWor… by @psteiger in https://github.com/uber/RIBs/pull/628
138138

139+
### Version 1.0.0
140+
141+
* Bumps RxSwift dependency version to 6.x.x (6.9.0 at the time of the release) by @alexvbush
142+
* Adds Swift Package Manager (SPM) setup by @alexvbush
143+
* Improves CocoaPods and Carthage setup by @alexvbush

Example/.ruby-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.1.0

Example/Gemfile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# frozen_string_literal: true
2+
3+
source "https://rubygems.org"
4+
5+
gem 'cocoapods'

Example/Gemfile.lock

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
GEM
2+
remote: https://rubygems.org/
3+
specs:
4+
CFPropertyList (3.0.7)
5+
base64
6+
nkf
7+
rexml
8+
activesupport (7.2.2.2)
9+
base64
10+
benchmark (>= 0.3)
11+
bigdecimal
12+
concurrent-ruby (~> 1.0, >= 1.3.1)
13+
connection_pool (>= 2.2.5)
14+
drb
15+
i18n (>= 1.6, < 2)
16+
logger (>= 1.4.2)
17+
minitest (>= 5.1)
18+
securerandom (>= 0.3)
19+
tzinfo (~> 2.0, >= 2.0.5)
20+
addressable (2.8.7)
21+
public_suffix (>= 2.0.2, < 7.0)
22+
algoliasearch (1.27.5)
23+
httpclient (~> 2.8, >= 2.8.3)
24+
json (>= 1.5.1)
25+
atomos (0.1.3)
26+
base64 (0.3.0)
27+
benchmark (0.4.1)
28+
bigdecimal (3.2.2)
29+
claide (1.1.0)
30+
cocoapods (1.16.2)
31+
addressable (~> 2.8)
32+
claide (>= 1.0.2, < 2.0)
33+
cocoapods-core (= 1.16.2)
34+
cocoapods-deintegrate (>= 1.0.3, < 2.0)
35+
cocoapods-downloader (>= 2.1, < 3.0)
36+
cocoapods-plugins (>= 1.0.0, < 2.0)
37+
cocoapods-search (>= 1.0.0, < 2.0)
38+
cocoapods-trunk (>= 1.6.0, < 2.0)
39+
cocoapods-try (>= 1.1.0, < 2.0)
40+
colored2 (~> 3.1)
41+
escape (~> 0.0.4)
42+
fourflusher (>= 2.3.0, < 3.0)
43+
gh_inspector (~> 1.0)
44+
molinillo (~> 0.8.0)
45+
nap (~> 1.0)
46+
ruby-macho (>= 2.3.0, < 3.0)
47+
xcodeproj (>= 1.27.0, < 2.0)
48+
cocoapods-core (1.16.2)
49+
activesupport (>= 5.0, < 8)
50+
addressable (~> 2.8)
51+
algoliasearch (~> 1.0)
52+
concurrent-ruby (~> 1.1)
53+
fuzzy_match (~> 2.0.4)
54+
nap (~> 1.0)
55+
netrc (~> 0.11)
56+
public_suffix (~> 4.0)
57+
typhoeus (~> 1.0)
58+
cocoapods-deintegrate (1.0.5)
59+
cocoapods-downloader (2.1)
60+
cocoapods-plugins (1.0.0)
61+
nap
62+
cocoapods-search (1.0.1)
63+
cocoapods-trunk (1.6.0)
64+
nap (>= 0.8, < 2.0)
65+
netrc (~> 0.11)
66+
cocoapods-try (1.2.0)
67+
colored2 (3.1.2)
68+
concurrent-ruby (1.3.5)
69+
connection_pool (2.5.3)
70+
drb (2.2.3)
71+
escape (0.0.4)
72+
ethon (0.15.0)
73+
ffi (>= 1.15.0)
74+
ffi (1.17.2)
75+
ffi (1.17.2-arm64-darwin)
76+
ffi (1.17.2-x86_64-darwin)
77+
fourflusher (2.3.1)
78+
fuzzy_match (2.0.4)
79+
gh_inspector (1.1.3)
80+
httpclient (2.9.0)
81+
mutex_m
82+
i18n (1.14.7)
83+
concurrent-ruby (~> 1.0)
84+
json (2.13.2)
85+
logger (1.7.0)
86+
minitest (5.25.5)
87+
molinillo (0.8.0)
88+
mutex_m (0.3.0)
89+
nanaimo (0.4.0)
90+
nap (1.1.0)
91+
netrc (0.11.0)
92+
nkf (0.2.0)
93+
public_suffix (4.0.7)
94+
rexml (3.4.2)
95+
ruby-macho (2.5.1)
96+
securerandom (0.4.1)
97+
typhoeus (1.5.0)
98+
ethon (>= 0.9.0, < 0.16.0)
99+
tzinfo (2.0.6)
100+
concurrent-ruby (~> 1.0)
101+
xcodeproj (1.27.0)
102+
CFPropertyList (>= 2.3.3, < 4.0)
103+
atomos (~> 0.1.3)
104+
claide (>= 1.0.2, < 2.0)
105+
colored2 (~> 3.1)
106+
nanaimo (~> 0.4.0)
107+
rexml (>= 3.3.6, < 4.0)
108+
109+
PLATFORMS
110+
arm64-darwin
111+
ruby
112+
x86_64-darwin
113+
114+
DEPENDENCIES
115+
cocoapods
116+
117+
BUNDLED WITH
118+
2.6.9

Example/Podfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use_frameworks!
22

3-
platform :ios, '10.0'
3+
platform :ios, '15.0'
44

55
target 'RIBs_Example' do
66
pod 'RIBs', :path => '../', :testspecs => ['Tests']

Example/RIBs.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; };
1313
607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; };
1414
607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; };
15+
7EAB71912E635DC2003F72CC /* Podfile in Resources */ = {isa = PBXBuildFile; fileRef = 7EAB71902E635DC2003F72CC /* Podfile */; };
1516
F72111BE3D6D8AF7B540B2D5 /* Pods_RIBs_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 904C7089FA30546DB519E5B6 /* Pods_RIBs_Example.framework */; };
1617
/* End PBXBuildFile section */
1718

@@ -26,6 +27,7 @@
2627
607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
2728
607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
2829
79412201A539E9C0ACDDCA67 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = "<group>"; };
30+
7EAB71902E635DC2003F72CC /* Podfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Podfile; sourceTree = "<group>"; };
2931
8352C4F16B235B2430F102DC /* Pods-RIBs_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RIBs_Example.release.xcconfig"; path = "Target Support Files/Pods-RIBs_Example/Pods-RIBs_Example.release.xcconfig"; sourceTree = "<group>"; };
3032
84C807AE5AA5710BFA3EE5FC /* Pods-RIBs_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RIBs_Tests.release.xcconfig"; path = "Target Support Files/Pods-RIBs_Tests/Pods-RIBs_Tests.release.xcconfig"; sourceTree = "<group>"; };
3133
904C7089FA30546DB519E5B6 /* Pods_RIBs_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RIBs_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -49,6 +51,7 @@
4951
607FACC71AFB9204008FA782 = {
5052
isa = PBXGroup;
5153
children = (
54+
7EAB71902E635DC2003F72CC /* Podfile */,
5255
607FACF51AFB993E008FA782 /* Podspec Metadata */,
5356
607FACD21AFB9204008FA782 /* Example for RIBs */,
5457
607FACD11AFB9204008FA782 /* Products */,
@@ -181,6 +184,7 @@
181184
files = (
182185
607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */,
183186
607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */,
187+
7EAB71912E635DC2003F72CC /* Podfile in Resources */,
184188
607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */,
185189
);
186190
runOnlyForDeploymentPostprocessing = 0;
@@ -373,6 +377,7 @@
373377
buildSettings = {
374378
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
375379
INFOPLIST_FILE = RIBs/Info.plist;
380+
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
376381
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
377382
MODULE_NAME = ExampleApp;
378383
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)";
@@ -388,6 +393,7 @@
388393
buildSettings = {
389394
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
390395
INFOPLIST_FILE = RIBs/Info.plist;
396+
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
391397
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
392398
MODULE_NAME = ExampleApp;
393399
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)";

Package.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
1-
// swift-tools-version:5.1
1+
// swift-tools-version:5.5
22
import PackageDescription
33

44
let package = Package(
55
name: "RIBs",
66
platforms: [
7-
.iOS(.v9),
7+
.iOS("15.0"),
88
],
99
products: [
1010
.library(name: "RIBs", targets: ["RIBs"]),
1111
],
1212
dependencies: [
13-
.package(url: "https://github.com/ReactiveX/RxSwift", from: "6.5.0"),
13+
.package(url: "https://github.com/ReactiveX/RxSwift", "6.9.0"..<"7.0.0"),
1414
.package(url: "https://github.com/mattgallagher/CwlPreconditionTesting.git", from: "2.2.2"), // for testTarget only
1515
],
1616
targets: [
1717
.target(
1818
name: "RIBs",
19-
dependencies: ["RxSwift", "RxRelay"],
19+
dependencies: [
20+
.product(name: "RxSwift", package: "RxSwift"),
21+
.product(name: "RxRelay", package: "RxSwift")
22+
],
2023
path: "RIBs"
2124
),
2225
.testTarget(

README.md

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,25 +45,58 @@ There are some other novel things about RIBs. However, these could also be imple
4545
For usage of the tooling built around RIBs, please see the [Tooling section](https://github.com/uber/RIBs/wiki#rib-tooling) in our documentation.
4646

4747
## Installation for iOS
48-
#### CocoaPods
48+
49+
### Swift Package Manager (Recommended)
50+
51+
To integrate RIBs into your project using Swift Package Manager:
52+
53+
1. In Xcode, go to **File****Add Package Dependencies**
54+
2. Enter the repository URL: `https://github.com/uber/RIBs-iOS.git`
55+
3. Select the version constraint: `~> 1.0`
56+
4. Click **Add Package**
57+
58+
Alternatively, you can add it to your `Package.swift`:
59+
60+
```swift
61+
dependencies: [
62+
.package(url: "https://github.com/uber/RIBs-iOS.git", from: "1.0.0")
63+
]
64+
```
65+
66+
### CocoaPods
4967

5068
To integrate RIBs into your project add the following to your `Podfile`:
5169

5270
```ruby
53-
pod 'RIBs', '~> 0.9'
71+
pod 'RIBs', '~> 1.0'
5472
```
5573

56-
#### Carthage
74+
### Carthage
5775

5876
To integrate RIBs into your project using Carthage add the following to your `Cartfile`:
5977

6078
```ruby
61-
github "uber/RIBs" ~> 0.9
79+
github "uber/RIBs" ~> 1.0
6280
```
6381

82+
## Dependencies
83+
84+
When you integrate RIBs into your project, it will automatically bring the following dependencies:
85+
86+
### Core Dependencies
87+
- **RxSwift** (~> 6.0) - Reactive programming library for Swift
88+
- **RxRelay** (~> 6.0) - Reactive relays for state management
89+
90+
### Platform Requirements
91+
- **iOS 15.0+** - Minimum deployment target
92+
- **Swift 5.0+** - Required Swift version
93+
94+
These dependencies are automatically managed by your chosen package manager and will be resolved to compatible versions.
95+
6496
## Related projects
6597

6698
If you like RIBs, check out other related open source projects from our team:
99+
- [RIBs-Android](https://github.com/uber/RIBs): Android version of RIBs framework implementation
67100
- [Needle](https://github.com/uber/needle): a compile-time safe Swift dependency injection framework.
68101
- [Motif](https://github.com/uber/motif): An abstract on top of Dagger offering simpler APIs for nested scopes.
69102
- [Swift Concurrency](https://github.com/uber/swift-concurrency): a set of concurrency utility classes used by Uber, inspired by the equivalent [java.util.concurrent](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/package-summary.html) package classes.

RIBs.podspec

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
Pod::Spec.new do |s|
22
s.name = 'RIBs'
3-
s.version = '0.9.3'
3+
s.version = '1.0.0'
44
s.summary = 'Uber\'s cross-platform mobile architecture.'
55
s.description = <<-DESC
66
RIBs is the cross-platform architecture behind many mobile apps at Uber. This architecture framework is designed for mobile apps with a large number of engineers and nested states.
77
DESC
88
s.homepage = 'https://github.com/uber/RIBs-iOS'
99
s.license = { :type => 'Apache License, Version 2.0', :file => 'LICENSE.txt' }
1010
s.author = { 'uber' => '[email protected]' }
11-
s.source = { :git => 'https://github.com/uber/RIBs-iOS.git', :tag => 'v' + s.version.to_s }
12-
s.ios.deployment_target = '9.0'
11+
s.source = { :git => 'https://github.com/uber/RIBs-iOS.git', :tag => s.version.to_s }
12+
s.ios.deployment_target = '15.0'
1313
s.swift_version = '5.0'
1414
s.source_files = 'RIBs/Classes/**/*'
15-
s.dependency 'RxSwift', '~> 6.5.0'
16-
s.dependency 'RxRelay', '~> 6.5.0'
17-
15+
s.dependency 'RxSwift', '~> 6.0'
16+
s.dependency 'RxRelay', '~> 6.0'
17+
1818
s.test_spec 'Tests' do |test_spec|
1919
test_spec.source_files = 'RIBsTests/**/*.swift'
2020
test_spec.dependency 'CwlPreconditionTesting'

0 commit comments

Comments
 (0)