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
Aprendiendo programación en R con la robot Karel #620
Comments
Thanks for submitting to rOpenSci, our editors and @ropensci-review-bot will reply soon. Type |
🚀 Editor check started 👋 |
Checks for karel (v0.1.1.9000)git hash: 4b057e67
(Checks marked with 👀 may be optionally addressed.) Package License: GPL-2 1. Package DependenciesDetails of Package Dependency Usage (click to open)
The table below tallies all function calls to all packages ('ncalls'), both internal (r-base + recommended, along with the package itself), and external (imported and suggested packages). 'NA' values indicate packages to which no identified calls to R functions could be found. Note that these results are generated by an automated code-tagging system which may not be entirely accurate.
Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table. basec (33), message (22), call (17), paste (10), for (4), all (3), list (3), nrow (2), apply (1), array (1), dim (1), emptyenv (1), if (1), integer (1), new.env (1), numeric (1), seq_len (1), which (1) karelbeepers_present (3), get_beepers_df_row (2), get_pkg_env (2), load_super_karel (2), move (2), right_is_clear (2), turn_around (2), avanzar (1), cargar_super_karel (1), check_user_world (1), check_walls (1), conseguir_amb (1), create_beepers (1), darse_vuelta (1), derecha_abierto (1), draw_karel_df (1), facing_east (1), facing_north (1), facing_south (1), facing_west (1), front_is_blocked (1), front_is_clear (1), generate_world (1), karel_has_beepers (1), karel_has_no_beepers (1), left_is_blocked (1), left_is_clear (1), no_beepers_present (1), pick_beeper (1), plot_static_world (1), put_beeper (1), put_hor_walls (1), right_is_blocked (1), run_actions (1), turn_left (1), turn_right (1) clicli_abort (21) dplyrn (4), tibble (3), filter (2), case_when (1) utilsde (7), data (2) ggplot2geom_point (2), scale_x_continuous (2), scale_y_continuous (2) magrittr%>% (6) methodsel (5) tidyrexpand_grid (4) statstime (3) purrrpmap_dfr (2) gganimategifski_renderer (1) 2. Statistical PropertiesThis package features some noteworthy statistical properties which may need to be clarified by a handling editor prior to progressing. Details of statistical properties (click to open)
The package has:
Statistical properties of package structure as distributional percentiles in relation to all current CRAN packages
All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the The final measure (
2a. Network visualisationClick to see the interactive network visualisation of calls between objects in package 3.
|
id | name | conclusion | sha | run_number | date |
---|---|---|---|---|---|
7347999524 | pages build and deployment | success | 1367b6 | 20 | 2023-12-28 |
7347980615 | pkgcheck | success | 4b057e | 13 | 2023-12-28 |
7347980611 | pkgdown | success | 4b057e | 23 | 2023-12-28 |
7347980603 | R-CMD-check | success | 4b057e | 5 | 2023-12-28 |
3b. goodpractice
results
R CMD check
with rcmdcheck
rcmdcheck found no errors, warnings, or notes
Test coverage with covr
Package coverage: 87.04
Cyclocomplexity with cyclocomp
The following functions have cyclocomplexity >= 15:
function | cyclocomplexity |
---|---|
check_user_world | 28 |
check_walls | 16 |
Static code analyses with lintr
lintr found the following 53 potential issues:
message | number of times |
---|---|
Avoid library() and require() calls in packages | 4 |
Lines should not be more than 80 characters. | 45 |
unexpected symbol | 4 |
4. Other Checks
Details of other checks (click to open)
✖️ The following function name is duplicated in other packages:
-
move
from BacArena, chess, cubing, red, rugarch, seqinr, SpaDES.tools
Package Versions
package | version |
---|---|
pkgstats | 0.1.3.9 |
pkgcheck | 0.1.2.11 |
Editor-in-Chief Instructions:
This package is in top shape and may be passed on to a handling editor
@mpru Thank you for the submission. I am working on finding a handling editor. |
@ropensci-review-bot assign @maurolepore as editor |
Assigned! @maurolepore is now the editor |
@mpru, es un placer editar tu paquete. Pronto empezaré a trabajar en la lista de verificación. Mientras tanto:
|
@mpru, perdón por la confusión. Dado que el paquete es multilingüe, el equipo editorial considera que la mejor opción es nominar un/a revisor/a en español y otro/a en inglés. |
Hola, @maurolepore, gracias por involucrarte en este envío. Ambos idiomas están bien para mí y me parece genial la idea del equipo editorial. No estoy familiarizado con los nombres de la lista de revisores como para nominar candidatos. ¿Tal vez vos puedas ayudarme con eso? |
Seguro ayudo con eso. Nuestra guia ofrece varias ideas sobre donde buscar revisore/as: https://devdevguide.netlify.app/es/softwarereview_editor.es#where-to-look-for-reviewers Yo usare esa misma guia pero en rOpenSci nos interesa tu opinion. Cuando encuentres algun/a candidato/a por favor consiera evitar conflictos de interes. |
Dear @mpru,thanks for your work. Editor checks were super smooth. You'll see some comments that require your attention. They are labeled ml01, ml02, and so on. The one(s) starting with a checkbox are required. The one(s) starting with a bullet are just for your consideration. Editor checks:
Editor commentsFIT rOpenSci accepts this package as part of the Champions program. VIGNETTES
TESTS
A search for "test_that(" shows that the test titles seem too general -- https://github.com/search?q=repo%3Ampru%2Fkarel%20test_that(&type=code And I see many expectations per tests, e.g.: https://github.com/mpru/karel/blob/master/tests/testthat/test-actions.R
-- https://r-pkgs.org/testing-basics.html#test-organisation
-- https://r-pkgs.org/testing-basics.html#expectations
For example see https://github.com/search?q=path%3Atests%2Ftestthat+repo%3Ampru%2Fkarel+library%28karel%29&type=code |
Thanks Mauro! I already started working in your comments, I'm reviewing and changing my unit tests. I'll suggest reviewers as well. |
@ropensci-review-bot seeking reviewers |
Please add this badge to the README of your package repository: [![Status at rOpenSci Software Peer Review](https://badges.ropensci.org/620_status.svg)](https://github.com/ropensci/software-review/issues/620) Furthermore, if your package does not have a NEWS.md file yet, please create one to capture the changes made during the review process. See https://devguide.ropensci.org/releasing.html#news |
Hi @maurolepore. I'm sorry I couldn't do it sooner but I wanted to let you know that I worked on your comments and think it might be ready to give it another try. Vignettes
Tests
Others
Suggested reviewers
That's all for now, thanks. |
@mpru thanks a lot for this! It will make the reviewers's job easier.
I think it's OK. That's the kind of increment I see with
I think you're right, and Airtable is only useful to editors with the right access permission. I'll resume the search for reviewers. |
@ropensci-review-bot assign @vjimenez9 as reviewer |
@vjimenez9 added to the reviewers list. Review due date is 2024-03-14. Thanks @vjimenez9 for accepting to review! Please refer to our reviewer guide. rOpenSci’s community is our best asset. We aim for reviews to be open, non-adversarial, and focused on improving software quality. Be respectful and kind! See our reviewers guide and code of conduct for more. |
@vjimenez9: If you haven't done so, please fill this form for us to update our reviewers records. |
@vjimenez9, dado que el paquete es multilingüe, el equipo editorial considera que la mejor opción es nominar un/a revisor/a en español y otro/a en inglés. Podias revisarlo en español? |
@ropensci-review-bot assign @joelnitta as reviewer |
@joelnitta added to the reviewers list. Review due date is 2024-03-24. Thanks @joelnitta for accepting to review! Please refer to our reviewer guide. rOpenSci’s community is our best asset. We aim for reviews to be open, non-adversarial, and focused on improving software quality. Be respectful and kind! See our reviewers guide and code of conduct for more. |
@joelnitta: If you haven't done so, please fill this form for us to update our reviewers records. |
📆 @vjimenez9 you have 2 days left before the due date for your review (2024-03-14). |
Hi! Hoy es el ultimo dia de revisión que tengo. Ya prácticamente revisé todo el paquete y tengo mis comentarios y anotación...Entiendo que los agrego al documento PlatillaDeRevisionROpenSci.md. y subo este documento acá. Cierto? |
Aqui el resultado de mi revisión: Revisión de un paquetePor favor trata de marcar tantas casillas como te sea posible y elabora tus argumentos en comentarios abajo de cada una. Tu revisión no esta limitada a estos temas, tal como se describe en la guia para revisores (Reviewer Guide) Por favor describe cualquier relación de trabajo que tengas/hayas tenido con los autores del paquete)
DocumentaciónEl paquete incluye todos los siguiente tipos de documentación:
Funcionalidad
Estimación de horas dedicadas a la revisión:
Comentarios de la revisión
Mis notas: Empece haciendo la instalación en una computadora con SO Ubuntu y me marcó Warning in install.packages :
package ‘Karel’ is not available for this version of R Averigundo un poco, encontré que No hay una versión para ubuntu. Sería util que lo dijeran desde el README. Luego hice la instalación en una macOS. > install.packages("karel")
also installing the dependencies ‘scales’, ‘lpSolve’, ‘ggplot2’, ‘transformr’, ‘tweenr’, ‘gganimate’, ‘gifski’
Warning in install.packages :
lzma decoder corrupt dataY Solución: descargar los compilables... ejecutar_acciones()
ℹ The package "gifski" is required to use the `gifski_renderer`
✖ Would you like to install it? Me indica que no esta instalado un compilador...y me pide instalar rust...¿Porque ? Bueno pues instalo rust: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh Al volver intentar me dice: Error in loadNamespace(x) : there is no package called ‘gifski’ Vuelvo a instalar el paquete, y me dice: There is a binary version available but
the source version is later:
binary source needs_compilation
gifski 1.6.6-1 1.12.0-2 TRUE
Do you want to install from sources the package which needs compilation? (Yes/no/cancel) Durante 3 ocasiones le dije si y me volvía a marcar que la instalación se daba con errores, la ultima vez, le dije que no compilara...Y jalo!! Del texto : En general es muy bonito "el karel" . Tengo algunas sugerencias de modificación en el texto, que son eso "sugerencias" o comentarios de mi punto de vista. Siempre en el afan de mejorar o hacer mas claro el texto. ====Del texto: Dice: Dice: Dice: Sugerencia: Dice: Dice: Debe decir: Dice: Comentario: No estoy tan de acuerdo que el pseudocodigo sea un "lenguaje artificial e informal". Dice: Sugerencia: En la sección de los errores creo que sería util hablar de que hay dos tipos de errores: los lógicos y los sintácticos. Estos últimos tienen que ver cuándo las instrucciones, o nombres de variables no son correctamente escritos y el programa no puede "interpretarlos". Los errores lógicos, se generan con instrucciones que el programa puede interpretar, pero que realizan cosas que no queremos. Estoy de acuerdo que el procesador es el lenguaje que "procesa, interpreta y ejecuta" las instrucciones....Pero la frase "Todos los elementos disponibles para ser utilizados por el procesador constituyen su entorno o ambiente." Yo digo que no son elementos disponibles para el procesador, son elementos disponibles para el programador. En la sección, organización de RStudio:Me parece que hay que tener cuidado con decir que el editor es "un Word muy simple", puede sugerir erróneamente que se puede usar word para editar un archivo, cosa que es completamente errónea. Necesitamos un poderoso editor de texto plano como lo proporciona RStudio que puede hacer muchísimas cosas que un "simple word" no puede hacer durante la creación de un archivo de programación. Dice: Comentario: Dice: Sugerencia: Dice: Sugerencia: (Porque en los sistemas mutiusuario no vez todo lo que ha ejecuta R, solo lo que tu usuario ha ejecutado) Dice: Tu ejemplo de la consola me confunde un poco: 1 + 2
#> [1] 3
5 * 3
#> [1] 15
exp(2) ¿No debería la instrucción ir después del prompt ">". Y justo la respuesta de R ir sin prompt? O ¿que es #> ? En todo caso, describe al usuario cual es el prompt del sistema que esta en espera de una instrucción y con cual prompt (si existe) , R te muestra los resultados En la sección conociendo a karelLa función generar_mundo tiene un argumento "mundo001". Podrias aprovechar este hecho para introducir el concepto de "argumento", y porque los paréntesis vacíos a veces es la ausencia de argumentos o la existencia de argumentos definidos por default. Descomposición algorítmicaEste es un tema muy importante y muy complejo, pero en el flujo de tu documentación siento un salto cuántico importante. Pasan de 0 a 100 en un solo acelerón...Pero no tengo una propuesta concreta de como "deshacelerar" En esta sección también varias aseveraciones que me parecen desafortunadas. Por poner solo un ejemplo (hay varios) : Comentario: Yo creo en este caso, la función no es definida por R, es definida por el usuario, y esta definición debe estar "antes" de ser invocada en un programa de R. Documentación de los subalgoritmosEn el propio texto indicas la importancia de documentar, para que se usa tu función y en el ejemplo nunca se especifica para qué sirve. Nunca se indico qué significan los # al inicio de la linea y sería muy util para los usuarios, así que se puede aprovechar esta sección agregando un comentario que explica que la documentación se introduce como "comentarios" que son antecedidos por # Podrías poner al menos una liga con lineamientos para la documentación de funciones (por ejemplo: https://combine-australia.github.io/r-pkg-dev/documenting-functions.html). O cualquier otra Estructuras condicionales simplesDice: Sugiero que diga: Dice: Debe decir: Comentario: siempre se verifica, y esta verificación a veces arroja verdadero a veces falso. Pero veo que a lo largo del texto se usa muchas veces "verificar" como sinónimo de la evaluación verdadera, entonces, quizá solo al inicio, indicar esta "interpretación" de la palabra verificar. Algo así como: "Decimos que un enunciado se verifica, cuando su evaluación lógica es verdadera" Dice: Dice: Comentario: Dice: Sugerencia: Dice: for (<variable> in <valor1>:<valor2>) {
...Acción/es...
} Sugerencia: for (<variable> in <valorInicial>:<valorFinal>) {
...Acción/es...
} |
@ropensci-review-bot submit review #620 (comment) time 6 |
Logged review for vjimenez9 (hours: 6) |
Muchas gracias @vjimenez9 Edite tu comentario para mostrar tu revision directamente aca. Es la forma mas habitual. Perdon que me olvide de aclararlo. |
📆 @joelnitta you have 2 days left before the due date for your review (2024-03-24). |
¡Hola @vjimenez9! Muchísimas gracias por haber aceptado revisar este paquete y por el esfuerzo y dedicación puestos en esta tarea. Tus observaciones son muy útiles. A continuación voy a ir respondiéndolas: Documentación
Acerca de la instalación en Ubuntu, no he podido reproducir este inconveniente. De hecho, el paquete ha sido desarrollado en Ubuntu, ya que es el sistema operativo con el que trabajo. Utilicé De todas formas, veo en la salida que muestras que dice "Karel" con mayúscula, el paquete se llama "karel" con minúscula. ¿Puede que sea esa la razón por la cual no lo pudiste instalar? Tampoco hemos detectado problemas de instalación en Windows o en Posit Cloud, que son los entornos más utilizamos en clase. Además de correr pkgcheck, he utilizado devtools para chequear el paquete con check_win, abajo pongo los enlaces, no parece haber habido algún problema relacionado a la instalación: Con respecto a macOS, he corrido Funcionalidad El punto Directrices de empaque no ha sido tildado, ¿podrías orientarme acerca de qué aspecto revisar? Entiendo que relacionado con esto debe estar el comentario de la revisón que dice:
Comentarios de la revisión
El paquete no ha tenido otra revisión por fuera de rOpenSci, pero participar del presente proceso de revisión de rOpenSci a través del programa Champions satisface este requisito.
Cambiar la estructura de objetos diseñada para graficar a Karel en cada paso implicaría reformar todo el código base del paquete. En su uso no se me han presentado situaciones que me hicieran pensar que una reestructuración sea necesaria. ¿Consideras estrictamente necesario este cambio? ¿O es sólo una observación? Sección Mis notas
Ver mi comentario anterior al respecto. Sugerencias de modificación en el texto. Con respecto a tus sugerencias de mejoras para el texto de los tutoriales, te agradezco por cada una de ellas y por haberlo leído con atención. Incorporé casi todas en el commit mpru/karel@fb65a4c, dejando de lado sólo algunas porque se refieren a cuestiones que en realidad estaban resueltas o presentes en otras partes, o por diferencia de criterio. Bueno, esto es lo que tengo para responder con respecto a tu revisión. Te agradezco nuevamente por ĺa buena voluntad y disposición de evaluar mi trabajo, espero que podamos seguir trabajando hasta lograr el objetivo. |
Estimado @mpru: Tienes razón, es muy probable que el error fue por la K mayúscula de Karel en la instalación de ubuntu. Esta fue la razón por la que no puse el tilde en "directrices de empaque". porque no me funcionaba en ubuntu y hubo complicaciones en mac, básicamente fue esa la razón. Reestructurar el código para reducir duplicidad o simplificarlo, es una sugerencia, y no un requisito obligatorio. No tengo problema con que se quede como esta. Finalmente funciona, y funciona bien. Tu herramienta es muy bonita, pero finalmente tengo ya varios años generando material para la enseñanza de programación y por eso me atreví a SUGERIR tan detalladamente en el texto, siempre con el objetivo de mejorarlo. Me parece que la mayoría de lo vital quedo plasmado. Supongo que con esto terminan mis sugerencias y no me queda mas que felicitarte. |
@joelnitta just a friendly reminder that we're looking forward to your review :-) |
Package Review
DocumentationThe package includes all the following forms of documentation:
Functionality
Estimated hours spent reviewing: 5
Review CommentsTo-do list
UIMany of the error messages are preceded by TestsFor There is a lot of repeated code in
It would be good to add a test coverage badge so we can verify what percentage of functions are included in tests. ExamplesI recommend use of Multilingual documentationAs far as I know, this package is unique in its approach to multilingual functionality and documentation. I applaud the author for this commitment to breaking down linguistic barriers. However, there are several aspects to consider carefully here. I am a little concerned about the multilingual aliases for function names. First, I think ultimately it could be counter-productive for the learners. For better or worse, English is the standard language used in programming. If the goal is to teach students programming, at some point they will have to deal with words that are in English. We can even see this in Apart from function names, I think localization of function UI and documentation is absolutely a plus and should be done. I see this as falling into three main categories: localization of UI, documentation of functions in the package (help files), and the package website. This package is pushing the limits of what R can do in terms of multilingual functionality, and as I describe below, mature solutions for each of these are not yet available in some cases. For localizing the UI (function messages), I recommend the potools package (and PO files). This provides a very clean way to localize a package. Once it is set up, the user should have a seamless linguistic experience: if they are using a computer with a Spanish locale, all of the package messages will be in Spanish; same for English, etc. To get started with @eliocamp is working on a package to localize help file contents, rhelpi18n. It should eventually provide a similar seamless experience as UI localization with PO tools, but unfortunately does not seem ready for production use yet. So honestly I am not sure what to do here. I wish there was a way to provide a help file in an alternate language that did not require a different function name. Actually, this may be a point in favor of keeping function aliases: it actually allows you to provide help files in different languages. For the website, it would be ideal if there was a "language button" that could be clicked to switch between languages on a given page. With the current setup, both languages (Spanish and English) are displayed in a single webpage, but a given user probably only needs to see one or the other. Also, while this approach works OK for two languages, it would likely become unusable if any more were added. It would be great if pkgdown fully supported multilingual websites, but unfortunately this does not seem to be the case. Although pkgdown can provide website elements in different languages by setting a YAML parameter, it is limited to making a single webpage in one language. Since this is currently set to Spanish, various website elements appear in Spanish even though some of the content is in English. So, in absence of a genuine solution from pkgdown, I wonder if a work-around via forking the package and maintaining a website in a different language from there could be an option. This is not ideal, but it would scale better if multiple languages were to be implemented. VignettesThis package is also unique in that much of the vignette contents are actually lessons teaching programming in R with I also noticed that much of the lesson content is focused on control flow. While this makes sense as a general feature of programming languages, R these days is often used for data analysis, which may not necessarily put as much emphasis on control flow. I personally almost never use Other random comments
|
@ropensci-review-bot submit review #620 (comment) time 5 |
Logged review for joelnitta (hours: 5) |
Thanks @vjimenez9 and @joelnitta for your reviews! @mpru I see you already responded to @vjimenez9's reivew (in #620 (comment)). If that's your final response to that review, then please simply acknowledge it; else please add whatever you feel necessary and/or refer to #620 (comment) when appropriate. Also please respond to @joelnitta's review. We recommend responding within the next 2 weeks.
|
@mpru: please post your response with Here's the author guide for response. https://devguide.ropensci.org/authors-guide.html |
@maurolepore hoy se cumplen las dos semanas de plazo para completar mis respuestas, pero aún no he tenido oportunidad de hacerlo. Pido disculpas por la demora, espero hacerlo a la brevedad. |
OK, gracias por avisar :-) |
Nombre de la Persona Encargada: Marcos Prunello
Usuario GitHub de la Persona Encargada: @mpru
Repositorio: https://github.com/mpru/karel
Versión Enviada: 0.1.1.9000
Tipo de Envio: Estándar
Editora: @maurolepore
Revisores: @vjimenez9, @joelnitta
Archivo: TBD
Versión Aceptada: TBD
Idioma: es
Alcance
Por favor, indica qué categoría(s) aplican a este paquete. Las puedes encontrar en nuestras políticas de inclusión de paquetes (Inglés). Por favor, tilda todas las apropiadas. Si no estás seguro, te sugerimos que comiences un pre-envío.
Explica cómo y por qué el paquete encaja dentro de estas categorías (1 a 3 oraciones):
Este paquete no entra en ninguna categoría, ya que está relacionado con Educación. Fue aceptado para el Programa Campeones, bajo la supervisión de @yabellini.
¿Cuál es la audiencia esperada y las aplicaciones científicas de este paquete?
Este paquete es utilizado por docentes para enseñar conceptos introductorios sobre programación, como descomposición algorítmica, declaraciones condicionales, bucles, etc., a estudiantes que posteriormente utilicen R como lenguaje de programación para otras tareas. Ha sido creado con un enfoque multilingüe que actualmente incluye los idiomas español e inglés, pero que puede ser expandido a otros de forma sencilla.
¿Hay otros paquetes de R que logren el mismo objetivo? Si los hay, ¿cómo se diferencian del tuyo, o alcanzan nuestro criterio del mejor de su categoría (documento en Inglés)?
No actualmente, según mi conocimiento.
(Si aplica) ¿Tu paquete cumple con nuestras guías de Ética, Privacidad de Datos e Investigación de Sujetos Humanos (documento en Inglés)?
No aplica.
Si ya has hecho una consulta de pre-envío, por favor pega el enlace al issue correspondiente, una publicación del foro, u otra discusión. Alternativamente, etiqueta al editor (con @tag) con el que te contactaste.
No realicé consulta de pre-envío.
(Si aplica) Explique las razones de los elementos
pkgcheck
que su paquete no puede pasar.pkgcheck pasa cuando lo ejecuto localmente. He observado dos advertencias en el CI, pero creo que están relacionadas con pkgcheck y GitHub Actions, y no relacionadas directamente con mi paquete. En cuanto al estilo, obtengo la sugerencia de evitar largas líneas de código. Sin embargo, las únicas líneas de código que superan los 80 caracteres de ancho corresponden a cadenas de texto con mensajes en diferentes idiomas para los usuarios, dentro de las cuales prefiero no incluir saltos de línea.
Revisiones Técnicas
Tilda los siguientes items para confirmar que los has completado:
Este paquete:
Opciones de Publicación
¿Tienes intenciones de subir este paquete a CRAN?
¿Tienes intenciones de enviar este paquete a Bioconductor?
¿Deseas enviar un Artículo de Aplicaciones sobre tu paquete a Methods in Ecology and Evolution (documento en Inglés)? Si es así:
Opciones para MEE
Código de Conducta
The text was updated successfully, but these errors were encountered: