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

[p5.js 2.0+ Bug Report]: FES omits parameter position for any parameter after the first

Abierto
#9,151 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

@Shruti2110-coder ya está trabajando en esto.

Desde el 8/9/2026.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript

Línea de trabajo

Comienza con src/friendly_errors/fes.js:134 y las ramas invalid_type y custom de param_validator.js en las líneas 539 y 553. Ejecuta el comando de Vitest indicado para reproducir los ordinales faltantes y, a continuación, verifica que los parámetros posteriores reciban la posición localizada adecuada y que los mensajes de validación afectados estén cubiertos por pruebas.

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

Descripción

Internationalization p5.js 2.0+
Most appropriate sub-area of p5.js?
  • Accessibility
  • Color
  • Core/Environment/Rendering
  • Data
  • DOM
  • Events
  • Image
  • IO
  • Math
  • Typography
  • Utilities
  • WebGL
  • WebGPU
  • p5.strands
  • Build process
  • Unit testing
  • Internationalization
  • Friendly errors
  • Other (specify if possible)
p5.js version

current main (2.x dev)

Web browser and version

Chrome for Testing (Chromium, via Vitest browser runner)

Operating system

macOS

Steps to reproduce this

Any function whose parameter validation fails on the second or later
parameter produces a message with the position word missing and a doubled
space:

Expected string at the  parameter in loadModel().

Failures on the first parameter are correct:

Expected Color at the first parameter in background().

Reproduction

npx vitest run test/unit/visual/cases/webgl.js 2>&1 | grep "Expected"

Eight instances from loadModel(), all missing the ordinal, alongside a
correct background() message in the same run.

Cause

src/friendly_errors/fes.js:134 holds a single-entry lookup:

ordinals: [TL.tl`first`],

param_validator.js reads it in the invalid_type (line 539) and custom
(line 553) branches:

const position = FES.premade.ordinals[currentError.path.join('.')];

Any Zod error path other than [0] returns undefined. Line 542 interpolates
it with no guard, so undefined renders as an empty string between two
spaces.

Confirmed by adding a temporary log in the invalid_type branch:

PATH: [1] ORDINAL: undefined     (loadModel — broken)
PATH: [0] ORDINAL: first         (texture — correct)

Origin

Commit f5b75951b ("Work in progress proof of concept FES revamp using new
translation utility", Apr 2026) introduced FES.premade.ordinals with the
single placeholder entry and pointed these two branches at it.

param_validator.js:107 still holds the complete list — 'first' through
'tenth' — from the earlier implementation, but only buildTypeMismatchMessage
uses it. So the file has two ordinal lists and the branches that matter use
the incomplete one.

Related prior work: #4626 / PR #4629 added localised ordinals in v1.1.3. The
proposal there was "a list of ordinal full forms (first, second, third, ...)
for numbers 1 to 10 for all languages in the translation files", which is
presumably what FES.premade.ordinals was intended to become.

Scope

Affects every p5 function whose validation fails after the first parameter,
not just loadModel.

I'd like to work on this if approved, but since the fix touches translation
strings I'd want a steward's view on the right approach first.

Node v22.22.2, Vitest 4.1.10.

Lenguaje dominante
JavaScript
Estrellas
24.1k
Forks
3.9k
Merge medio
3 d 10 h
PR fusionados (30 d)
30

Preparar el entorno

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 processing/p5.js

Todos los issues de processing/p5.js

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.