airbytehq / airbyte

The leading data integration platform for ETL / ELT data pipelines from APIs, databases & files to data warehouses, data lakes & data lakehouses. Both self-hosted and Cloud-hosted.
https://airbyte.com
Other
15.47k stars 3.99k forks source link

data types update - implement protocol versioning (upgrades) #17639

Closed edgao closed 1 year ago

edgao commented 1 year ago

after https://github.com/airbytehq/airbyte/pull/17486 is accepted, we can implement the protocol versioning migrations. This issue is to implement the upgrade logic.

As part of this issue, we should update https://github.com/airbytehq/airbyte/blob/master/airbyte-protocol/protocol-models/src/main/java/io/airbyte/protocol/models/JsonSchemaType.java with the new types, and tag the old-style schema declarations as @Deprecated. They'll still need to exist for the sake of unupdated connectors, but all new connector development should use new-style declarations.

edgao commented 1 year ago

@edgao ask platform folks about state of protocol versioning, is it ready for use

edgao commented 1 year ago

from jimmy:

The core of the migration piece is there, I am plugging it where needed right now 14:11 Most if it lives: https://github.com/airbytehq/airbyte/tree/master/airbyte-commons-protocol/src/main/java/io/airbyte/commons/protocol What to look at: about the migrations itself: https://github.com/airbytehq/airbyte/blob/master/airbyte-commons-protocol/src/main[…]byte/commons/protocol/migrations/AirbyteMessageMigrationV0.java serialization/deserialization should be mostly https://github.com/airbytehq/airbyte/blob/master/airbyte-commons-protocol/src/main[…]/airbyte/commons/protocol/serde/AirbyteMessageV0Serializer.java for the first actual iteration, I should be around to help to get it battle tested

message migrator test https://github.com/airbytehq/airbyte/blob/5cd605d2215161411741685b515c656492823064/airbyte-commons-protocol/src/test/java/io/airbyte/commons/protocol/AirbyteMessageMigratorTest.java#L15

edgao commented 1 year ago

@edgao split into upgrade/downgrade migration implementation

edgao commented 1 year ago

@edgao figure out how to use the e2e up/downgrade test tool here

grishick commented 1 year ago

Does this ticket depend on this epic being done (or any part of it being done): https://github.com/airbytehq/airbyte/issues/14276 ?

edgao commented 1 year ago

soft blocker: https://github.com/airbytehq/airbyte/issues/16814 - I'll need to switch a few v0 to v1 in my code once this is completed, since we're building the 1.0.0 -> 1.1.0 migration. But nothing preventing me from starting implementation.

other than that, none of the open issues are relevant to this issue.

edgao commented 1 year ago

current state - https://github.com/airbytehq/airbyte/pull/19240 has working migrations, but need to get platform acceptance tests to pass (there's a ton of protocol-related changes in there, apparently). Then we can merge this into the superbracnch (https://github.com/airbytehq/airbyte/pull/20036)

edgao commented 1 year ago

merged into #20036; closing