parse-community/Parse-SDK-iOS-OSX

Maintainers wanted

flovilmart opened this issue ยท 55 comments

Due to new work commitments I am no longer permitted to publish code to, or participate in, this SDK project. Therefore I am seeking a maintainer to take good care of it and ensure it remains up to date.

Please DM me via Twitter (@flovilmart) or respond on this issue.

The departure of @flovilmart will be a tremendous loss for this community ๐Ÿ™ Thank you for your commitment and restless support over the years ๐Ÿ‘

Let's keep this community engaged and growing as an open source alternative to all the commercial SDKs out there.

I would love to help but I don't think I really have the skill set to be of much help. Although if there is anything simple that needs doing like maintaining documentation that I can do I would be happy to.

Any help is appreciated, feel free to jump in on open issues, both in this repo and the docs one.

Iโ€™ll see what I can do ๐Ÿ™‚ thanks for all the work youโ€™ve done!

Count me in. I use Parse a lot, and Parse really needs a maintainer, it's outdate. Hope I can help.

Awesome @kennic . Feel free to get started any time. If youโ€™re unsure what it involves, feel free to ask.

Wow I haven't seen this. Thanks a lot @flovilmart for all you've done for Parse community!
I don't have the skills and knowledge to be a maintainer but i would be glad to help as much as I can

Hey @flovilmart we use parse as an important part of our ecosystem, so is very important for us the continuity of the project, I will like to know more about how we can start helping, what will be the first steps ??

@jjmaceda anything that can help the community is a good first step.

Also, perhaps modernizing the SDK, and cleanup the dependencies like Bolts. Thinking of Swift as it is the โ€˜futureโ€™.

If someone/a group of people could convert the SDK to Swift that would be awesome - I think it would encourage newer devs to participate as many learn Swift only now (myself included).

I started a swift SDK based on value types paradigms hรจre https://github.com/parse-community/Parse-Swift

Then there is the possibility to embrace graphql as there is a PR for the server that adds full support for it

Thank you @flovilmart! You will be missed! New maintainers let me know what I can do to help.

I have added @mrmarcsmith @jjmaceda @kennic to the people with write access to the repo. If you need more permissions, feel free to ping me.

@flovilmart I want to contribute this repo too. Thank you.

stale commented

This issue has been automatically marked as stale because it has not had recent activity. If you believe it should stay open, please let us know! As always, we encourage contributions, check out the Contributing Guide

@loxx123 flovilmart has retired as a core maintainer of the whole parse platform, @acinader has taken over as well as other longstanding maintainers.

If there are problems you'd like to see fixed or features that you would like to see implemented please chip-in, flovilmart retiring is a great loss to this community but there is no reason why it cannot continue successfully.

The more people who depend on and enjoy using Parse get involved the greater the benefits are for everyone.

@Tom-Fox1 awesome, thanks Tom

@loxx123 I opened this issue on this SDK because there was no committed maintainer on the project for a while, and itโ€™s state kept degrading. The situation didnโ€™t improve much as Xcode 10 and modern build system compatibility is still not fully supported. As for the rest, I do not use the project anymore on a professional basis, which makes me a very unsuited maintainer today. Now, I wish the projects all the best.

Sent with GitHawk

@mrmarcsmith @jjmaceda @kennic

any of you willing to take the lead? We could really use someone to make decisions on things like #1395.

This isn't a matter of finding the next strategic move, at the moment we need some tactical leadership.

drdaz commented

So what have we actually got to work with here? Who can contribute?

I've been developing professionally for 12 years, so I can surely be useful. I'd be happy to join in on a strategic level. I'm not sure how much hands-on development time I can muster though due to other commitments. Some though.

Do we have people here who want to code if you know what needs coding?

I think there are quite a few people who rely on this SDK and could contribute but we all face the same steep uphill learning curve for the contribution process. How about a half hour webinar orientation by someone who has been through the PR and build process to get us started? Could move from there to ranking the issues that are in most need of some love.

drdaz commented

@brianyyz What makes you say it's uphill?๏ฟฝ We should figure that out and fix it. Where is this process documented?

The builds have been broken for a long time. I was looking at it some months back, but it needed energy I wasn't able to give at that time.

