-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
Introduce phased release to deliver #9581
Conversation
deliver/Deliverfile.md
Outdated
@@ -146,6 +146,16 @@ automatic_release true | |||
automatic_release false | |||
``` | |||
|
|||
##### phased_release | |||
|
|||
Should the app be phased release. If set to `true`, this update will be released over 7-day period using phased release. Default value is `false`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you tell me if this sentence is strange.
I'm not a native speaker. 😅
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enable or disable the phased releases feature of iTunes Connect. If set to true
, the update will be released over a 7 day period. Default value is false
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work 👍 This is awesome, thanks for the PR
deliver/lib/deliver/options.rb
Outdated
@@ -111,6 +111,10 @@ def self.available_options | |||
description: "Should the app be automatically released once it's approved?", | |||
is_string: false, | |||
default_value: false), | |||
FastlaneCore::ConfigItem.new(key: :phased_release, | |||
description: "Should the app be phased released", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enable phased the phased release feature of iTC
deliver/Deliverfile.md
Outdated
@@ -146,6 +146,16 @@ automatic_release true | |||
automatic_release false | |||
``` | |||
|
|||
##### phased_release | |||
|
|||
Should the app be phased release. If set to `true`, this update will be released over 7-day period using phased release. Default value is `false`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enable or disable the phased releases feature of iTunes Connect. If set to true
, the update will be released over a 7 day period. Default value is false
.
@@ -111,6 +111,7 @@ def upload(options) | |||
end | |||
|
|||
v.release_on_approval = options[:automatic_release] | |||
v.toggle_phased_release(enabled: !!options[:phased_release]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happens when phased releases are enabled on iTunes Connect, and you ship a new release using fastlane deliver with the default value?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you ship a new release using fastlane deliver with the default value?
I tried in that situation, it works well. 👍
This value might be ignored when we ship a new release.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What if:
- iTunes Connect: you have phased releases enabled
- deliver: You don't set anything manually and just use the default
I'd think that this would then disable phased releases on iTunes Connect, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In current behavior, if phased_release
value is not specified on deliver, values on iTC is disabled automatically.
Do you mean If value is not specified, deliver should not change value on iTC?
@@ -55,6 +55,8 @@ class UploadMetadata | |||
# Directory name it contains review information | |||
REVIEW_INFORMATION_DIR = "review_information" | |||
|
|||
# rubocop:disable Metrics/PerceivedComplexity |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do this value make sense?
https://github.com/giginet/fastlane/blob/phased-release/.rubocop.yml#L172
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
seems ok to me
@KrauseFx Skip https://github.com/fastlane/fastlane/pull/9581/files#diff-113801503f6c061c140ffcb4f7347fa1R151 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you test this for the different use-cases?
@@ -111,6 +113,7 @@ def upload(options) | |||
end | |||
|
|||
v.release_on_approval = options[:automatic_release] | |||
v.toggle_phased_release(enabled: !!options[:phased_release]) unless options[:phased_release].nil? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❤️
deliver/Deliverfile.md
Outdated
@@ -146,6 +146,16 @@ automatic_release true | |||
automatic_release false | |||
``` | |||
|
|||
##### phased_release | |||
|
|||
Enable or disable the phased releases feature of iTunes Connect. If set to `true`, the update will be released over a 7 day period. Default value is `false`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Default behavior is to leave whatever you defined on iTunes Connect
I tried in several situations:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome, thanks for the update 👍
Thanks @giginet 👍 |
@@ -111,6 +111,11 @@ def self.available_options | |||
description: "Should the app be automatically released once it's approved?", | |||
is_string: false, | |||
default_value: false), | |||
FastlaneCore::ConfigItem.new(key: :phased_release, | |||
description: "Enable phased the phased release feature of iTC", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo Enable the phased release feature of iTC
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oops, I'll fix this on another PR 🙇
Hey @giginet 👋 Thank you for your contribution to fastlane and congrats on getting this pull request merged 🎉 Please let us know if this change requires an immediate release by adding a comment here 👍 |
Congratulations! 🎉 This was released as part of fastlane 2.44.0 🚀 |
* Introduce phased release to deliver * Fix documents * Ignore phased_release when not specified * Add testcases for phased_release * Disable rubocop * Modify default behavior * Make optional
Checklist
bundle exec rspec
from the root directory to see all new and existing tests passbundle exec rubocop -a
to ensure the code style is validMotivation and Context
I'd like to set phased release value with deliver.
Description
Added
phased_release
option on deliver.phased_release API already have been supported on #9372. However, we can't use this via deliver.