Skip to content

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

Conversation

alafanechere
Copy link
Contributor

@alafanechere alafanechere commented Aug 21, 2024

What

Closes https://github.com/airbytehq/airbyte-internal-issues/issues/9249

How

  • Add a RolloutConfiguration.yaml model
  • Reference it in the connector metadata model under the releases field.
  • Introduce a isReleaseCandidate field in under releases
  • Re-generated pydantic models

Copy link

vercel bot commented Aug 21, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

1 Skipped Deployment
Name Status Preview Comments Updated (UTC)
airbyte-docs ⬜️ Ignored (Inspect) Visit Preview Aug 22, 2024 1:17pm

Copy link
Contributor Author

alafanechere commented Aug 21, 2024

@alafanechere alafanechere force-pushed the augustin/08-21-metadata-service_lib_introduce_the_Rollout_field_to_metadata_model branch from 9454b01 to 230d6ea Compare August 21, 2024 13:05
@alafanechere alafanechere changed the title metadata-service[lib]: introduce the Rollout field to metadata model metadata-service[lib]: introduce a rollout field to the metadata model Aug 21, 2024
@alafanechere alafanechere force-pushed the augustin/08-21-metadata-service_lib_introduce_the_Rollout_field_to_metadata_model branch from 230d6ea to adcc8ce Compare August 21, 2024 13:19
@alafanechere alafanechere marked this pull request as ready for review August 21, 2024 13:21
@alafanechere alafanechere requested review from a team and clnoll August 21, 2024 13:21
type: object
additionalProperties: false
properties:
initialPercentage:
Copy link
Contributor Author

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?

Copy link
Contributor

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.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🆗

@alafanechere alafanechere force-pushed the augustin/08-21-metadata-service_lib_introduce_the_Rollout_field_to_metadata_model branch from adcc8ce to e759b7f Compare August 21, 2024 13:28
minimum: 0
maximum: 100
default: 100
description: The maximum percentage of users that should receive the new version.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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."""
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"""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:
Copy link
Contributor

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
Copy link
Contributor

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.

@alafanechere alafanechere force-pushed the augustin/08-21-metadata-service_lib_introduce_the_Rollout_field_to_metadata_model branch from e759b7f to bbdcb0a Compare August 21, 2024 16:05
@alafanechere alafanechere changed the title metadata-service[lib]: introduce a rollout field to the metadata model metadata-service[lib]: introduce a rolloutConfiguration field to the metadata model Aug 21, 2024
@alafanechere alafanechere requested a review from clnoll August 21, 2024 16:11
@alafanechere alafanechere force-pushed the augustin/08-21-metadata-service_lib_introduce_the_Rollout_field_to_metadata_model branch 3 times, most recently from 3ccc18d to c678426 Compare August 21, 2024 16:24
@@ -8,6 +8,12 @@ additionalProperties: false
required:
- breakingChanges
properties:
isReleaseCandidate:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
isReleaseCandidate:
isEligibleReleaseCandidate:

Copy link
Contributor

@clnoll clnoll left a 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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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.

@alafanechere alafanechere force-pushed the augustin/08-21-metadata-service_lib_introduce_the_Rollout_field_to_metadata_model branch from c678426 to 46977fc Compare August 22, 2024 12:25
@alafanechere alafanechere force-pushed the augustin/08-21-metadata-service_lib_introduce_the_Rollout_field_to_metadata_model branch from 46977fc to c088c5b Compare August 22, 2024 13:17
Copy link
Contributor Author

alafanechere commented Aug 22, 2024

Merge activity

@alafanechere alafanechere merged commit f58652b into master Aug 22, 2024
30 checks passed
@alafanechere alafanechere deleted the augustin/08-21-metadata-service_lib_introduce_the_Rollout_field_to_metadata_model branch August 22, 2024 16:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants