Skip to content

Conversation

morganchen12
Copy link
Contributor

The ultimate goal of this pull request is to make FirebaseUI more familiar for new contributors who are already used to the iOS OSS landscape. Ideally, any developer should be able to fork the repo and make changes with confidence that the unit tests will tell them if their changes have broken anything.

The first step of that is to have tests.

@morganchen12 morganchen12 force-pushed the build-issues branch 2 times, most recently from 96b64f4 to 86e06ee Compare August 8, 2016 21:03

/* Begin PBXShellScriptBuildPhase section */
072ABD579ED6CE7C8FC98658 /* 📦 Check Pods Manifest.lock */ = {
072ABD579ED6CE7C8FC98658 /* [CP] Check Pods Manifest.lock */ = {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deintegrate

Copy link
Member

@ulukaya ulukaya Aug 10, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pod-deintegrate doesn't delete those. You can simply delete those 3 build phases in xcode.

@ianbarber
Copy link
Contributor

General CL looks good - definitely add a small changes/migration list, and any updates to docs.

One thing that occurs to me is that the fakes you made for the database primitives may be generally useful for developers. It might be worth considering cleaning them up and moving into a separate subproject so that people can use them in their own tests.

@morganchen12
Copy link
Contributor Author

@ianbarber this PR now includes tests for basically all of databaseUI, which imo is good enough to merge and try to get CI up and running. Take a look at this when you can and I'll eventually put together a comprehensive changelist before merging.

Thanks!

@morganchen12 morganchen12 changed the title [WIP] Road to green CI DatabaseUI Tests: Road to green CI Aug 10, 2016
@morganchen12
Copy link
Contributor Author

Changelog:

FirebaseUI Changes

  • FIRFacebookAuthUI scopes became readonly
  • FIRFacebookAuthUI initializers no longer return optionals
  • FIRGoogleAuthUI initializers no longer return optionals
  • FIRGoogleAuthUI: Added designated initializer which takes an array of scopes along with client ID
  • FIRGoogleAuthUI: Updated default scopes to use full G+ profile and email scope URLs
  • FIRGoogleAuthUI: Made scopes property readonly
  • FIRAuthUI: authUI method was renamed to defaultAuthUI
  • FirebaseArray: delegate property is now nullable
  • FirebaseArray: initWithQuery: parameter must be nonnull
  • FirebaseArrayDelegate: methods renamed to take callee as first parameter, following platform conventions
    • childAdded:atIndex: renamed to array:didAddObject:atIndex:
    • childChanged:atIndex: renamed to array:didChangeObject:atIndex:
    • childRemoved:atIndex: renamed to array:didRemoveObject:atIndex:
    • childMoved:fromIndex:toIndex: renamed to array:didMoveObject:fromIndex:toIndex:
    • cancelledWithError: renamed to array:queryCancelledWithError:
  • FirebaseCollectionViewDataSource: added null_resettable to cellClass and modelClass
  • FirebaseCollectionViewDataSource: made populateCell readonly
  • FirebaseTableViewDataSource: added null_resettable to modelClass
  • FirebaseTableViewDataSource: made populateCell readonly
  • FirebaseDataSource: made initWithArray: designated initializer

This only includes breaking and non-breaking API changes, not bug fixes.

if (self) {
_clientID = [clientID copy];
_scopes = @[ @"email", @"profile" ];
_scopes = scopes;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a bit of an example of the concern from before - you're assigning to scopes, and skipping the "copy" property attribute. I think the right thing to do is to make the public property nonatomic, readonly, and in the anonymous category in the .m file override it to nonatomic, copy, readwrite.

@morganchen12
Copy link
Contributor Author

Gonna merge for now, and then we can decide on the accessors in initializers style rule later.
As the codebase currently is, all of the auth code uses ivars in initializers and all of database doesn't. :((((((((((

@morganchen12 morganchen12 merged commit b619344 into firebase:master Aug 12, 2016
@morganchen12 morganchen12 deleted the build-issues branch August 12, 2016 18:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants