clj-python / clj-python/libpython-clj
Extend CI coverage to all the mainstream architectures
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Clojure
- Estrellas
- 1.2k
- Forks
- 74
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
Hi,
there is no extended CI coverage to non-linux archs to indicate the lib can run on any of the non-linux architectures. It is currently broken on MS-Windows (see #246) and most probably has always been?
Moreover, the the build indicator on the front page although it indicates that the build is passing, it point to a 404 on the travis website.
In addition to this, the test suit fails to run on python greater than 3.10, due to the removal of a deprecated package path in python from collections.Mappings to collections.abc.Mappings. This is another indication that the travis suite (which I assume picks up the latest python version) is not working?
To reproduce on Linux run
[~/src/libpython-clj]$ python --version
Python 3.10.11
(venv)
[~/src/libpython-clj]$ clj -M:jdk-17:test
WARNING: Using incubator modules: jdk.incubator.foreign
Running tests in #{"test"}
21:15:09.121 [main] INFO libpython-clj2.python.info - Detecting startup info
21:15:09.316 [main] INFO libpython-clj2.python - Startup info {:lib-version "3.10", :java-library-path-addendum "/nix/store/lwzzgbnj41d657lpxczk6l5f7d5zcnj1-python3-3.10.11/lib", :exec-prefix "~/src/libpython-clj/venv", :executable "/home/chaos/src/libpython-clj/venv/bin/python3", :libnames ("python3.10m" "python3.10"), :prefix "~/src/libpython-clj/venv", :base-prefix "/nix/store/lwzzgbnj41d657lpxczk6l5f7d5zcnj1-python3-3.10.11", :libname "python3.10m", :base-exec-prefix "/nix/store/lwzzgbnj41d657lpxczk6l5f7d5zcnj1-python3-3.10.11", :python-home "/nix/store/lwzzgbnj41d657lpxczk6l5f7d5zcnj1-python3-3.10.11", :version [3 10 11], :platform "linux"}
21:15:09.316 [main] INFO libpython-clj2.python - Prefixing java library path: /nix/store/lwzzgbnj41d657lpxczk6l5f7d5zcnj1-python3-3.10.11/lib
21:15:09.433 [main] INFO libpython-clj2.python - Loading python library: /nix/store/lwzzgbnj41d657lpxczk6l5f7d5zcnj1-python3-3.10.11/lib/libpython3.10.so
21:15:10.140 [main] DEBUG libpython-clj2.python.ffi - Initializing Python C Layer
21:15:10.146 [tech.resource.gc ref thread] INFO tech.v3.resource.gc - Reference thread starting
21:15:10.149 [main] DEBUG libpython-clj2.python.ffi - Python Home: /nix/store/lwzzgbnj41d657lpxczk6l5f7d5zcnj1-python3-3.10.11
21:15:10.193 [main] INFO tech.v3.datatype.nio-buffer - Unable to find direct buffer constructor -
falling back to jdk16 memory model.
Testing libpython-clj2.classes-test
Testing libpython-clj2.ffi-test
Testing libpython-clj2.fncall-test
Testing libpython-clj2.iter-gen-seq-test
.# ..
ERROR in (instance-abc-classes) (ffi.clj:708)
Uncaught exception, not in assertion.
expected: nil
actual: java.lang.Exception: AttributeError: module 'collections' has no attribute 'Mapping'
at libpython_clj2.python.ffi$check_error_throw.invokeStatic (ffi.clj:708)
libpython_clj2.python.ffi$check_error_throw.invoke (ffi.clj:706)
libpython_clj2.python.ffi$simplify_or_track.invokeStatic (ffi.clj:973)
libpython_clj2.python.ffi$simplify_or_track.invoke (ffi.clj:954)
libpython_clj2.python.base$eval12483$fn__12492.invoke (base.clj:138)
#...
clojure.main.main (main.java:40)
As such, I'd like to make a suggestion to fix the above issue and extend the CI coverage across all mainstream architectures and python versions, PR to follow.
Guía de contribución
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.
Línea de trabajo
El issue señala la suite de Travis CI y clj -M:jdk-17:test como punto de entrada para la reproducción; empieza inspeccionando la configuración de CI y ejecutando ese comando con las versiones de Python indicadas. Comprueba el fallo instance-abc-classes y el indicador de build de la página principal. Se considera terminado cuando CI cubre las arquitecturas y versiones de Python solicitadas, la suite de pruebas pasa y el enlace del build ya no devuelve 404.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- clojure, python
- Área
- build-system, ci-cd, operating-systems
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100