Adding a note to WIT.md about WIT interface version interop & host downgrades

Abierto Apto para principiantes
#609 2 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
68/100
Tipo de issue
Documentación
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
wasm

Línea de trabajo

Empieza leyendo WIT.md y la documentación enlazada de Wasmtime Linker sobre nombres y semver. Añade una nota clara que cubra las degradaciones de interfaz específicas del host y la posibilidad de que añadir funciones rompa a los guests que se ejecutan contra hosts más antiguos, distinguiendo este comportamiento de un requisito de la plataforma.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Hey all,

So thinking about interfaces in WIT it seems clear that there are two somewhat surprising eventualities that happen in hosts today (wasmtime, jco at the very least):

  1. Linked interfaces may be downgraded to match what is in the host (i.e. ns:pkg/iface@0.2.1 being downgraded to ns:pkg/iface@0.2.0)
  2. Partly due to (1) but in general adding functions to an existing interface (even with @since) could become a breaking change, because guests cannot predict whether hosts will have coverage or not.

This should likely be called out more clearly in WIT.md, similar to how it is called out explicitly in wasmtime's Linker documentation -- thoughts?

The ideal is to prevent people from being surprised when building components that target the newest version of a given interface but running in an older host/embedding and experiencing an unexpected runtime failure.

Downgrading is a host-specific quirk, and is technically not promised/required by a given platform (no guest can ensure that a certain platform does a certain thing with it's imports), but it is still surprising behavior that should probably be noted somewhere.

Lenguaje dominante
WebAssembly
Estrellas
1.4k
Forks
130
Merge medio
2 d 1 h
PR fusionados (30 d)
15

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de WebAssembly/component-model

Todos los issues de WebAssembly/component-model

Issues similares

Más issues de Documentation

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.