Skip to contents
ES

Este meetup ofrece una visión general del flujo de trabajo para el desarrollo de paquetes, con un enfoque en las pruebas unitarias y CI/CD.

Importancia

Un paquete es un conjunto de convenciones para organizar tu código y los artefactos relacionados: si sigues esas convenciones, obtienes un montón de herramientas gratis. – https://mastering-shiny.org/scaling-packaging.html

Audiencia

Científicos de datos con algo de experiencia escribiendo código y funciones en R, pero con poca o ninguna experiencia en el desarrollo de paquetes en R.

Objetivos

Agregar infraestructura básica:

  • Crear un paquete en R.
  • Ejecutar R CMD check para detectar y corregir problemas.
  • Configurar R CMD check en GitHub Actions.
  • Construir el website localmente.
  • Configurar el despliege del website en GitHub Pages.
  • Crear un PR y observar la ejecución de los flujos de trabajo.
  • Fusionar el PR para ver el sitio web en vivo.
  • Crear un checklist de infraestructura adicional a considerar.

Crear y probar una función:

  • Crear una función simple.
  • Probarla.
  • Reportar la cobertura.
  • Ampliarla usando TDD.
  • Documentarla.
  • Ejecutar R CMD check.
  • Construir el sitio web localmente.
  • Crear un PR.

Checkear la integracion con una dependencia reversa:

  • Identificar un paquete con una dependencia reversa.
  • Revisar cómo correr tests, checks, e instalar un paquete.
  • Ver cómo validar la clase de un input.
  • Ver cómo crear un mensaje de error informativo.
  • Aprender a usar “snaphsot tests”.
  • Aprender a gestionar versiones y el changelog.
  • Probar una dependencia reversa localmente
  • Probar una dependencia reversa en GitHub Actions
  • Leer y responder a fallos de prueba.
EN

This meetup overviews the package development workflow, with a focus on unit tests and CI/CD.

Importance

A package is a set of conventions for organising your code and related artefacts: if you follow those conventions, you get a bunch of tools for free. – https://mastering-shiny.org/scaling-packaging.html

Audience

Data scientists with some experience writing R code and functions but little or no experience developing R packages.

Objectives

Add basic infrastructure:

  • Create an R package.
  • Run R CMD check to detect and fix problems.
  • Create a checklist of additional infrastructure to consider.
  • Setup a workflow to run R CMD check on GitHub Actions.
  • Build the package website locally.
  • Setup a workflow to build and deploy a website to GitHub Pages.
  • Run R CMD check.
  • Create a PR and watch the workflows run.
  • Merge the PR to see the website live.

Create and test a function:

  • Create a simple function.
  • Test it.
  • Report coverage.
  • Extend it using TDD.
  • Document it.
  • Run R CMD check.
  • Build the website locally.
  • Create a PR.

Check integration with a reverse dependency:

  • Identify a package with a reverse dependency
  • Review how to test, check, and install a package
  • See how to assert the class of an input
  • See how to create informative error messages
  • Learn how to use snapshot tests
  • Learn how to manage versions and the changelog
  • Test a reverse dependency locally
  • Test a reverse dependency on GitHub Actions
  • Read and respond to test failures