From 0fb066e485249d5c071a9d40df5821b968db6aba Mon Sep 17 00:00:00 2001 From: Tom Fox Date: Sat, 9 Mar 2019 10:36:36 +0000 Subject: [PATCH 01/16] start ios usage guide how to initialize --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 4afaabdde..f2df57893 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,9 @@ # Parse-Swift [EXPERIMENTAL] Parse pure Swift SDK + +## iOS Usage Guide + +To use ParseSwift first `import ParseSwift` in your AppDelegate and then add the following code in your `didFinishLaunchingWithOptions`: +```swift +ParseSwift.initialize(applicationId: "xxxxxxxxx", clientKey: "xxxxxxxxx", serverURL: URL(string: "https://example.com")!) +``` From 43bb5c5f1dabd07700215eb4b7e1809c505a9823 Mon Sep 17 00:00:00 2001 From: Tom Fox Date: Sat, 9 Mar 2019 10:44:51 +0000 Subject: [PATCH 02/16] improve wording --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f2df57893..7ee7be3fc 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Parse-Swift [EXPERIMENTAL] Parse pure Swift SDK -## iOS Usage Guide +## iOS Usage Guide -To use ParseSwift first `import ParseSwift` in your AppDelegate and then add the following code in your `didFinishLaunchingWithOptions`: +After installing ParseSwift, to use it first `import ParseSwift` in your AppDelegate and then add the following code in your `didFinishLaunchingWithOptions`: ```swift -ParseSwift.initialize(applicationId: "xxxxxxxxx", clientKey: "xxxxxxxxx", serverURL: URL(string: "https://example.com")!) +ParseSwift.initialize(applicationId: "xxxxxxxxxx", clientKey: "xxxxxxxxxx", serverURL: URL(string: "https://example.com")!) ``` From 66358f451c12d5ec1a5f75bee07fb11fdc1aa869 Mon Sep 17 00:00:00 2001 From: Tom Fox Date: Sat, 9 Mar 2019 11:24:14 +0000 Subject: [PATCH 03/16] improvements --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7ee7be3fc..2a573d7bd 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ## iOS Usage Guide -After installing ParseSwift, to use it first `import ParseSwift` in your AppDelegate and then add the following code in your `didFinishLaunchingWithOptions`: +After installing ParseSwift, to use it first `import ParseSwift` in your AppDelegate.swift and then add the following code in your `application:didFinishLaunchingWithOptions:` method: ```swift ParseSwift.initialize(applicationId: "xxxxxxxxxx", clientKey: "xxxxxxxxxx", serverURL: URL(string: "https://example.com")!) ``` From 6ff5dbcf8f026f36596da111f2c2d25a4c6509bd Mon Sep 17 00:00:00 2001 From: Tom Fox <13188249+TomWFox@users.noreply.github.com> Date: Sun, 19 Jul 2020 15:40:50 +0100 Subject: [PATCH 04/16] add installation info --- README.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/README.md b/README.md index 2a573d7bd..520a7b6e1 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,48 @@ # Parse-Swift [EXPERIMENTAL] Parse pure Swift SDK +## Installation + +As there are currently no releases of the ParseSwift SDK you will need to specify either a branch or a specific commit with your chosen package manager. The `master` branch may be unstable and there may be breaking changes. + +### [Swift Package Manager](https://swift.org/package-manager/) + +You can use The Swift Package Manager to install ParseSwift by adding the following description to your `Package.swift` file: + +```swift +// swift-tools-version:5.0 +import PackageDescription + +let package = Package( + name: "YOUR_PROJECT_NAME", + dependencies: [ + .package(url: "https://github.com/parse-community/Parse-Swift.git", .branch("master")"), + ] +) +``` +Then run `swift build`. + +### [CocoaPods](https://cocoapods.org) + +Add the following line to your Podfile: +```ruby +pod 'ParseSwift', :git => 'https://github.com/parse-community/Parse-Swift', :branch => 'master' +``` + +Run `pod install`, and you should now have the latest version from the master branch. Please be aware that as this SDK is still in development there may be issues with master. + +### [Carthage](https://github.com/carthage/carthage) + +Add the following line to your Cartfile: +``` +github "parse-community/Parse-Swift" "master" +``` +Run `carthage update`, and you should now have the latest version of ParseSwift SDK in your Carthage folder. + ## iOS Usage Guide After installing ParseSwift, to use it first `import ParseSwift` in your AppDelegate.swift and then add the following code in your `application:didFinishLaunchingWithOptions:` method: ```swift ParseSwift.initialize(applicationId: "xxxxxxxxxx", clientKey: "xxxxxxxxxx", serverURL: URL(string: "https://example.com")!) ``` +Please chechout the [Swift Playground]() for more usage information. From e97066a6ce8a8f66bc40aab509aa476fcfbf76a9 Mon Sep 17 00:00:00 2001 From: Tom Fox <13188249+TomWFox@users.noreply.github.com> Date: Sun, 19 Jul 2020 15:58:32 +0100 Subject: [PATCH 05/16] change copyright notice --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 155759de5..174bd295f 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2017 Parse +Copyright (c) 2020 Parse Community Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 85bc301d16f29abc0bbd0f1ebb4ddedb9e1e76f9 Mon Sep 17 00:00:00 2001 From: Tom Fox <13188249+TomWFox@users.noreply.github.com> Date: Sun, 19 Jul 2020 16:21:33 +0100 Subject: [PATCH 06/16] Create CONTRIBUTING.md --- CONTRIBUTING.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..454c7711f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,22 @@ +# Contributing to the ParseSwift SDK + +We really want the ParseSwift SDK to be yours, to see it grow and thrive in the open source community. + +If you are not familiar with Pull Requests and want to know more about them, you can visit the [Creating a pull request](https://help.github.com/articles/creating-a-pull-request/) article. It contains detailed information about the process. + +## Setting up your local machine + +* [Fork](https://github.com/parse-community/Parse-Swift) this project and clone the fork on to your local machine: + +```sh +$ git clone https://github.com/parse-community/Parse-Swift +$ cd Parse-Swift # go into the clone directory +``` + +## Good to know + +* The `lib/` folder is not commited, so never make changes in there. +* Always make changes to files in the `src/` folder. +* All the tests should point to sources in the `lib/` folder. + +## Troubleshooting From 20c0f4f3efcd8be6a058ce954a043c1756c15f9c Mon Sep 17 00:00:00 2001 From: Tom Fox <13188249+TomWFox@users.noreply.github.com> Date: Sun, 19 Jul 2020 16:31:29 +0100 Subject: [PATCH 07/16] code of conduct --- CONTRIBUTING.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 454c7711f..2084951c8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,3 +20,7 @@ $ cd Parse-Swift # go into the clone directory * All the tests should point to sources in the `lib/` folder. ## Troubleshooting + +### Code of Conduct + +This project adheres to the [Contributor Covenant Code of Conduct](https://github.com/parse-community/.github/blob/master/CODE_OF_CONDUCT.md). By participating, you are expected to honor this code. From 7d77109ade1fb25cfb9634c58f01b94a4024a1dd Mon Sep 17 00:00:00 2001 From: Tom Fox <13188249+TomWFox@users.noreply.github.com> Date: Sun, 19 Jul 2020 16:31:41 +0100 Subject: [PATCH 08/16] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2084951c8..2044e7305 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,6 +21,6 @@ $ cd Parse-Swift # go into the clone directory ## Troubleshooting -### Code of Conduct +## Code of Conduct This project adheres to the [Contributor Covenant Code of Conduct](https://github.com/parse-community/.github/blob/master/CODE_OF_CONDUCT.md). By participating, you are expected to honor this code. From 1fc4cfd91c878032a3185820d0c798778bd5784a Mon Sep 17 00:00:00 2001 From: Tom Fox <13188249+TomWFox@users.noreply.github.com> Date: Sun, 19 Jul 2020 17:25:00 +0100 Subject: [PATCH 09/16] add links to useful info --- CONTRIBUTING.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2044e7305..06cf62170 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,13 +13,11 @@ $ git clone https://github.com/parse-community/Parse-Swift $ cd Parse-Swift # go into the clone directory ``` -## Good to know +Please see [this comment](https://github.com/parse-community/Parse-Swift/pull/12#issuecomment-656918156) for details on developing with and testing the SDK. -* The `lib/` folder is not commited, so never make changes in there. -* Always make changes to files in the `src/` folder. -* All the tests should point to sources in the `lib/` folder. +## Evolution -## Troubleshooting +This SDK is still in it's early phases. It's not intended as a port of the Parse Objective-c SDK and has many new philosophies. Please see [this thread](https://github.com/parse-community/Parse-Swift/issues/3) for a detailed discussion about the intended evolution of this SDK. ## Code of Conduct From e2ec60d83491519bef3db8f206efcdc615365e94 Mon Sep 17 00:00:00 2001 From: Tom Fox <13188249+TomWFox@users.noreply.github.com> Date: Sun, 19 Jul 2020 17:34:21 +0100 Subject: [PATCH 10/16] new readme header --- README.md | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 520a7b6e1..b4c052e6b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,30 @@ -# Parse-Swift -[EXPERIMENTAL] Parse pure Swift SDK +

+ Parse Platform + +

+ +

ParseSwift

+ +

+ An experimental pure Swift library that gives you access to the powerful Parse Server backend from your swift applications. +

+ +

+ Follow on Twitter + License + Podspec + Backers on Open Collective + Sponsors on Open Collective +

+ +

+ Dependencies + Build status + Join the conversation +

+
+ +For more information about the Parse Platform and its features, see the public [documentation][docs]. ## Installation @@ -46,3 +71,5 @@ After installing ParseSwift, to use it first `import ParseSwift` in your AppDele ParseSwift.initialize(applicationId: "xxxxxxxxxx", clientKey: "xxxxxxxxxx", serverURL: URL(string: "https://example.com")!) ``` Please chechout the [Swift Playground]() for more usage information. + +[docs]: http://docs.parseplatform.org/ios/guide/ From 4e06908b94ec91a1bcd4b39e98863ddfe134e2cd Mon Sep 17 00:00:00 2001 From: Tom Fox <13188249+TomWFox@users.noreply.github.com> Date: Sun, 19 Jul 2020 17:38:21 +0100 Subject: [PATCH 11/16] add logo --- logo large.png | Bin 0 -> 28270 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 logo large.png diff --git a/logo large.png b/logo large.png new file mode 100644 index 0000000000000000000000000000000000000000..16c5c8d5ac7490136044ddb9a747756a3c40b1e1 GIT binary patch literal 28270 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 gNGXso8Ojqc Date: Sun, 19 Jul 2020 17:39:41 +0100 Subject: [PATCH 12/16] logo link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b4c052e6b..ae99cdf25 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- Parse Platform + Parse Platform

From c4c43437999c485ee822f8528fb20d59a7602446 Mon Sep 17 00:00:00 2001 From: Tom Fox <13188249+TomWFox@users.noreply.github.com> Date: Sun, 19 Jul 2020 17:40:19 +0100 Subject: [PATCH 13/16] remove cocoa pod link --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index ae99cdf25..dc9edd9d2 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,6 @@

Follow on Twitter License - Podspec Backers on Open Collective Sponsors on Open Collective

From 3f05abddf2258b54674b2f0bb9cbf5121cb720b0 Mon Sep 17 00:00:00 2001 From: Tom Fox <13188249+TomWFox@users.noreply.github.com> Date: Sun, 19 Jul 2020 17:42:35 +0100 Subject: [PATCH 14/16] license & playground link --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index dc9edd9d2..52548eed9 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@

Follow on Twitter - License + License Backers on Open Collective Sponsors on Open Collective

@@ -69,6 +69,6 @@ After installing ParseSwift, to use it first `import ParseSwift` in your AppDele ```swift ParseSwift.initialize(applicationId: "xxxxxxxxxx", clientKey: "xxxxxxxxxx", serverURL: URL(string: "https://example.com")!) ``` -Please chechout the [Swift Playground]() for more usage information. +Please chechout the [Swift Playground](https://github.com/parse-community/Parse-Swift/tree/master/ParseSwift.playground) for more usage information. [docs]: http://docs.parseplatform.org/ios/guide/ From 3a40d0d5c4e6eb1ac2268664e752b4a6ebe31743 Mon Sep 17 00:00:00 2001 From: Tom Fox <13188249+TomWFox@users.noreply.github.com> Date: Sun, 19 Jul 2020 23:51:18 +0100 Subject: [PATCH 15/16] add swift lint install note --- CONTRIBUTING.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 06cf62170..755b60589 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,7 +13,13 @@ $ git clone https://github.com/parse-community/Parse-Swift $ cd Parse-Swift # go into the clone directory ``` -Please see [this comment](https://github.com/parse-community/Parse-Swift/pull/12#issuecomment-656918156) for details on developing with and testing the SDK. +* Please install [SwiftLint](https://github.com/realm/SwiftLint) to ensure that your PR conforms to our coding standards: + +```sh +$ brew install swiftlint +``` + +* Please see [this comment](https://github.com/parse-community/Parse-Swift/pull/12#issuecomment-656918156) for details on developing with and testing the SDK. ## Evolution From 4b592e6daab56c2201ef60e8ae0bf733c5c0ca33 Mon Sep 17 00:00:00 2001 From: Tom Fox <13188249+TomWFox@users.noreply.github.com> Date: Sun, 19 Jul 2020 23:52:31 +0100 Subject: [PATCH 16/16] capitalise Swift --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 88418e9d1..5ffec655b 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@

ParseSwift

- An experimental pure Swift library that gives you access to the powerful Parse Server backend from your swift applications. + An experimental pure Swift library that gives you access to the powerful Parse Server backend from your Swift applications.

@@ -71,4 +71,4 @@ ParseSwift.initialize(applicationId: "xxxxxxxxxx", clientKey: "xxxxxxxxxx", serv ``` Please chechout the [Swift Playground](https://github.com/parse-community/Parse-Swift/tree/master/ParseSwift.playground) for more usage information. -[docs]: http://docs.parseplatform.org/ios/guide/ \ No newline at end of file +[docs]: http://docs.parseplatform.org/ios/guide/