Skip to content
This repository was archived by the owner on Aug 17, 2022. It is now read-only.
This repository was archived by the owner on Aug 17, 2022. It is now read-only.

interface types versioning #139

@ricochet

Description

@ricochet

What will versioning for interface types look like? I recognize this is a can of worms and I'm exploring ways to avoid versioning myself, e.g. serialize complex structures that may have versioning differences similar to graphs in wasi_nn.

Because interface types are affine, this makes the problem perhaps more interesting than first glance.

A common approach to versioning in general is to attach a version field and have helpers manage deprecation or upgrading to a newer model. When linking wasm modules, something will need to recognize the version of a type and only link the latest version (one of many potential resolutions). Other ecosystems may have a package manager (wapm maybe?) that manages dependencies so at link time there is only one resolved version.

Another approach is for the ABI to have a major version attached to the signature, e.g. "myvariant_v2".

I hope all of the above approaches act as a decent straw man for something better :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions