Skip to content
This repository has been archived by the owner on Jun 17, 2022. It is now read-only.

0.55.x (latest: 0.55.4) #2

Closed
grabbou opened this issue Mar 5, 2018 · 29 comments
Closed

0.55.x (latest: 0.55.4) #2

grabbou opened this issue Mar 5, 2018 · 29 comments
Labels
release status Information about an upcoming or ongoing release stable Stable version

Comments

@grabbou
Copy link
Member

grabbou commented Mar 5, 2018

Latest release: 0.55.4

@turnrye turnrye added the release status Information about an upcoming or ongoing release label Mar 6, 2018
@turnrye turnrye changed the title [Release status] 0.55.0 0.55.0 Mar 6, 2018
@grabbou
Copy link
Member Author

grabbou commented Mar 6, 2018

Status: Branch cut
Date: 06/03/2018
Next update: 06/03/2018
Expected status: CI tests passing

@grabbou
Copy link
Member Author

grabbou commented Mar 6, 2018

Status: CI tests failing
Date: 06/03/2018
Next update: 06/03/2018
Expected status: CI tests passing
Note: There seems to be an unexpected error due to Metro bundler version mismatch. Teams are aware of the problem. I'll be following up later today.

@grabbou
Copy link
Member Author

grabbou commented Mar 7, 2018

Status: CI tests failing
Date: 07/03/2018
Next update: 07/03/2018
Expected status: CI tests passing
Note: Apologies for radio silence yesterday, but didn't have enough time to check with Metro team what's going on. I'll attempt fixing the issue today, we hopefully go green really soon.

@grabbou
Copy link
Member Author

grabbou commented Mar 9, 2018

Status: CI tests failing
Date: 09/03/2018
Next update: 09/03/2018
Expected status: CI tests passing
Note: CI is failing because of a really odd issue (anyone has an idea?) Basically, commit on master passes, whereas same commit breaks on release branch. I have few ideas but waiting for Hector from FB team to check this internally. I can't promise it's going to get fixed today, but I'll definitely update you later in the day.

@motiz88
Copy link

motiz88 commented Mar 9, 2018

@grabbou You want to link to an example build that's failing? Very naively I'd guess it could be a caching issue (maybe dependencies of some kind?), with the existing cache for master helping the build pass while the code actually has an issue when the cache from previous builds isn't there.

@grabbou
Copy link
Member Author

grabbou commented Mar 9, 2018

Yeah, my guess was also that the cache on Circle CI 2.0 has wrong keys (fallback ones) which fails for the first time on any branch where there's no specific cache.

Here's failing test: https://circleci.com/gh/facebook/react-native/36435

@motiz88
Copy link

motiz88 commented Mar 9, 2018

Looks like a recurrence of facebook/react-native#17742. (@grabbou do you want me to move this elsewhere?)

The failure

The test_ios Circle CI build is failing with:

Error: Unable to resolve module `metro/src/lib/bundle-modules/HMRClient`
  from `/Users/distiller/react-native/Libraries/Utilities/HMRClient.js`:
  Module does not exist in the module map

The state of the filesystem

