status-im / status-mobile

a free (libre) open source, mobile OS for Ethereum
https://status.app
Mozilla Public License 2.0
3.88k stars 984 forks source link

0.9.30 Release #6311

Closed chadyj closed 5 years ago

chadyj commented 5 years ago

This is an issue to list and discuss remaining issues for the 0.9.30 release.

Remaining issues can be viewed with the release tag. https://github.com/status-im/status-react/labels/release

The 0.9.30 release has several improvements for #cryptolife and Devcon.

Using this issue to manage the release as team comms are split between Status and Slack cc @status-im/clojure @rachelhamlin @andytudhope @annadanchenko @lukaszfryc

chadyj commented 5 years ago

Conversation about scope from Slack:

rachel / Dense Immaterial Mantis [17:57]

Here’s what would be nice, if we can address in the limited time that we have:

  • Ropsten support for Gitcoin trophies—Gitcoin team said they’d deploy to testnet on Friday 12/10
  • Addition of a network list to the HTTP server (no issue yet)

We will not change the URL for Bounties Network to prague.bounties.network, but we can do a quick test of the DApp. Bounties Network ran smoothly at ETHBerlin so let’s hope for the best.

Andy:

  1. Registration DApp: https://github.com/status-im/hackathon-registration-dapp (will be ready to test this week)
  2. Sidechain with POA/DAIChain integrated into RPC connections (cc @goranjovic @adamb for how theire experiments are going there)
  3. prague.bounties.network tested (Simona will provide stuff to test against by the 12th)
  4. Gitcoin kudos integration (Julien, Rachel and I are tracking that, will hopefully have code to test against by the 12th).
  5. Extensions and JS API working well in Status (@jeluard and @rachel / Dense Immaterial Mantis to discuss that)
  6. Might need something specific for @divan's work on Whisper visualisation w/ Alethio, but doubt it.

@andytudhope @rachelhamlin Where are we on the move items? If there are issues can you please add the release tag or create issues?

The release was supposed to be cut tomorrow so please indicate which ones are must-haves and which ones are optional.

cc @divan @jeluard @goranjovic @adambabik mentioned above ^

chadyj commented 5 years ago

0.9.30 releases updated here in the release notes doc.

adambabik commented 5 years ago

Do we have a nightly or a build which has that sidechain configured? I checked the RPC endpoints for some popular methods and they were fine but I don't have a full suite to test everything.

rachelhamlin commented 5 years ago

ENS entry point from the profile screen, with updated URL. Assuming the release will happen on the 22nd, we should have the DApp in shape by then.

In the nightly & tested.

HTTP server fix from @Andrey - #6228

This is small. Team is prioritizing extensions work, but this will actually be @alwx and he's planning to take a look later today.

Extensions work from @jeluard

Will tag relevant issues; Nastya is testing.

Sidechain/RPC connection from @goranjovic - #6250

I'm not sure about this.

Ropsten support for Gitcoin trophies—Gitcoin team said they’d deploy to testnet on Friday 12/10

There are some issues with the display of these tokens. If we can't get a PR in today, probably will have to drop it.

Addition of a network list to the HTTP server (no issue yet)

Not required.

chadyj commented 5 years ago

Do we have a nightly or a build which has that sidechain configured? I checked the RPC endpoints for some popular methods and they were fine but I don't have a full suite to test everything.

I don't believe so. @goranjovic?

chadyj commented 5 years ago

Update from release sync:

The team is aiming to cut the release end of day Tuesday Oct 16. Please try to get your PR's merged before then.

Also thanks in advanced to the team for getting this issues done quickly, reviewing quickly, and testing quickly. Cheers!

chadyj commented 5 years ago

Ping @j-zerah @kimjf for release notes

goranjovic commented 5 years ago

