react-native-community / releases

React Native releases
https://github.com/facebook/react-native/
1.5k stars 407 forks source link

v0.64.0 Discussion #207

Closed TheSavior closed 3 years ago

TheSavior commented 3 years ago

This release has not happened yet. This issue is for us to start tracking remaining work and coordinating with our relevant partner teams around the timing of the release

Highlighted Changes

Work Required

Hopeful Dates

We can never commit to the dates involved in a release as many things are out of our control. However, we are thinking about these rough dates for this release.

grabbou commented 3 years ago

Thank you! 🙏 I am about to get a deep dive into the CLI and prepare it for the next release. Will be back here with some features/updates/insights as that happens later this week.

rachelnabors commented 3 years ago

I want to thank @simek for volunteering to handle updating the documentation with this release. Updating the API references at the start of the year increased learner satisfaction with the documentation by 70% (woohoo!).But they're very easy to let slide release over release! Until we have found a solid automation solution, it will be up to us to be meticulous and vigilant and keep them up to date with every release :)

Simek commented 3 years ago

The stub project for the docs release is here: https://github.com/facebook/react-native-website/projects/1

I have only skimmed over the changeset draft from this repository #205. I'm waiting for the official changelog in this thread, to start posting issues and implementing the necessary changes.

gedeagas commented 3 years ago

I will be happy to help you with the docs @Simek 💖

TheSavior commented 3 years ago

I bumped the dates a week, the branch didn't get cut yesterday

thymikee commented 3 years ago

RN CLI recently released a minor version with profile-hermes command: https://github.com/react-native-community/cli/pull/1246. I think it's worth featuring in the release, even though it's backwards compatible and available in 0.63

TheSavior commented 3 years ago

Bumping by another week. React Native EU and the US holiday kept things from moving as we hoped

saphal1998 commented 3 years ago

@Simek, I'm also dropping a reference to the react-native-website PR here. I think it can be useful while writing docs for this release.

mrousavy commented 3 years ago
  • Hermes with Proxy support (will now support react-native-firebase)

What exactly does that mean?

Bardiamist commented 3 years ago

@mrousavy Now Hermes don't support js Proxy. So you can't use some packages from react-native-firebase which using Proxy.

mikehardy commented 3 years ago
  • Hermes with Proxy support (will now support react-native-firebase)

What exactly does that mean?

@mrousavy / @Bardiamist

:wave: react-native-firebase maintainer here :-), it is our understanding that our package @react-native-firebase/database did not work with Hermes until recently as it required Proxy support. If Hermes supports Proxy now, then the last "not-Hermes-compatible" module for react-native-firebase should work. Success reports welcome of course (we have a few already)

Not sure if this is worth a by-name callout in the release notes or not (not my domain...) but those are the facts as I know them

Cheers

grabbou commented 3 years ago

We need to cherry-pick https://github.com/facebook/react-native/pull/29477 for this release and possibly 0.63 as well. It reverts an annoying regression that was introduced around bundling in release mode. We will provide a better fix later.

CC: @hramos (would be great if the PR shipped to master before that)

Simek commented 3 years ago

Can PushNotificationIOS library be removed from the core in this release? Are there any contraindications?

It has been deprecated ~1,5 years ago (https://github.com/facebook/react-native/blame/master/index.js#L386) and it is rarely updated since then. Lately, due to deprecations on the Apple side, it is causing some confusion and issues (https://github.com/facebook/react-native/issues/26199).

CC: @grabbou

grabbou commented 3 years ago

Likely to be fixed before we release this version: https://github.com/facebook/react-native/issues/29984

Xcode 12 compatibility.

TheSavior commented 3 years ago

@Simek PushNotificationIOS is used in code at FB still. Someone internally will need to refactor that to remove it from core. Probably won't be this release.

viniciusfont commented 3 years ago

https://github.com/facebook/react-native/pull/28834

mikehardy commented 3 years ago

@viniciusfont

I believe the release workers need the commit hash (of a commit merged to master already) to consider it. Your is:

https://github.com/facebook/react-native/commit/d54113d8c4bcd0e0c7a09acca60819724eb69926

kelset commented 3 years ago

Two other things to be considered/done before cutting the 0.64 branch:

rosskhanas commented 3 years ago

Not sure if this is a correct thread to ask, but would it be possible to include https://github.com/facebook/react-native/pull/29728?

kelset commented 3 years ago

We should also try to get this merged https://github.com/facebook/react-native/pull/29882 as it is basically a port back to master of a fix that was done locally in 0.62

aleffita commented 3 years ago

There is some news about Turbo Modules and the new JSI?

kelset commented 3 years ago

Now that the main PR still preventing us from cutting the release branch has been merged (Hermes on iOS), let's check in what are we missing still:

blocking PR: needs to be merged before cutting:

PRs we should merge before cutting (or cherry pick afterwards):

Issues that we should solve before 0.64.0:

grabbou commented 3 years ago

I have updated the dates in the original issue to better reflect where we are. The work on https://github.com/facebook/react-native/pull/29914 is finally coming to an end (it is blocked by PRs to other repositories).

I am really optimistic that this one will be ready to go this week.

Theofilos-Chamalis commented 3 years ago

Would it be possible to include this PR facebook/react-native#30177 in 0.64.0?

It fixes bundle/release build issues on Android with gradle 6.5+ and android gradle 4.1.0+

hosseinmd commented 3 years ago

React 17 is now landed. I would like to know when that is done to react-native to start an issue in react-native-web too.

kuasha420 commented 3 years ago

Regarding Proxy support on Hermes, plethora of state management libraries that depend on Proxy support should be mentioned as well, like mobx.

Question, will the ios version of Hermes have Proxy as well?

jeremybarbet commented 3 years ago

@hosseinmd https://reactjs.org/blog/2020/10/20/react-v17.html#react-native

hosseinmd commented 3 years ago

I test react 17 in react-native Unexpectedly works.

TheSavior commented 3 years ago

Regarding Proxy support on Hermes, plethora of state management libraries that depend on Proxy support should be mentioned as well, like mobx.

Thanks, I updated the post to include mobx. Are there others you think should be mentioned that rely on proxy?

Question, will the ios version of Hermes have Proxy as well?

I believe so

hosseinmd commented 3 years ago

I think react-native need to implement a way to do some jobs in the other thread (because of performance). Something like reanimated 2 is working on it.

kuasha420 commented 3 years ago

Thanks, I updated the post to include mobx. Are there others you think should be mentioned that rely on proxy?

easy-peasy comes to mind. I think immer.js also needs proxy. Popular UI framework UI Kitten also uses proxy.

I believe so

Super excited to test out 0.64 when it hits RC.

terrysahaidak commented 3 years ago

I think react-native need to implement a way to do some jobs in the other thread (because of performance). Something like reanimated 2 is working on it.

There are quite few of them available right now, for example https://github.com/devfd/react-native-workers

hosseinmd commented 3 years ago

I think react-native need to implement a way to do some jobs in the other thread (because of performance). Something like reanimated 2 is working on it.

There are quite few of them available right now, for example https://github.com/devfd/react-native-workers

That is not a good idea, I think the idea of reanimated is so pretty, it works like this

function aFunctionWhichRunningInOtherThread(){
'WorkLet'
 // anything you want to run in another thread
}
a-eid commented 3 years ago

@terrysahaidak that repo is no longer maintained.

hosseinmd commented 3 years ago

@terrysahaidak you are a reanimated contributor and you know it better than me.

kelset commented 3 years ago

I'm hiding some of the comments above since they are OT -- no hard feelings, just trying to keep only relevant comments open to avoid confusion.


React 17 is now landed. I would like to know when that is done to react-native to start an issue in react-native-web too.

@hosseinmd there should be a commit landing in RN master soon to add React 17 support.


Let's write once more an overall update on status, since we are getting closer to have the main PR about Hermes in iOS merged:

blocking: needs to be merged/landed before cutting:

PRs we should merge before cutting (or cherry pick afterwards):

Issues that we should solve before 0.64.0:

terrysahaidak commented 3 years ago

@terrysahaidak you are a reanimated contributor and you know it better than me.

@hosseinmd please, open a separate issue in discussion and proposals repository for this discussion - we can continue there.

@kelset please hide this one too, thanks.

grabbou commented 3 years ago

https://github.com/facebook/react-native/issues/29984 is fixed by upgrading to CocoaPods 1.10, will be part of my facebook/react-native#29914.

we need to explicitly mention that in the release notes.

TheSavior commented 3 years ago

Re: facebook/react-native#29728 for PlatformColor support for border colors. Reading the PR it looks like this only adds support for iOS and not for Android. If that's the case, we probably won't merge it in or prioritize it for 0.64.

kuasha420 commented 3 years ago

Looks like React 17 got merged in master! Hooray

mikehardy commented 3 years ago

facebook/react-native#30177 mentioned by @Theofilos-Chamalis above in https://github.com/react-native-community/releases/issues/207#issuecomment-714514600 was merged as https://github.com/facebook/react-native/commit/53f55001afbf07494de0df064a92dfdd42f37c98 ✨ - that means android gradle plugin 4.1 (i.e. "current gradle") is supported. Previously 4.0.x worked but 4.1.x would not include the bundle on android in release mode

pavelrotek commented 3 years ago

Could you please merge https://github.com/facebook/react-native/pull/30164 before 0.64. cut?

MoKhajavi75 commented 3 years ago

Since React 17 got merged (https://github.com/facebook/react-native/commit/24bca492c349ab90d40f9444df0f477145a4c311), do we have the new JSX Transform in 0.64? (here)

gaodeng commented 3 years ago

Is it possible to release the 0.64 version without Hermes opt-in iOS first?

kelset commented 3 years ago

@MohamadKh75 I think the answer is yes, since it landed.

@gaodeng that's a good question, I don't think it has been considered so far. I'll try to bring it up as it currently is "the big blocker" and by reading the last few comments on the PR it looks like it's not quite as close as expected to being merged. Update on this: I've talked with some of the devs working on the PR and it seems we are indeed quite close to seeing it merged.

grabbou commented 3 years ago

Update: the PR is landing and will be merged by tomorrow (most likely). I have updated the original issue and the plan is to cut the branch as soon as it lands.

@gaodeng in regards to your comment, Hermes will ship as an option in the upcoming release. It's one of the "big things" we have outlined for this particular release. The main reason that PR has been delayed was that, while working on it, we have identified a few (sometimes unrelated) bugs that were fixed at the same time. Fortunately, they are all resolved which will contribute to more stable development workflow anyway, regardless of turning Hermes on/off.

a-eid commented 3 years ago

@kelset @grabbou Hermes IOS support just landed on master. https://github.com/facebook/react-native/commit/c95ee5ac18e22a32b12bf707bd47b926f09d3d51

kuasha420 commented 3 years ago

@kelset is the metro bundler and related configs ready to support New JSX Transform in upcoming RN0.64? I'm not sure.

kelset commented 3 years ago

@kuasha420 good question, I've asked internally and while I assume that the answer is yes, I'll update here once I know for sure.

kuasha420 commented 3 years ago

@kelset Speaking of good questions, here's a bad one. There's so much effort going on about Hermes on IOS but, is this something that Apple would allow in their store? Was there a discussion I missed or does Facebook have it on good authority that Apple's cool with it?