Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

T11 - client automatic era detection

Abierto
#249 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
38/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
scala
Área
api, networking

Línea de trabajo

Comienza con T10 (issue 248) y sigue el flujo server/discover del cliente a través de HTTP y stdio, incluidos los clientes síncronos y de streaming, y las implementaciones de ZIO, Ox y Pekko. Usa la matriz de compatibilidad para organizar la cobertura de unit tests y, después, ejecuta los tests de integración legacy existentes de everything-server con la política predeterminada. El trabajo incluye el comportamiento de detección requerido, los errores de versión, la cobertura de compatibilidad y las actualizaciones de docs/client/protocol.md.

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

Descripción

2026-07-28 version support

Target branch: 2026-07-28-protocol-support

Requires:

A chimp client with no pinned protocol version works against 2026-07-28 servers and 2025-xx servers without configuration. Users who upgrade chimp and talk to a legacy server see no change.

Policy

  • The client has a version policy, automatic detection is the default. A fixed version, as today, is still available and skips detection.
  • With a fixed stateless version the client behaves as in T10. With a fixed legacy version it behaves as today.

Detection

  • Over HTTP the first request is server/discover. A discover result, or a recognised 2026-07-28 error such as -32022, means the server is modern. Any other outcome, including a 400, 404 or 405 whose body is not a recognised modern error, means the server is legacy.
  • Over stdio the first request is server/discover as well. A timeout also means legacy.
  • The decision never depends on one specific error code.
  • After a modern decision the client uses the stateless wire and negotiates the version on -32022 as in T10. After a legacy decision the client sends initialize with the highest legacy version chimp supports.
  • The decision is made once per client and reused for its lifetime.

Errors

  • A modern server that shares no version with chimp fails the client with an error that names both version lists.
  • A legacy server that rejects initialize fails the client as it does today.

Coverage

  • The rules above hold for the sync and streaming clients, over HTTP and stdio, on ZIO, Ox and Pekko.
  • The existing integration tests against the legacy everything server pass with the default policy and no other change.
  • Unit tests cover every row of the spec compatibility matrix that involves a chimp client: modern, legacy and dual-era client against modern and legacy servers.

Spec:

Conformance scenarios that must pass after this task: none new.

Docs: yes.

  • docs/client/protocol.md: the detection rules, what the client sends first, and how to pin a version.
Lenguaje dominante
Scala
Estrellas
102
Forks
10
Merge medio
2 d 9 h
PR fusionados (30 d)
13

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 softwaremill/chimp

Todos los issues de softwaremill/chimp

Issues similares

Más issues de Scala

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.