@drdaz That's exactly the point - where is the process documented. If I want to dive into trying to fix an issue I first have to figure out the 10 (or whatever) steps that I should follow. If we could get that out of the way with a "Parse-SDK-IOS-OSX PR Process for Dummies" (like me) it would help get people engaged instead of having to sleuth around and figure it out. Make sense?

@drdaz @brianyyz I would say contributing.md would be a good place to start. Although itโ€™s not very detailed!

drdaz commented

@brianyyz Does that help? Or is it git PR handling generally that you're unfamiliar with?

A little of both - the questions that come up immediately are:

Fork the repo and create your branch from master. - No problem
Add unit tests for any new code you add. - Where and how are tests added?
If you've changed APIs, update the documentation. - No problem
Ensure the test suite passes. - No idea
Make sure your code lints. - No idea on how - i understand the concepts and use it in Visual Studio Code

Should we start a new thread for this?

I'm happy to be the "dummy" for this and get something written down - I really believe it is an impediment to getting people engaged. I never had to dig into it because @flovilmart made it all so easy for us.

@brianyyz perhaps opening a new issue would be a good idea, we can work out the problems and then improve the CONTRIBUTING doc

drdaz commented

Where and how are tests added?

In each Xcode project (except ParseUI) there is a folder / group called Tests/Unit. I'd guess that's where the unit tests go :)

But it's the workspace you should be opening when developing.

Make sure your code lints.

It does say that. But a little later on it also says:

We're still working on providing a code style for your IDE and getting a linter on GitHub, but for now try to keep the following:

Most importantly, match the existing code style as much as possible.
Try to keep lines under 120 characters, if possible.

Does anybody know if we actually got an explicit coding style (even just documented) or linter in the time since that document was written in 2015?

EDIT: I'm guessing we didn't, since I'm guessing it would be part of the circleci build process.

Discussion continued in #1422.

I would love to contribute/help on parse sdk development on a regular basis ๐Ÿ™‚

@rico237 that's great, we're looking to add some more committers to the iOS team so I'll pass this on to the rest of the core team

I do not have time to be part of the core team but I will definitely provide PR to help.

@funkenstrahlen We would love to have you involved! Please contribute as little or as much as you feel willing/able to and let us know if there is anything we can do to help.

There are plenty of existing issues and a few pull requests so feel free to jump in with a review or some guidance etc.

I think I'd like to start helping with this as well.

I have time and ready to be core team and I'm glad to keeping Parse alive. I have the experience to develop SDKs for Real-time messaging service, Push Notification and API design.
@flovilmart

@Husseinhj Great to hear, feel free to jump in on existing issues and PRs or submit new PRs. Weโ€™ll add you to the team as soon as itโ€™s appropriate.

I've been using Parse SDK for a few years now. Both for android & iOS. I'd love to be a contributor. I love Parse server & find it more convenient to use than Firebase & other back end frameworks. It's truly the perfect platform for a startup to get things up & running fast.

I'm sure there would be a lot for me to learn but I am willing to be a part of the team for the long term vision :)

is there any spot available for becoming a contributor, I want to get into the team as contributor

@salubhayo Absolutely ๐Ÿ˜€, we loosely follow a meritocratic model (see our governance info), so feel free to jump in on issues and submit PRs and weโ€™ll get you added to the team once we feel itโ€™s appropriate.

As an update on this we do now have @drdaz and @noobs2ninjas who are helping out, doing some much needed maintenance.

However, we still could really do with some more help from those who are able to. Alternatively contributing to our Open Collective does help but with this SDK we particularly need some people who can get stuck in - even if it's only for half an hour a week!

For those who expressed an interest in helping out with the Swift SDK it's a good time to get involved as the project is starting to become active again.

@TomWFox
Are there any plans to start this (timing and tasks)?

@Husseinhj sorry, I donโ€™t understand your question, can you rephrase it?

@TomWFox sorry
Do we have any priority for which task should be working on?

Got it, good question, I'm not sure. @cbaker6 maybe you could create a new issue with a list of TODOs - or we could create a project board.

@TomWFox I think the current project board is a good start. Are you able to move "Support for Keychain / secure storage" to "Done"? The rest of the items still need to be worked on.

I'll work on the TODO list, but for now people @Husseinhj and those interested should look at the discussion on what can be worked on here, read to the end of the thread.