The actual build filesystem on CircleCI (as cached at the end of https://circleci.com/gh/facebook/react-native/36269) seems to include both HMRClient.js and HmrClient.js in the requested location:

...
./node_modules/metro/src/lib/bundle-modules/MetroClient.js
./node_modules/metro/src/lib/bundle-modules/HMRClient.js.flow
./node_modules/metro/src/lib/bundle-modules/MetroClient.js.flow
./node_modules/metro/src/lib/bundle-modules/asyncRequire.js.flow
./node_modules/metro/src/lib/bundle-modules/asyncRequire.js
./node_modules/metro/src/lib/bundle-modules/HMRClient.js
./node_modules/metro/src/lib/bundle-modules/HmrClient.js
./node_modules/metro/src/lib/bundle-modules/BUCK
./node_modules/metro/src/lib/bundle-modules/HmrClient.js.flow
...

The potential fix

In facebook/react-native#17742 it was pointed out that facebook/react-native@e048bf1 (requiring HmrClient instead of HMRClient) fixed things. My hypothesis as to why master is working is that it has a cache from a time when HmrClient was requested, which a clean build cannot reconstruct.

This is likely to be an unreliable fix in the long run; the problem could be down to nondeterministic behaviour in metro with filenames that are only distinguishable by letter case, e.g. relying on readdir sort order where it is not actually guaranteed to be consistent.

However, based on circumstantial evidence, I believe that changing https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Utilities/HMRClient.js#L16 to require HmrClient will fix the build for the time being.

@grabbou
Copy link
Member Author

grabbou commented Mar 9, 2018 via email

@hramos
Copy link
Collaborator

hramos commented Mar 9, 2018

Amazing. Thanks for looking into this. It makes total sense and explains the flaky test behavior.

@hramos
Copy link
Collaborator

hramos commented Mar 9, 2018

I'm landing a fix. We were using a stale node_modules cache. While the same cache is used by all jobs in the tests workflow, the issue would only surface on workflows running on case insensitive OS X machines.

i.e. when the cache was restored and the workspace attached unto our Ubuntu containers, we'd end up with the stale HmrClient.js as well as the correct HMRClient.js file, and we'd happily move along.

On OS X, however, upon attaching the workspace we'd end up with a single HmrClient.js file which is not what we expect.

Note that this all comes from an issue we had with Metro. The release that preceded 0.25 was published to npm with the wrong case, i.e. it had HmrClient.js in the published package, even though the repo itself was tracking HMRClient.js. This happened due to a mismatch of case sensitiveness between the machines hosting our repo and the developer's machine that published the package.

As part of my fix, I added a regression test to ensure this doesn't happen again.

@hramos
Copy link
Collaborator

hramos commented Mar 9, 2018

Note that my fix is landing on master, we might need to cherry-pick it unto 0.55-stable.

facebook-github-bot pushed a commit to facebook/react-native that referenced this issue Mar 9, 2018
Summary:
tvOS and iOS workflows were flaky, apparently due to a stale cache that contained a problematic version of the Metro dependency. Thanks to motiz88 for identifying the potential cause of flakiness in react-native-community/releases#2 (comment).

https://circleci.com/workflow-run/440180a2-e888-4f27-bec9-b8e5d9be6708

[GENERAL] [MINOR] [CI] - Resolve iOS, tvOS failures in Circle
Closes #18304

Differential Revision: D7220150

Pulled By: hramos

fbshipit-source-id: 0f5e68c779dfce44e6deb8b813a3ac9e25a2ab97
@grabbou grabbou changed the title 0.55.0 0.55-stable (latest: n/a) Mar 12, 2018
@grabbou
Copy link
Member Author

grabbou commented Mar 12, 2018

Great, I just took the latest master to 0.55-branch, attempting release today.

Status: CI tests failing
Date: 12/03/2018
Next update: 12/03/2018
Expected status: RC published
Note: Now that cache issues are gone, I expect this to be a smooth process.

@grabbou
Copy link
Member Author

grabbou commented Mar 13, 2018

Status: RC published
Date: 13/03/2018

@grabbou grabbou changed the title 0.55-stable (latest: n/a) 0.55-stable (latest: 0.55.0-rc.0) Mar 13, 2018
@hramos
Copy link
Collaborator

hramos commented Mar 15, 2018

CI tests are currently failing on master due to a BUCK issue. Introduced in facebook/react-native@3a2bdf5. Fix landing soon.

@hramos
Copy link
Collaborator

hramos commented Mar 15, 2018

^ The above comment is for master, and I realize this may not be affecting 0.55-RC as the problematic commit is not in the RC.

Do you care about CI test failures on master? I can see this being of interest to you when the RC cutoff date is near, but probably less so mid-cycle (this failure will be long fixed by the time 0.56-RC is cut).

@grabbou
Copy link
Member Author

grabbou commented Mar 20, 2018

Yeah, would be good to be aware of the status anyway. That way, I can also help fixing the CI when other team members are busy, which should improve the PR review process. I am thinking whether we should have a separate issue for tracking master status.

FYI, I am going to cherry-pick a commit requested recently to add support for context and cut new release candidate today.

facebook/react-native@4f8328b

Status update to follow in few minutes.

@grabbou
Copy link
Member Author

grabbou commented Mar 20, 2018

Also, going to cherry-pick this to fix issues with link after recent rewrite: facebook/react-native#18349

@grabbou
Copy link
Member Author

grabbou commented Mar 20, 2018

Status: CI tests pending
Date: 20/03/2018
Next update: 20/03/2018
Expected status: RC published

@grabbou
Copy link
Member Author

grabbou commented Mar 21, 2018

Status: RC published
Date: 21/03/2018
npm version: 0.55.0-rc.1

@grabbou grabbou changed the title 0.55-stable (latest: 0.55.0-rc.0) 0.55-stable (latest: 0.55.0-rc.1) Mar 21, 2018
@grabbou grabbou changed the title 0.55-stable (latest: 0.55.0-rc.1) 0.55.x (latest: 0.55.0-rc.1) Mar 21, 2018
@grabbou grabbou added the rc Release candidate label Mar 21, 2018
@react-native-community react-native-community locked and limited conversation to collaborators Mar 22, 2018
@grabbou
Copy link
Member Author

grabbou commented Mar 28, 2018

Status: CI tests pending
Date: 28/03/2018
Next update: 28/03/2018
Expected status: RC published (0.55.0-rc.2)

@grabbou
Copy link
Member Author

grabbou commented Apr 3, 2018

Status: CI tests pending
Date: 04/04/2018
Next update: 03/04/2018
Expected status: Stable published (0.55.0)
__
Welcome after Easter break :)

