Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Separación del código #110

Open
categulario opened this issue Oct 9, 2018 · 5 comments
Open

Separación del código #110

categulario opened this issue Oct 9, 2018 · 5 comments

Comments

@categulario
Copy link
Contributor

Hoy como cada año (de preferencia en octubre) me sentí con ganas de darle un poco de cariño a karel.js, sin embargo, como cada año, encontré que es una tarea sin pies ni cabeza.

Se me ocurre lo siguiente: hay que despiezar el repo en sus justos componentes:

  • libkarel es python y este repo es karel.js, esto podría (debería) incluso ser un paquete en pypi
  • cpp quizá hasta en un branch? ¿esto se está usando?
  • manual ok, quizá su lugar si sea aquí, ¿que tal una carpeta docs? ¿qué tal documentar en el readme dónde están publicados esos docs? ¿que tal publicar los logs en github pages automágicamente como una tarea de travis?
  • cmd da la impresión de que la solución correcta es tener un paquete en npm llamado libkarel y que una aplicación de línea de comandos solo sea interfaz a esta biblioteca con las funciones.

Esta idea de tener una biblioteca con la parte interna de karel y que pueda ser importada por una aplicación de línea de comandos o por una GUI me es particularmente atractiva.

Solo son ideas para hacer mejor organizadas las cosas, simplificar el CI que viendo el travis-ci.yml es un desmadrito y hacer un poquito más ameno el desarrollo.

@lhchavez
Copy link
Member

lhchavez commented Oct 9, 2018

+1 a todo. libkarel no se en realidad dónde convenga más ponerlo (posiblemente en https://github.com/omegaup/omegajail ? en el repo principal?). lo de cpp se está usando para evaluar los códigos de karel en producción. la idea era usar WebAssembly / asm.js para que se use ese mismo código para la versión de JS en los navegadores.

@categulario
Copy link
Contributor Author

¿cuál es la función del libkarel? ¿qué lo usa?

@lhchavez
Copy link
Member

lhchavez commented Oct 9, 2018

se usa en el evaluador para validar las soluciones (usando un validador custom en vez de comparar que los XML sean idénticos)

@categulario
Copy link
Contributor Author

ya encontré los usos de libkarel en omegajail y minijail, creo que realmente debería estar en su propio repo, de hecho, he ido más lejos y creado esta propuesta:

@categulario
Copy link
Contributor Author

con eso podríamos quitar el pip que falla del CI y seguir adelante

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants