Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nimble: update to latest upstream and make it Xcode12 ready. #2

Merged
merged 4 commits into from
Sep 21, 2020

Conversation

arangato
Copy link
Member

@arangato arangato commented Sep 6, 2020

  • Apply project settings recommended by Xcode12.
  • Removed usage of expectation and matching API based on deprecated Matcher protocol.
    Otherwise matching expect statement on an optional value often resulted in the following warning
    'to(:description:)' is deprecated: User Predicate instead_.

@arangato arangato marked this pull request as ready for review September 6, 2020 19:42
@barakwei barakwei self-assigned this Sep 7, 2020
Copy link

@nicklockwood nicklockwood left a comment

Choose a reason for hiding this comment

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

Looks fine to me. Just one query about the changes to expect(expression:).

Tests/NimbleTests/AsynchronousTest.swift Outdated Show resolved Hide resolved
Tests/NimbleTests/Matchers/ThrowAssertionTest.swift Outdated Show resolved Hide resolved
@nicklockwood
Copy link

LGTM. Merge when ready.

@arangato arangato force-pushed the master branch 2 times, most recently from fde1d4e to 83c06a3 Compare September 15, 2020 06:22
@barakwei barakwei removed their assignment Sep 16, 2020
Copy link

@byohay byohay left a comment

Choose a reason for hiding this comment

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

I'm missing a few things:

  • What ambiguity are you trying to solve? An explanation and an example would be great.
  • How does the the change in the code solve it? It's not immediately apparent from the code.
  • There are commits that don't seem related to Xcode 12, for example removing deprecated APIs. Why are they here then?

@@ -1830,6 +1830,7 @@
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
Copy link

Choose a reason for hiding this comment

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

So what's this for?

Copy link
Member Author

Choose a reason for hiding this comment

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

this is the one recommended by Xcode. It was before I learned NO is as good, but since it's working already no reason to change.

@arangato arangato changed the title Nimble: make it Xcode12 ready. Nimble: update to latest upstream and make it Xcode12 ready. Sep 17, 2020
@ashdnazg
Copy link

ashdnazg commented Sep 21, 2020

Note that upstream has now solved the ambiguity/crash issue and is XCode 12 ready Quick#824

@arangato
Copy link
Member Author

Note that upstream has now solved the ambiguity/crash issue and is XCode 12 ready Quick#824

Yep. I saw it. We'll advance our fork and I'll drop whatever I could from this PR. We don't want to diverge at all. But some upstream changes (like dropping deprecated Matcher API) we'd rather not wait, because they cause unnecessary noise.

@arangato
Copy link
Member Author

@barakwei please advance Nimble fork to v9.0.0-rc.3 as it incorporates ambiguous use of 'expect' fix I previously cherry picked.

@barakwei
Copy link
Member

barakwei commented Sep 21, 2020

pulled master, good luck

@arangato
Copy link
Member Author

@byohay have a look. I removed details of "ambiguous expect" since it's not part of the PR anymore. I'll write about it on ++Nimble in Foundations.

@barakwei
Copy link
Member

Can we ++Nimble even before this is merged?

@arangato
Copy link
Member Author

If we do, some apps will get to(_:description:)' is deprecated: Use Predicate instead warnings. FacetuneVideo for example has lots of there.

Copy link

@byohay byohay left a comment

Choose a reason for hiding this comment

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

There are more deprecated stuff:

  • Matcher protocol.
  • NMBObjCMatcher
  • expressionDoesNotMatch
  • postNotifications
  • _fromDeprecatedClosure, but it seems to be deeply engrained in Predicate.

What about them?

@arangato
Copy link
Member Author

I tried removing those but it's tricky and has no real value. I surveyed several apps to find all the deprecated APIs that have negative impact. In addition I deleted all Matcher usages that were easy to delete just in case.
Nimble has pretty solid deprecation plan. Once they properly remove it we'll switch to upstream version.

@byohay
Copy link

byohay commented Sep 21, 2020

@barakwei merge at your leisure, for some reason I can't.

@barakwei barakwei merged commit 156426f into Lightricks:master Sep 21, 2020
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.

5 participants