react-native-community / releases

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

Road to v0.65 Discussion #223

Closed nadiia closed 3 years ago

nadiia commented 3 years ago

The branch cut has happened. Current latest release: v0.64.2

Highlighted Changes

Work Required

Optional Picks

Dates

We are thinking about these rough dates for this release:

alexandrius commented 3 years ago

Hello. Any update regarding fabric architecture?

hramos commented 3 years ago

@alexandrius we'll be providing an update on Fabric and the new React Native architecture soon.

sunnylqm commented 3 years ago

Someone please escalate this issue as it will be a main blocker https://github.com/facebook/react-native/issues/31179

TheSavior commented 3 years ago

We need to get this security related fix cherry picked into RC.0 since the branch has already been cut: https://github.com/facebook/react-native/commit/33ef82ce6dfd31e1f990d438c925a0e52723e16b

grabbou commented 3 years ago

There's work happening in Hermes to support Catalyst https://github.com/facebook/hermes/pull/475. It's a pretty important update to Hermes, I would recommend we wait for it to land before releasing 0.65.

Huxpro commented 3 years ago

Hermes just made its v0.8.0 release for RN 0.65.

dulinriley commented 3 years ago

Can we pick https://github.com/facebook/react-native/commit/7579ed3f6f1a290eb9c6380bb82015f159362b02 (it just landed)? It adds support for a new feature for Hermes heap snapshots

kelset commented 3 years ago

if I understood correctly, unless we re-cut the branch we'll also need to cherry-pick these:

To fix the Folly/Xcode 12.5 issue properly.

TheSavior commented 3 years ago

That sounds right, the top post already has one of those linked, we probably need the other too.

I don't think we should recut, Hermes 0.8.0 is based on the cut and they'd need to create a new version if we recut.

gaodeng commented 3 years ago

Will React Native's new architecture be released in this version?

TheSavior commented 3 years ago

The new architecture will not be available for broad usage in this version. We are getting closer though!

alexandrius commented 3 years ago

The new architecture will not be available for broad usage in this version. We are getting closer though!

How much faster is it overall? 60-70% faster?

ACHP commented 3 years ago

The new architecture will not be available for broad usage in this version. We are getting closer though!

How much faster is it overall? 60-70% faster?

@hramos already mentionned that we'll have some news about it soon here https://github.com/react-native-community/releases/issues/223#issuecomment-832985680

@alexandrius I certainly am as impatient as you are about this new architecture but I think this thread should focus on the "road to v.65 discussion". :)

alexandrius commented 3 years ago

The new architecture will not be available for broad usage in this version. We are getting closer though!

How much faster is it overall? 60-70% faster?

@hramos already mentionned that we'll have some news about it soon here #223 (comment)

@alexandrius I certainly am as impatient as you are about this new architecture but I think this thread should focus on the "road to v.65 discussion". :)

You are right. I am too excited.

TheSavior commented 3 years ago

I dug into the two Hermes related picks that @grabbou and @dulinriley flagged with the Hermes team to understand if they are required for 0.65. Neither of them fix regressions introduced in this release, but rather add additional features or support. So I think 0.65 could proceed without them so that we aren't blocked.

I've updated the OP with the requested picks that are critical, and moved some down to another section that are non critical picks.

For the Xcode 12.5 support, it sounds like there is one remaining issue that @PeteTheHeat has flagged. It sounds like if you are using Hermes without Flipper on iOS, you might run into this error. Peter is still working on this. A reasonable workaround to unblock 0.65 though would be to use the same temporary patch used for 0.64. Then the real fix will hopefully land in time for 0.66.

mikehardy commented 3 years ago

I'm unclear on whether the branch cut or not - I see the branch in the code dropdown on github so I think that means we need a cherrypick of this one - comment copy-splatted from the 0.64.1 cherrypicks discussion


Issue https://github.com/facebook/react-native/issues/31245 just got a resolution! Please please cherry pick https://github.com/facebook/react-native/commit/b0e8c1eac0a9edda12ecfa264209a8b3222afe27 and thank you :-)

kelset commented 3 years ago

Update on this: me and @grabbou this morning met up and cherry picked all these commits:

We are now doing testing; we had to hop off before finishing all our tests to hop on our work stuff so we will have to do it async but we'll post an update later on.

Yonom commented 3 years ago

Can this be cherry picked? It would unblock several issues for us

https://github.com/facebook/react-native/commit/1d924549cad75912191005c8f68dd73e15b07183

kelset commented 3 years ago

Update on this: after last week cherry picking and testing, we encountered a few issues. So this morning I paired with @Titozzz and we re-did the testings, and we have now a double repro of a potential 🚨 issue.

On a freshly generated RNTestProject (via the local E2E script), using the steps to enable Hermes for iOS, it appears that Hermes doesn't get enabled - the phrase in the header does not appear:

Screenshot_2021-05-12_at_11 26 32 2

We need to figure out what's going on but until we understand this problem the RC0 won't be released.

Titozzz commented 3 years ago

@kelset https://github.com/facebook/react-native/commit/cdd0256187cecd6a699443eeef6bef1e1ad92a3a needs to be cherry picked for the e2e script issue

kelset commented 3 years ago

thanks @Titozzz for the link.

Quick update on the issue I was describing above around Hermes on iOS: looks like it's not just a fluke/something misconfigured but a proper issue that needs to be addressed. Digging deeper it seems that it's related to this PR by @janicduplessis https://github.com/facebook/react-native/pull/30478 that "broke" a reference that is used iOS side to determine is Hermes is available - but reverting the commit locally in the 0.65-branch didn't lead to a fix so it could be that there is something else going on.

Will keep you posted

Huxpro commented 3 years ago

I have merged https://github.com/facebook/react-native/pull/31559 that fixed the Hermes headers issues. Please cherry pick https://github.com/facebook/react-native/commit/59abb5f378e116288cdea2f619de0c128bb0b0eb and see if RN 0.65 is unblocked.

Thanks for everyone @Titozzz @kelset @grabbou @janicduplessis @fkgozali @fabriziobertoglio1987 involved in the triage process ❀️

kelset commented 3 years ago

great work everyone!

Sadly now we have another issue, this time related to the CLI πŸ˜‚πŸ˜­πŸ˜‚πŸ˜­πŸ˜‚πŸ˜­ We need to fix it to get back FastRefresh, there's already a first PR in the works: https://github.com/react-native-community/cli/pull/1420

kelset commented 3 years ago

Another PR that we'll have to pick when it lands -> https://github.com/facebook/react-native/pull/31562

mikehardy commented 3 years ago

@HoSheiMa I look forward to your project creating good DevTools for react-native! But not on a thread about releases. It has nothing to do with releases. Please use appropriate venues for comments.

acoates-ms commented 3 years ago

Not sure how widely used it is, but it looks like localeIdentifier was removed from I18nManager accidentally. https://github.com/facebook/react-native/pull/31589 will re-add it. -- I'd rather avoid the breaking change if possible.

a-eid commented 3 years ago

Not sure how widely used it is, but it looks like localeIdentifier was removed from I18nManager accidentally. https://github.com/facebook/react-native/pull/31589 will re-add it. -- I'd rather avoid the breaking change if possible.

What does localeIdentifier do?

kelset commented 3 years ago

thanks @acoates-ms, here's the commit to cherry pick: https://github.com/facebook/react-native/commit/6b91ae73cdf096e15a3235ae76276f9d7fb12f7b

kelset commented 3 years ago

PR that we'll have to cherry pick for the Fast Refresh / Metro stuff: https://github.com/facebook/react-native/pull/31597

kelset commented 3 years ago

And for Android: https://github.com/facebook/react-native/pull/31593

kelset commented 3 years ago

Also to cherry pick: https://github.com/facebook/react-native/commit/341f061ce3ae057f3a958654e0ec3a9c4c8211ad

dulmandakh commented 3 years ago

also added 2 more PRs.

TheSavior commented 3 years ago

@dulmandakh, are those critically needed to get cherry picked into 0.65 to solve some regression in this release? Or could they wait to be released with 0.66?

kelset commented 3 years ago

I've updated the top comment with the list of commits & PRs; as soon as all the required ones are in we will do a second round of cherry picking and testing again.

For now I've placed @dulmandakh's PRs in the optional section because I don't think those two are strictly necessary but good to have. But we can move them up if they are actually mandatory for a successful release.

danilobuerger commented 3 years ago

@kelset the jcenter removal from @dulmandakh would be much appreciated since its sunsetted and becoming quite flaky on CI tests..

kelset commented 3 years ago

I agree :) but they are not technically hard blockers for having an RC0 out (as far as I know)

dulmandakh commented 3 years ago

@TheSavior maven publish can wait

dulmandakh commented 3 years ago

RN is failing to build iOS app on M1, and the fix https://github.com/facebook/react-native/pull/31622

dulmandakh commented 3 years ago

Few PRs landed

kelset commented 3 years ago

@ghoudi01 this is not the correct issue for that kind of questions πŸ€— if you have a proposal around that topic, I would suggest opening a conversation here https://github.com/react-native-community/discussions-and-proposals/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc

myckhel commented 3 years ago

@kelset can you mark your reply to @ghoudi01 comment as hidden? because the reply also is off topic and hide my own too πŸ˜‰ for sure πŸ˜† No doubt about my comment 🀣 .

kelset commented 3 years ago

hey folks, here's an update: me and @tido64 spent the last couple hours cherry picking all the pickable stuff from the top comment plus a few more commits that were needed (you can see the full list here: https://github.com/facebook/react-native/commits/0.65-stable), plus we did a round of testing.

As part of it, and with the help of @Titozzz we have identified a problem caused by caching, which we fixed locally: https://github.com/facebook/react-native/commit/cae063798652fcf394ccf3af4645fd971ed76c19 (this will need to be backported to main via a proper PR).

After doing that we were able to do the full round of testing, and while on my machine everything was βœ… both on one of @Titozzz's machine (the other one was βœ…) and on @tido64's there was an Android crash on the RNTestProject very similar to this one: https://github.com/facebook/flipper/issues/515

Since it's so inconsistent (on 2 machines it works, on two it crashes), I think it's safe to proceed with the RC0 so that more folks can get their hands on it and we can get to the bottom of that Android/Flipper-related problem; moreover, there are a couple of PRs still waiting to be merged:

So for sure at least an RC1 will be needed.

Me and @tido64 will most likely publish RC0 tomorrow late-morning EU time.

danilobuerger commented 3 years ago

@kelset would it be possible to cherry pick https://github.com/facebook/react-native/commit/4d40b53c12c8ad52760c63cacde417ee876bdfb1 into rc0 as it resolves more find node issues on m1?

birkir commented 3 years ago

Can we cherrypick the High contrast mode for DynamicColorIOS: https://github.com/facebook/react-native/commit/4b9d9dda270acd4e0314f40490c699ffd0f6e30e

kelset commented 3 years ago

@danilobuerger @birkir given the amount of time it takes to cherry-pick + test, we will do RC0 today without those commits, but we'll try to cherry pick them for next RC

danilobuerger commented 3 years ago

@kelset sure I understand. Please keep in mind that people on m1 using nvm (or other node managers) will not be able to build for iOS devices without that patch. It will error out.

tido64 commented 3 years ago

Hi folks, a quick update: We tried to publish RC0 but are hitting this issue:

#!/bin/bash -eo pipefail
./scripts/circleci/buck_fetch.sh
+ buck fetch ReactAndroid/src/test/java/com/facebook/react/modules
Not using buckd because watchman isn't installed.
Picked up _JAVA_OPTIONS: -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap
No build file at ReactAndroid/src/main/third-party/java/robolectric/4.4/BUCK when resolving target //ReactAndroid/src/main/third-party/java/robolectric/4.4:robolectric.

This error happened while trying to get dependency '//ReactAndroid/src/main/third-party/java/robolectric/4.4:robolectric' of target '//ReactAndroid/src/test/java/com/facebook/react/modules:modules'

Exited with code exit status 1
CircleCI received exit code 1

You can find the full log here: https://app.circleci.com/pipelines/github/facebook/react-native/9356/workflows/f434e5f7-2845-4d11-b180-45a665dba6a5/jobs/204995

We're currently investigating it, but essentially won't be able to publish until this is fixed.

a-eid commented 3 years ago

RC0:

kelset commented 3 years ago

Hey folks, after many tweaks and roadblocks we managed to get to the point of publishing RC0. Sadly, the problem that during testing was inconsistently happening (in 2 out of 4 machines that tested locally) about Android crash on startup seems to be happening way more.

To keep the conversation swift and reduce the overhead of comments, let's move the conversation about RC0 here: https://github.com/react-native-community/releases/issues/235