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

Typed input and output

Abierto
#244 2 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
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
ruby

Línea de trabajo

Empieza por lib/temporal/concerns/typed.rb en la línea 22 y revisa cómo gestionan actualmente las actividades y los workflows la serialización de entradas y salidas. El issue necesita un enfoque acordado para la validación reutilizable con dry-struct, las salidas tipadas y la validación antes de la activación del workflow; el trabajo estará terminado cuando incluya una API definida y tests para cada comportamiento.

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

Descripción

Hi! I am trying to get rid of JSON.parse(input) and JSON.dump(output) in activities/workflows and wanted to define Input and Output classes with dry-struct to define the structure.

Then I found this line in https://github.com/coinbase/temporal-ruby/blob/master/lib/temporal/concerns/typed.rb#L22

unless klass.is_a?(Dry::Types::Type)

Now I am stuck on how to make reusable structs with validation for workflow/activity params. I have three questions:

  1. Does it make sense to change condition in typed.rb to allow dry structs?
  2. How I can add typed output, so I don't need to serialize and deserialize outputs multiple time?
  3. Any best practices to validate inputs before activating the workflow?

Any ideas how to solve this?

Lenguaje dominante
Ruby
Estrellas
288
Forks
113
Merge medio
10 d 15 h
PR fusionados (30 d)
2

Guía de contribución

Abrir la guía de contribución

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 coinbase/temporal-ruby

Todos los issues de coinbase/temporal-ruby

Issues similares

Más issues de Ruby

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.