-
Notifications
You must be signed in to change notification settings - Fork 4.5k
metadata-service[lib]: introduce a rolloutConfiguration
field to the metadata model
#44504
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
metadata-service[lib]: introduce a rolloutConfiguration
field to the metadata model
#44504
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Skipped Deployment
|
This stack of pull requests is managed by Graphite. Learn more about stacking. Join @alafanechere and the rest of your teammates on |
9454b01
to
230d6ea
Compare
rollout
field to the metadata model
230d6ea
to
adcc8ce
Compare
type: object | ||
additionalProperties: false | ||
properties: | ||
initialPercentage: |
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.
@clnoll I was wondering if we plan to version control the rollout progress. Shall we introduce a currentPercentage
which would be updated via automated PRs by the orchestrator?
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.
@alafanechere I wasn't planning to. I'd prefer to keep the flow of information in one direction, and encourage people to use information from the RC table as the point of truth.
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.
🆗
adcc8ce
to
e759b7f
Compare
minimum: 0 | ||
maximum: 100 | ||
default: 100 | ||
description: The maximum percentage of users that should receive the new version. |
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.
description: The maximum percentage of users that should receive the new version. | |
description: The percentage of users who should receive the release candidate during the test phase before full rollout. |
def validate_no_rollout_on_major_version( | ||
metadata_definition: ConnectorMetadataDefinitionV0, _validator_opts: ValidatorOptions | ||
) -> ValidationResult: | ||
"""Ensure that if the major version is incremented, there is a breaking change entry for that version.""" |
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.
"""Ensure that if the major version is incremented, there is a breaking change entry for that version.""" | |
"""Ensure that gradual rollout is not performed on a major version bump.""" |
return True, None | ||
|
||
rollout = get(metadata_definition_dict, "data.rollout") | ||
if rollout: |
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.
I don't think we should remove the rollout
property on a major version bump; we should be able to just keep it there. Instead we can just do the normal publishing flow (not publish a release candidate).
type: integer | ||
minimum: 0 | ||
maximum: 100 | ||
default: 100 |
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.
WDYT about defaulting this to 50 instead? That would mean that up to half of the connectors will get the RC before it gets fully rolled out.
e759b7f
to
bbdcb0a
Compare
rollout
field to the metadata modelrolloutConfiguration
field to the metadata model
3ccc18d
to
c678426
Compare
@@ -8,6 +8,12 @@ additionalProperties: false | |||
required: | |||
- breakingChanges | |||
properties: | |||
isReleaseCandidate: |
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.
isReleaseCandidate: | |
isEligibleReleaseCandidate: |
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.
LGTM, just a few wording suggestions.
@@ -8,6 +8,12 @@ additionalProperties: false | |||
required: | |||
- breakingChanges | |||
properties: | |||
isReleaseCandidate: | |||
description: Whether the release is a release candidate. |
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.
description: Whether the release is a release candidate. | |
description: Whether the release is eligible to be a release candidate. |
minimum: 0 | ||
maximum: 100 | ||
default: 50 | ||
description: The maximum percentage of users that should receive the new version. |
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.
description: The maximum percentage of users that should receive the new version. | |
description: The percentage of users that should receive the release candidate during the test phase before full rollout. |
c678426
to
46977fc
Compare
46977fc
to
c088c5b
Compare
Merge activity
|
What
Closes https://github.com/airbytehq/airbyte-internal-issues/issues/9249
How
RolloutConfiguration.yaml
modelreleases
field.isReleaseCandidate
field in underreleases