Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Phased Rollout Notifications #12

Open
Sherlouk opened this issue Sep 14, 2020 · 9 comments
Open

Phased Rollout Notifications #12

Sherlouk opened this issue Sep 14, 2020 · 9 comments
Labels
enhancement New feature or request hacktoberfest This issue or pull request is encouraged by Hacktoberfest

Comments

@Sherlouk
Copy link

Background

Apple has a phased rollout capability where it will automatically roll an app out to an increasing percentage of its audience whom use automatic app updates. The %'s are static and chosen by Apple, as a developer we can push it to 100% of users at any time during the rollout and we can also pause the rollout at anytime which stops any more users from getting the automatic update.

Request

When Apple changes the % of whom get the rollout, a notification should be sent like:
"App Name has rolled out to 5% of users"
"App Name has finished rollout and is available to 100% of users"

When a developer pushed a release to 100%, a notification should be sent like:
"App Name has been pushed to 100% of users"

When a developer paused a release, a notification should be sent like:
"The rollout of App Name has been paused at 5% of users"

When a developer resumes a release after being paused, a notification should be sent like:
"The rollout of App Name has been resumed. Currently at 5% of users"

Source

https://twitter.com/JamesSherlouk/status/1305287338826911745

@rogerluan
Copy link
Owner

The %'s are static and chosen by Apple

We don't use phased rollouts in our company so I had no idea about this - interesting!

A few notes:

  • From what I checked so far, we can definitely check for transitions using polling and saving the previous states to know when a state changes. That means we can detect state changes e.g. "ongoing → paused", "paused → resumed", "ongoing → completed", etc, within a given acceptable and configurable delay. However, I don't think we can determine whether the "completed" status was reached by natural phased rollout, or if it was forced by a user. I imagine that this is not too much of a big deal, but I'd like to confirm with you if this is worth some digging @Sherlouk
  • As we discussed on Twitter, I haven't seen any existing code in fastlane that seems to support reading the percentage of the current phased rollout release. This needs further digging, but if fastlane doesn't support this out of the box, my gut feeling is that this is possible but will require implementing new feature directly within fastlane itself. Luckily, fastlane is open source 😜

That being said, I suggest dividing this feature request into two tasks: sending notifications when statuses change, and informing the percentage of the phased release.

@Sherlouk
Copy link
Author

Appreciate the response there Roger!

Agreed we should handle this as multiple tasks, and I don't think having no distinction between completing naturally and via developers actions is a showstopper issue though once we work out how to get the % this shouldn't be hard to work out! (If % == 100% and status == completed)

@rogerluan
Copy link
Owner

Wait, wouldn't % == 100 && status == completed be the case in both scenarios?

@Sherlouk
Copy link
Author

You raise a valid point 😄 I suppose it'd rely on having the last percentage then!

Either way not a massive concern for what I'm praying for here - the daily % updates and the pause/resume/completed are the most important 👀🙏🏼

@rogerluan rogerluan added enhancement New feature or request hacktoberfest This issue or pull request is encouraged by Hacktoberfest labels Sep 26, 2020
@tahirmt
Copy link
Contributor

tahirmt commented Sep 30, 2021

Wondering if there’s been any movement on this in the last year

@Sherlouk
Copy link
Author

Not from me I'm afraid, but I'd still love it!

@rogerluan
Copy link
Owner

Unfortunately not. I don't plan to work on this any time soon, so if anyone has appetite to tackle this task, PRs are always super welcome! 😊

@tahirmt
Copy link
Contributor

tahirmt commented Sep 30, 2021

I'm new to the App Store api and I was looking through Fastlane's docs and can't seem to find if it's already added there or even if it is possible. The App Store api docs look promising.

@rogerluan
Copy link
Owner

From my comment here: #12 (comment)

I haven't seen any existing code in fastlane that seems to support reading the percentage of the current phased rollout release. This needs further digging, but if fastlane doesn't support this out of the box, my gut feeling is that this is possible but will require implementing new feature directly within fastlane itself. Luckily, fastlane is open source 😜

It's possible that since I posted that comment, fastlane has implemented this feature already. Very likely, I'd say. 😊

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request hacktoberfest This issue or pull request is encouraged by Hacktoberfest
Projects
None yet
Development

No branches or pull requests

3 participants