marker ordering is nondeterministic
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- build-system
Línea de trabajo
Comienza ejecutando repetidamente poetry export --without-hashes -f requirements.txt e inspecciona la ruta de generación de marcadores responsable de los requisitos de plataforma. Reproduce el orden alternante con el ejemplo de colorama indicado. Se considera terminado cuando los componentes equivalentes (a || b) se emiten en orden lexicográfico y las exportaciones repetidas producen una salida de requirements estable.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The ordering of system platform requirements in the marker section produced by poetry-plugin-export appears to be nondeterministic. Repeated invocations of poetry export --without-hashes -f requirements.txt in our project will at a roughly coin flip probability produce either of the following two requirement specs:
-colorama==0.4.6 ; (sys_platform == "win32" or platform_system == "Windows") and python_full_version == "3.9.21"
+colorama==0.4.6 ; (platform_system == "Windows" or sys_platform == "win32") and python_full_version == "3.9.21"
Obviously (a || b) && c and (b || a) && c are logically equivalent, so there's no problem here in terms of actually installing the project, but we have precommit hooks and CI tooling to ensure that requirements.txt is kept up to date with changes in poetry.lock, and the fact that the marker section may change arbitrarily is causing build and check failures.
Unfortunately this is also not currently easily possible to work around by using a "smarter" approach to checking equivalence with the existing packaging tooling; packaging.requirements.Marker.__eq__() appears to be a simple string comparison:
>>> from packaging.requirements import Requirement
>>> r1 = Requirement('colorama==0.4.6 ; (sys_platform == "win32" or platform_system == "Windows") and python_full_version >= "3.9.21"')
>>> r2 = Requirement('colorama==0.4.6 ; (platform_system == "Windows" or sys_platform == "win32") and python_full_version >= "3.9.21"')
>>> r1 == r2
False
Request: any (a || b) component of the generated marker should be sorted lexically.
- Lenguaje dominante
- Python
- Estrellas
- 336
- Forks
- 60
- Merge medio
- 10 min
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de python-poetry/poetry-plugin-export
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
-
Does not installAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
python-poetry/poetry-plugin-export#341 · 5 comentarios · 1 reacción ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
python-poetry/poetry-plugin-export#340 · 1 comentario ·
-
Feature request - Add a comment to auto-generated files stating the files are auto-generatedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 52/100
Todos los issues de python-poetry/poetry-plugin-export
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
jejjohnson/gaussx#752 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
521xueweihan/HelloGitHub#4270 ·
-
enhancement owner: den-haag
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Los mantenedores suelen responder en 6 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
ok-oldking/ok-wuthering-waves#1828 ·
Los mantenedores suelen responder en 1 día
-
lesson-submission pending-review
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
Ikalus1988/MisakaNet#4512 ·
Los mantenedores suelen responder en 1 día