GithubHelp home page GithubHelp logo

Comments (9)

jakobo avatar jakobo commented on August 18, 2024 1

Would this also mean we can somehow exclude flipper entirely for non-development builds?

That's the plan. In the same way the use_frameworks isn't exposed unless you've enabled the associated build property, flipper would only be enabled if the build property was enabled.

I've also split your comment into its own issue; that sounds like a bug if it's still being rolled into the app and blocking the build.

from expo-community-flipper.

jakobo avatar jakobo commented on August 18, 2024 1

Branch and diff: expo/expo@main...jakobo:expo:expo-build-plugins/flipper

This is kind of a rough first pass at the expo SDK changes

  • Plugin
    • Uses an Omit<> trick I learned a month or two ago for the typing that gives us typeahead for "known" strings while still allowing an arbitrary string type. Otherwise "enabled" | "disabled" | string is just a verbose way of writing string.
  • iOS
    • Changes use_frameworks to not be called unless the build property is explicitly set. Previously, it was calling use_frameworks! with nil linkage which would still create the conflict with flipper
    • Adds a local expo_flipper that starts in the explicit disabled state, and then optionally upgrades it to either enabled or a specific version string. It does not allow specifying RSpec, Folly, etc as that's well beyond the common use case
    • Adds a test that ensures you cannot have a useFrameworks and flipper set on the iOS config at the same time
  • Android
    • Uses a safe withGradleProperties mod, applying the changes only if the flipper config for android is set, and only if it is set to "enabled"
    • Disabling flipper in Android is now a huge set of gradle changes, and its unlikely the FB or Flipper teams are going to ever have a flag like we have with Podfiles

Some references on how/why we need to make the Podfile changes the way we did:

from expo-community-flipper.

nandorojo avatar nandorojo commented on August 18, 2024 1

Would be good to add the official support to the README! I only knew about it from Twitter...

https://twitter.com/jakobo/status/1629531998262837249?s=20

Thanks for all your hard work @jakobo.

from expo-community-flipper.

SimenB avatar SimenB commented on August 18, 2024

Nice!

Would this also mean we can somehow exclude flipper entirely for non-development builds? Currently, even if I exclude the config plugin, the iOS build fails (I assume because it does something fancy when finding react-native-flipper in node_modules or something. Is it the auto-linker's "fault"?).

from expo-community-flipper.

Kudo avatar Kudo commented on August 18, 2024

wow, that's awesome! thanks for picking up this quickly!

Changes use_frameworks to not be called unless the build property is explicitly set. Previously, it was calling use_frameworks! with nil linkage which would still create the conflict with flipper

i think this is not quite true. as we have the tail if in

use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks']

from expo-community-flipper.

jakobo avatar jakobo commented on August 18, 2024

i think this is not quite true. as we have the tail if in

Chatted with Kudo via discord, as he had a working ruby repl. The if statement properly nulifies the entire line (my original understanding was that it was a conditional for the linkage prop, which is incorrect in ruby). Will revert the changes tied to use_frameworks based on his feedback.

edit Branch updated, and changeset for use_frameworks removed.

from expo-community-flipper.

rlam3 avatar rlam3 commented on August 18, 2024

Is there any breaking chances to how a dev client is built moving forward? or can we still rely on the FLIPPER_DISABLED flag?

from expo-community-flipper.

jakobo avatar jakobo commented on August 18, 2024

@rlam3 To keep max backwards compatibility for the merge, I think it's worth keeping the FIPPER_DISABLE (deprecated and to remove in SDK49), but also support the semi-official NO_FLIPPER flag from the official Podfile template ref.

This way we're trending towards matching the templates & code found through searching up issues here or on google.

edit Updated the branch with the config change for review: expo/expo@main...jakobo:expo:expo-build-plugins/flipper#diff-f771467c60e6353ad16c2d884089d1203b9babb0002664af5328194029853f14R20

from expo-community-flipper.

jakobo avatar jakobo commented on August 18, 2024

I've got some time this week to get the release out. It'll be a readme change and then running npm deprecate on v48.x, plus updating & closing relevant tickets plus a pinned issue pointing to the new docs.

Thanks for the nudge @nandorojo ❤️

from expo-community-flipper.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.