We have a PR with the heavy lifting needed for the sidechain change (#6260). With it merged, I can post the PR that actually adds those sidechains.

yenda commented 5 years ago

Regarding mailservers:

Previously the app was blindly firing requests for all topics. It was using some heuristics to guesstimate when the mailserver was done sending the requests based on how much time has passed since the last expired message arrived (mailserver send expired messages, in the sense that the whisper network would have considered these messages expired and discarded them). The problem with that approach is that there is now a timeout on requests and after that timeout expires, the mailserver stops sending messages (to confirm @pilu @adambabik). This means that with the current approach, not only does the app tells the user it is fetching messages when it is actually done for up to 10 seconds, but also some of the history might never be fetched.

Recently signals were introduced to notify status react when a request is completed (all messages for the request have been confirmed to be received) or expired (the timeout, 10 sec by default, has been reached before all messages could be sent). I made a couple of PRs that started using these signals instead of the heuristic mentioned in the previous point. However this PR has made a few underlying problems more visible:

gravityblast commented 5 years ago

The problem with that approach is that there is now a timeout on requests and after that timeout expires, the mailserver stops sending messages (to confirm @pilu @adambabik).

@yenda the timeout is only a client-side timer in status-go. after 10 seconds it's fired if the client hasn't receive the response yet. The mail server itself never times out. It receives the request, it sends messages 1 by 1, and at the end it sends the "response" message. This means that even if status-go fires the timeout, the server can continue to send messages.

lukaszfryc commented 5 years ago

we can only request one topic per request (soon fixed by @pilu PR and will require PR on status-react to use it, this will allow us to greatly reduce the number of requests when the user have many chats (only 1 request for n chats per day instead of n). release blocker

@yenda the PR in status-go is already merged. I added an issue for you to use it in status-react https://github.com/status-im/status-react/issues/6334

lukaszfryc commented 5 years ago

mailservers that are far away are timing out a lot. For America, Europe and Asia this is less problematic because they can luckily find their local server or manually select it, but other part of the world will have terrible history retrieval performances. My guess is that there is some kind of acknowledgments and waiting between messages sent so the higher the ping the more likely the request is to timeout before all the messages have been sent. This is a release blocker IMO. We need to find why the mailserver is so slow at sending messages, if it waits for some kind of acknowledgement or something.

@yenda was it always like this or we introduced it somehow recently? If the upcoming release does not introduce regressions in this area I'd say it's not a release blocker. Anyway, it's worth to fix asap.

chadyj commented 5 years ago

Team, with the recent mail server issues and reports of reliability problems we will need to delay this release until we are absolutely certain Status is working reliably.

At the Hackathon and Devcon we are showcasing Status to the wider community so performance has to be flawless, and we should take the time to ensure this.

lukaszfryc commented 5 years ago

@chadyj is it final decision? How about registration dapp and other things mentioned by @rachelhamlin (https://github.com/status-im/status-react/issues/6311#issuecomment-429775679)? I suppose we can cherry pick at least some of them if we won't make a normal release.

chadyj commented 5 years ago

Hey @lukaszfryc it wasn't a decision but an observation. There are several existing release issues that are still open, plus the new mail server issues. Although if there are ways to remedy the issues, salvage the release and have a quality build for hackathon/devcon then lets do it.

lukaszfryc commented 5 years ago

I'd say let's aim for the standard release but with a 1 or 2 days delay, submitting the iOS build on Monday.

Backup plan: cherry pick and release only couple of changes like the registration app to support the hackaton. But, I'm not sure which PRs we will be able to cherry pick as many of them may be dependent on on things that are already in develop branch.


cc @chadyj @annadanchenko @rachelhamlin @andytudhope.

rachelhamlin commented 5 years ago

Makes sense.

In the event that we cherry-pick, I learned there's one more item that marketing needs:

And this item for ENS support is not listed in the must-haves above, but would also need to be included:

chadyj commented 5 years ago

I propose that we remove Instabug from this release too. It doesn't pass the test as essential software and can expose us to security or privacy incidents. I added the release tag but if anyone feels we should keep it then please holla https://github.com/status-im/status-react/issues/6346

chadyj commented 5 years ago

Update:

We have 3 PR's left.

Everything is assigned and in progress.

If all goes well we can cut the release tomorrow and start testing.

chadyj commented 5 years ago

Yenda:

mailservers that are far away are timing out a lot. For America, Europe and Asia this is less problematic because they can luckily find their local server or manually select it, but other part of the world will have terrible history retrieval performances. My guess is that there is some kind of acknowledgments and waiting between messages sent so the higher the ping the more likely the request is to timeout before all the messages have been sent. This is a release blocker IMO.

Pilu:

the timeout is only a client-side timer in status-go. after 10 seconds it's fired if the client hasn't receive the response yet. The mail server itself never times out. It receives the request, it sends messages 1 by 1, and at the end it sends the "response" message. This means that even if status-go fires the timeout, the server can continue to send messages.

@yenda @pilu Is there action required for this? Next steps?

goranjovic commented 5 years ago

The remaining PR for sidechains is here #6388

mandrigin commented 5 years ago

Just a small note that it is so much easier to track everything here than in Slack.

@chadyj mailserver timing out doesn't mean that you won't receive all the messages anyway, because, as I understand, it is not a p2p timeout, it is our waiting time to receive all the messages.

gravityblast commented 5 years ago

@chadyj we already fixed these things in the last days in status-go. Now the mail server sends back an error message, and envelopes can be packed in single messages. The client-side timeout is still needed though in case the mailserver doesn't send the response or in case of connectivity problems

mandrigin commented 5 years ago

I think we need to calculate timeout starting from the last message received from the mailserver and not from the actual request time. Maybe we also might want to show how many messages are received.

annadanchenko commented 5 years ago

looks like more extensions PR will need to be added according to @jeluard :

jeluard [10:12] We are still missing some bits for extensions otherwise they are essentially unusable.. Also need to push one PR to add kickback to the DApp list

chadyj commented 5 years ago

@jeluard @rachelhamlin Help us out and tag any essentials with the release tag as well as ping us in this thread.

chadyj commented 5 years ago

Have another release issue https://github.com/status-im/status-react/issues/6402 Can someone please grab that?

jeluard commented 5 years ago

@chadyj Already tagged, will tag more. I'll let you know once everything is out

jeluard commented 5 years ago

@chadyj @alwx is on #6402

chadyj commented 5 years ago

Heads up everyone! There are several new PR's today. Appreciate any help in testing/reviewing/merging 🍻

chadyj commented 5 years ago

Release has been cut so testing can commence. Here is what we've got https://github.com/status-im/status-react/compare/release/0.9.29...release/0.9.30

Builds for testing are building here https://jenkins.status.im/job/status-react/job/release/job/release%252F0.9.30/

We will cherry pick the other PR's when done.

annadanchenko commented 5 years ago

@jakubgs @rasom all existing 5 builds in https://jenkins.status.im/job/status-react/job/release/job/release%252F0.9.30/ failed. Are you fixing it?

release/0.9.30 [status-react » release] [Jenkins]
lukaszfryc commented 5 years ago

FYI, battery consumption looks similar to what it was on latest release (0.9.29). At least on Android device we always used to measure it (Samsung Galaxy S8). ~0.42% (avg of 2 experiments) battery was consumed in a 15 min test. Previously it was ~0.41%.

All results are here.

jeluard commented 5 years ago

I cherry-picked the relevant PRs we merge after the cut. We are expecting another PR for extensions.

rachelhamlin commented 5 years ago

@jeluard great. what PR is left?

jeluard commented 5 years ago

@rachelhamlin A PR restricting the number of extensions installable to 1

rachelhamlin commented 5 years ago

@jakubgs @rasom any update on jenkins issues?

annadanchenko commented 5 years ago

We can get to the android/ios builds here https://jenkins.status.im/job/status-react/job/release/job/release%252F0.9.30/8/ so not a blocker, but we still have blocking issue with https://jenkins.status.im/job/status-react/job/upload_release_ios/ that uploads iOS build to TestFlight because we need it for testing iOS upgrades cc @jakubgs @rasom @mandrigin

status-react » release » release/0.9.30 #8 [Jenkins]
upload_release_ios [status-react] [Jenkins]
mandrigin commented 5 years ago

There is a commit in the previous release branch that fixes upload iOS job. I think I never backported it to develop :(

rasom commented 5 years ago

https://gist.github.com/rasom/f0fdf66339184b3ff3fc113edc86ec73 well we also have some slack related error there, probably fixed, checking now

Gist
release_build_failure
GitHub Gist: instantly share code, notes, and snippets.
chadyj commented 5 years ago

Ha that is sorta my fault. When I quit Slack it must have broke the Fastlane<>Slack integration which is throwing errors.

We need to remove the Slack actions from the Fastfile like:

    slack(
        message: "New release build uploaded to TestFlight",
        slack_url: ENV["SLACK_URL"],
        default_payloads: []
    )
jeluard commented 5 years ago

Last PR we would like to be part of the release: https://github.com/status-im/status-react/pull/6428

annadanchenko commented 5 years ago

Current state (Sunday evening):

  1. 2 release PRs still need fixes: https://github.com/status-im/status-react/pull/6388 and https://github.com/status-im/status-react/pull/6428
  2. We can't upload iOS version to TestFlight - https://jenkins.status.im/job/status-react/job/upload_release_ios/ needs fixing or some other way to upload. The faster we submit it to review the better. Next release build with final changes will need less time to review if we got approval of preliminary build.
  3. We haven't completed regression testing of the available release build, so need to continue with it on Monday
upload_release_ios [status-react] [Jenkins]
mandrigin commented 5 years ago

I'll take a look at (2) tomorrow, Apple still doesn't look at the test builds on weekends, so the earliest review we can get is tomorrow evening (European time) anyway.

rachelhamlin commented 5 years ago

Alex is looking at #6428 this morning.

mandrigin commented 5 years ago

Will test uploading to TestFlight now.

mandrigin commented 5 years ago

upload_release_ios is fixed on 0.9.30, will fix the develop now.

chadyj commented 5 years ago

Thanks @mandrigin. I got the TestFlight build and was able to install.

Still have 2 PR's in progress from @goranjovic @alwx.

Heads up that there is also a suggestion to add PR's https://github.com/status-im/status-react/pull/6425 and https://github.com/status-im/status-react/pull/6448 to the release. I added the release tags @rasom can you please take a look and see if we should include it?

Good luck with the regression testing, testteam!

jeluard commented 5 years ago

6428 has been tested, merged and cherry-picked

Serhy commented 5 years ago

https://github.com/status-im/status-react/issues/6460 - one more regression we need to include in 0.9.30 release