Skip to content

Project Proposal

Jasmine Daly edited this page May 23, 2024 · 1 revision

Proposal: Improving the Skills of R Package Maintainers

Project Goals

  1. Educate a diverse cohort of young R developers to acquire the technical knowledge and skills required to participate in the continuous integration of R packages into the R ecosystem.
  2. Develop a new documentation solution with a Quarto website that is user-friendly for new R package maintainers on CRAN.
  3. Identify common CRAN submission issues and create a framework of "problems" and "solutions" that are easy to implement and discover.

Project Background

The CRAN Team often sees the same issues cropping up in package (re-)submissions to CRAN. The solution may be documented in the Writing R Extensions manual or the CRAN Repository Policy, however, it may take package maintainers some time to work out how to fix their package.

For new submissions, this can mean a long delay in getting a nearly finished package onto the official repository. For re-submissions, maintainers may miss the deadline set by the CRAN Team to fix the package, meaning a package can be temporarily or permanently archived, affecting users and other package developers. These all present a high barrier of entry to developing and submitting R packages to CRAN for new R developers.

Project Scope

The current R ecosystem of package development is filled with diverse practices and standards on CRAN have changed over time. By creating user-friendly documentation, new R package maintainers can expand their technical skillset by discovering the "solution" to their "problem" on their own resulting in a quicker submission and publication process. This may also increase their confidence and commitment to contribute and share their open source code on CRAN.

This project will create a "cookbook style" problem and solution documentation that directly documents how to fix common issues, making it easier for maintainers to respond to feedback from the CRAN Team.

Project tasks include:

  • Gathering data from recent CRAN (re-)submissions to identify common issues.
  • Setting up scaffolding for the documentation with Quarto.
  • Identifying any existing documentation that can be referenced in writing solutions.
  • Writing new documentation in easy to navigate problem/solution format.
  • Sharing with the community of package maintainers and revising in the light of feedback.
  • Integrating with the CRAN Team's workflow for submissions.
  • Developing a training webinar for the new documentation.

Work that is out-of-scope for this project:

  • Extensive re-writes of material in the Writing R Extensions manual or the CRAN Repository Policy - the new documentation should complement rather than replace these resources.

Deliverables

  • Milestone 1
    • Top N most common CRAN (re-)submissions issues are identified
    • The Quarto website scaffolding is established on GitHub
  • Milestone 2
    • Draft 1 of the Quarto website is presented to the CRAN Team
    • Collect feedback from diverse R communities (e.g. R-Ladies) of the first draft
  • Milestone 3
    • Draft 2/Final release of the Quarto website
    • Begin measuring the effectiveness of the Quarto website as it pertains to improving the skillset of R maintainers
    • Publish a case study/blog post
    • Develop a training webinar for the new documentation, targeted for a diverse group of interested package maintainers

Benefits to the R Community

This project will be a benefit to the R community if it expedites the time it takes for package maintainers to solve common problems, clearing the pathway for CRAN acceptance and reducing repeat problems.

We would consider the project successful if:

  • We are able to host a training webinar(s) for a diverse group of interested package maintainers.
  • The documentation covers at least the top 10 issues identified by the CRAN Team.
  • Website analytics show that the documentation is being viewed by people outside the project team.
  • Documented problems occur less frequently as package maintainers proactively check against these issues.
  • The CRAN Team begin to directly link to documented problems/solutions when package (re-)submissions are rejected.

Project Members

We have two strong technical writers for this project, one is currently working as a part-time assistant on the CRAN Team with responsibility for handling CRAN submissions and the other is a data science consultant with substantial cross-functional experience including project management, CRAN package development and technical documentation writing.

Senior Writer & Project Manager

Junior Writer

Steering Committee

The writers will benefit from the mentoring and advice of a Steering Committee with expertise in CRAN package development and technical writing:

  • Heather Turner (@hturner): member of the R Foundation, former R Journal Editor, maintainer of 4 CRAN packages, has run several workshops on R package development.
  • Bettina Grün (@bettinagruen): member of the R Foundation, Journal of Statistical Software Editor-in-Chief, former R Journal Editor, maintainer of 5 CRAN packages, manager of the two assistants on the CRAN Team working on CRAN submissions.
  • Gwynn Gebeyehu (@nzgwynn) data scientist, former lecturer and academic researcher, has experience of technical writing for range of audiences. R user since 2002 with package development experience.

Details of Our Collaboration & Writing Plan

  • Slack: The project members will have access to the R-contributors Slack group to communicate asynchronously.
  • Video calls: The writers expect to meet every two weeks, with the Steering Committee expected to join at least once a month (not necessarily at the same time).
  • Writing: The project members will conduct all writing and development on GitHub on a dedicated repository.
  • Feedback: The project members will develop surveys to obtain necessary project feedback from the CRAN Team and the relevant R community which includes potential new R package maintainers.

Timeline

We estimate that this work will take seven months to complete. The technical writers will start research & development over staggered periods, with Beni Altmann (CRAN assistant) working 150 hours over May to October and Jasmine Daly working approximately 16 hours a month from June to November.

Dates Action Items People
May 2024 Gathering data on common issues, prioritising Junior writer, mentors
June - July 2024 Create first version of documentation All
August - September 2024 Test with package maintainers and CRAN Team, update based on feedback All
October - November 2024 Release second version of documentation, write case study/blog, promote within R community, host training webinar(s) Senior writer, mentors

Budget

Budget item Amount Running Total Notes
Beni Altmann $4500 $4500 Writing, research and development time
Beni Altmann $400 $4900 We will cover registration and travel support for the Junior Writer to attend useR! 2024
Jasmine Daly $10,500 $15,400 Writing, research and development time, project management
Gwynn Gebeyehu $500 $15,900 Only 1 Volunteer stipend required

Payment schedule

After the completion of each milestone an invoice will be submitted to the R Consortium.

Milestone 1 Milestone 2 Milestone 3
Beni Altmann 25% of budget item ($1225) 50% of budget item ($2450) 25% of budget item ($1225)
Jasmine Daly 25% of budget item ($2625) 50% of budget item ($5250) 25% of budget item ($2625)
Gwynn Gebeyehu 100% of budget item ($500)

Additional information

Previous experience with technical writers or documentation: Heather Turner, a member of the Steering Committee, co-mentored a project funded by the R Foundation that produced the initial version of the R Dev Guide. The project took place over 3 months, with the co-mentors (based in the UK and the US) meeting the technical writer (based in India) for 30 minutes each week to discuss the documentation plans and advise on content. The project benefited from the input of a wide group of volunteers belonging to the R Contribution Working Group. Co-mentors or volunteers reviewed pull requests to the documentation and provided additional support through the R-devel Slack workspace. We anticipate similar participation from the community in this project. The Steering Committee have a wealth of experience related to technical documentation, including writing documentation for R packages published on CRAN, contributing content for the R Project website, editing the R Journal and Journal of Statistical Software, and authoring teaching materials on data science and R programming, including R package development.