How to use/test the current framework is described link below. You can setup a local parse-server and create objects and users by using the Swift Playground Files

Link to how to use the framework: parse-community/Parse-Swift#12 (comment)

Just for clarity for anyone who hasn't read through the entire thread @cbaker6 linked, I'm currently working on:

  • Renaming stuff to bring it in line with modern Swift conventions. I'm also moving some files around so the directory structure is a little cleaner, files are more compact, etc.
  • A simple key-value store to save the current user and installation in the Keychain.

I hope to have a PR up around Friday or Saturday, but feel free to pick up anything else in the meantime!

Those of you looking to help out on the Swift SDK, I added an initial list of Testcases that can be ported parse-community/Parse-Swift#16

iOS devs,

Parse-Swift had itโ€™s first release (the day Flo closed this issue) and is currently on version 2.0.1.

If you are interested, the easiest way to give Parse-Swift a test drive is to fork the repo and run the ParseSwift.playground in your simulator. ParseSwift.playground Is meant to be a tutorial showing how to use the Parse features you are familiar with. The ParseSwift SDK is not a port of the Parse-SDK-iOS-OSX SDK and though some of it may feel familiar, it is not backwards compatible and is designed with a new philosophy (see more here).

To learn how to setup your local machine and server to work with PareSwift, see here. Also check the API documentation.

What you get with ParseSwift:

  • Modern Swift SDK with zero dependencies. This SDK only depends on the OS. Meaning you never have to wait on the SDK to update or downgrade dependencies such as Bolts, Facebook, Twitter, etc. The developer choses what versions of dependencies is suitable for their applications, not the Swift SDK
  • Works with iOS 13+, macOS 10.15+, watchOS 6+, tvOS 13+, and Linux/Android/Windows (Swift 5.3+). Reuse the same code across multiple OSโ€™s. More about ParseSwift compatibility here
  • The Swift SDK can be used on the client and the server for CloudCode
  • An intuitive API thatโ€™s simple and easy to use, allowing developers to design in terms of Swift instead of Parse. When comparing to any of the other Parse SDKs (or even Firebase or Apollo), the Swift SDK is less clunky than all of those
  • Supports Swift Package Manager making it easier to add to your projects and upgrade to newer versions
  • LiveQuery is part of Parse-Swift, currently not supported on Linux
  • Any query can be used as a LiveQuery automatically, any limitation on queries are from server, not the SDK unlike the Objective-C SDK
  • LiveQuery subscriptions, connections, reconnections are significantly improved
  • Publishers using Combine for all methods, including LiveQuery Subscriptions
  • ParseObjects and other Parse types are struct instead of class. This not only aligns with the swift design, but gives you compiler level checking, less prone to threading bugs, and a faster and improved encoding/decoding in most cases
  • ParseObjects can be used as models out-of-the-box in MVVM for SwiftUI
  • Queryโ€™s, LiveQuery subscriptions, and Cloud code functions have view models out-of-the-box in MVVM for SwiftUI
  • async/await for all methods, requires Swift >= 5.5
  • Caching via the OS allows the developer to change caching behavior using Apple's native methods
  • All of the latest querying/fetching features the Parse-Server has to offer (on-par with the JS SDK). See here for all.
  • Supports certificate pinning for parse server and live query server connections, delegates decisions to developer
  • Idempotency enabled by default (needs to be enabled server-side to use)
  • Anonymous, PFFacebookUtils and PFTwitterUtils equivalents are ParseFacebook and ParseTwitter. There are also ParseApple and ParseLDAP. Adding support for authentication methods is straight-forward and I encourage you to make a contribution by following this thread.
  • Much more...

Parse-Swift is almost at feature parity with Parse-SDK-iOS-OSX. Some features currently not available:

  • No direct support for local storage. ParseUser.current, ParseInstallation.current, ParseConfig.current, and default ACL, are persisted in the Keychain automatically. If devs want to store other objects, they have to manage this storage on their own. This means no saveEventually, etc. If you donโ€™t need local storage or are already managing a custom local storage, this should be no problem. See suggestions about Swift SDK local storage here
  • No ParseUI. The Swift SDK is designed to work easily with SwiftUI allowing developers to create their own UI quickly based on ParseObjectโ€˜s

You can see the status on future features here.