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

[BUG] minVersion returns 0.0.0 when a 0.0.0 prerelease is the true minimum

Abierto Apto para principiantes
#934 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 4 días

@thisisshivamtiwari ya está trabajando en esto.

Desde el 29/10/2026.

  • #936 de @thisisshivamtiwari — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript, node.js
Área
backend

Línea de trabajo

Empieza por el atajo señalado en el issue en ranges/min-version.js y luego revisa las pruebas relacionadas con minVersion y cómo se comparan las versiones preliminares con 0.0.0. Reproduce los ejemplos del issue y comprueba que se devuelva correctamente el mínimo para >=0.0.0-alpha <1.0.0 y * con includePrerelease. Se considera terminado cuando esos casos pasan sin cambiar el comportamiento documentado de la versión más baja.

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

Descripción

Bug Needs Triage
Is there an existing issue for this?
  • I have searched the existing issues
Current Behavior

This is admittedly a bit pedantic, but minVersion seems to treat 0.0.0 as a special case. A prerelease lower bound is respected on every tuple except 0.0.0:

semver.minVersion('>=1.0.0-alpha <2.0.0').version // '1.0.0-alpha'
semver.minVersion('>=0.0.1-alpha <1.0.0').version // '0.0.1-alpha'
semver.minVersion('>=0.0.0-alpha <1.0.0').version // '0.0.0'

The same thing happens with includePrerelease, where 0.0.0-0 satisfies * but 0.0.0 is returned:

semver.minVersion('*', { includePrerelease: true }).version // '0.0.0'

This comes from the shortcut at the top of ranges/min-version.js, which tries 0.0.0 before 0.0.0-0 and returns the first one that matches.

Expected Behavior

I'd expect '0.0.0-alpha' and '0.0.0-0' respectively, since the README describes minVersion as returning "the lowest version that can match the given range", and the rest of the library agrees that these sort below 0.0.0 (lt, sort, minSatisfying).

I couldn't find anything (docs, tests, or the original PR npm/node-semver#241) suggesting 0.0.0 is meant to be special here, so I suspect the shortcut just wasn't written with prerelease lower bounds in mind. But if this is intentional it might be worth documenting.

Steps To Reproduce
  1. npm install [email protected]
  2. Run node -e "console.log(require('semver').minVersion('>=0.0.0-alpha <1.0.0').version)"
  3. See 0.0.0
Environment
  • npm: 11.20.0
  • Node: 26.12.1
  • OS: macOS 26.6.1
  • platform: Apple Silicon (arm64)
  • semver: 7.8.5 (same code on main)

AI disclosure: this issue was discovered with AI assistance

Lenguaje dominante
JavaScript
Estrellas
5.5k
Forks
622
Merge medio
4 d 23 h
PR fusionados (30 d)
4

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 npm/node-semver

Todos los issues de npm/node-semver

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.