@grabbou grabbou changed the title 0.55.x (latest: 0.55.0-rc.1) 0.55.x (latest: 0.55.0-rc.2) Apr 3, 2018
@grabbou grabbou changed the title 0.55.x (latest: 0.55.0-rc.2) 0.55.x (latest: 0.55.0) Apr 3, 2018
@grabbou
Copy link
Member Author

grabbou commented Apr 3, 2018

Status: Stable released
Date: 04/04/2018

@grabbou grabbou added stable Stable version and removed rc Release candidate labels Apr 3, 2018
@grabbou
Copy link
Member Author

grabbou commented Apr 3, 2018

Note: Current version (0.55.0) ships with alpha version of React. This is a mistake. Unfortunately, I can't unpublish the release, so we are waiting for a sync to come from Facebook. Expect 0.55.1 to be published later today / tomorrow morning containing stable version of React.

@turnrye turnrye added pre-release and removed stable Stable version labels Apr 4, 2018
@grabbou grabbou added stable Stable version and removed pre-release labels Apr 5, 2018
@grabbou
Copy link
Member Author

grabbou commented Apr 5, 2018

Status: Stable released (0.55.1)
Date: 06/04/2018
Note: This version fixes several issues related to run-ios and updates React to stable version

@grabbou grabbou changed the title 0.55.x (latest: 0.55.0) 0.55.x (latest: 0.55.1) Apr 5, 2018
@grabbou
Copy link
Member Author

grabbou commented Apr 6, 2018

Status: CI tests pending
Date: 06/04/2018
Expected status: Stable published (0.55.2)
Note: run-ios fix, deprecation warnings, reverted one faulty commit

@grabbou grabbou changed the title 0.55.x (latest: 0.55.1) 0.55.x (latest: 0.55.2) Apr 9, 2018
@grabbou
Copy link
Member Author

grabbou commented Apr 9, 2018

Status: Stable published (0.55.2)
Date: 09/04/2018

@grabbou
Copy link
Member Author

grabbou commented Apr 17, 2018

Status: CI tests pending
Date: 17/04/2018
Expected status: Stable published (0.55.3)

@grabbou grabbou changed the title 0.55.x (latest: 0.55.2) 0.55.x (latest: 0.55.3) Apr 17, 2018
@grabbou
Copy link
Member Author

grabbou commented Apr 17, 2018

Status: Stable published (0.55.3)
Date: 17/04/2018

@grabbou grabbou changed the title 0.55.x (latest: 0.55.3) 0.55.x (latest: 0.55.4) May 8, 2018
@grabbou
Copy link
Member Author

grabbou commented May 8, 2018

Status: Stable published (0.55.4)
Date: 09/05/2018

@grabbou grabbou closed this as completed Sep 12, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
release status Information about an upcoming or ongoing release stable Stable version
Projects
None yet
Development

No branches or pull requests

4 participants