Draft Proposal for improving the ability of R users to search R packages
|This is a research project at Wikiversity.|
- This article is a draft response to a call for proposals from the Infrastructure Steering Committee (ISC) of the R Consortium for projects “that could benefit the R community”. It is placed on Wikiversity and listed currently as a “research project” to encourage a wide discussion of the issues it raises moderated by the Wikimedia rules that invite contributors to “be bold but not reckless,” contributing revisions written from a neutral point of view, citing credible sources -- and raising other questions and concerns on the associated '“Discuss”' page. Your contribution(s) to this article may help transform this draft into a proposal that actually gets implemented.
This proposal in its current form is
- an invitation to readers to brainstorm what they would like to see in a search capability for R, and
- a call for collaborators in drafting and actually doing the work: The lead author of this draft proposal (Spencer Graves) wants the result but does not have the team capable of doing the work and is looking for volunteers, e.g., a university prof willing to supervise student(s) doing the actual work, possibly with funding by the Infrastructure Steering Committee (ISC) of the R Consortium.
R Consortium Call For Proposals: February 2018
The “R Consortium Call For Proposals: February 2018” is available here, with details on “Submitting a proposal” available here. They say, “Please provide a 2 to 5 page proposal that describes the problem you want to solve. We expect submissions to include these components:”
- The Problem
- The Plan
- The Team
- Project Milestones
- How Can The ISC Help
On or about 2018-03-30 (but definitely before 2018-04-01T23:59+07:00), someone (probably Spencer Graves, but it could be you) must create a PDF from this article (e.g., by clicking on “printable version” typically at the bottom of the left margin of Wikiversity articles) and use it as requested to Submit an ISC grant proposal.
The problem and opportunity
There are currently several different ways of searching R packages. Each gives different answers.
Some should either be obsoleted or merged with other capabilities. For example, Jonathon Baron has said that rdrr.io “is much better than mine (RSiteSearch). It has everything I have, a better search engine, and it searches more things. Given the difficulties of maintaining my site, I would like to give up on it (after 17 years).” When he does that, we either need to obsolete utils::RSiteSearch and sos::findFn or migrate those functions to use rdrr.io or some other function.
Spencer Graves is attempting to contact people involved with R specific search capabilities to invite them to contribute to this proposal and offer to (help) manage the implementation. If you might like to contribute to this effort, please say so, either in this Wikiversity article or the companion "Discuss" page.
Initial thoughts on discrete steps to do this run as follows:
- Draft something, like this.
- Post a draft to Wikiversity.
- Email people associated with all the search capabilities mentioned in the Summary table of search capabilities devoted to R, previously published on Wikiversity, inviting them to revise the plan to make it more useful and more likely to get funded and to volunteer to (help) manage the implementation.
- Submit a proposal by the April Fools' Day deadline.
- If the R Consortium provides a supportive response by May Day, we will discuss the status at a presentation and meeting(s) during useR!2018 in Brisbane, during which we will (hopefully) finalize the work plan. This may be preceded and / or followed by a series of (tele)conferences with interested parties.
- Write specs for new software for the required database and Application programming interface (API), unless it is decided that one of the existing search capabilities is already adequate for what is desired. This probably will include databases for (a) contributed packages, (b) user ratings, and (c) relevant narrative data sources like R email lists and web sites like stackoverflow.com/questions/tagged/r. This could be done collaboratively. For example, both crantastic and CRANsearcher include user reviews. If these databases of user reviews are distinct (as seems likely), then one might expect that many users would like to contribute to or access both sets of reviews with one single interface -- presumably from either crantastic or CRANsearcher -- and perhaps from some other R package information capability yet to be developed. These specs would include appropriate discussion of the future of utils::RSiteSearch and sos::findFn? If they are to continue, the required refactoring should be included in the specs. Otherwise, the specs should include a task for notifying current users of these functions of the intention to obsolete them unless someone else wants to adopt them, as is currently the practice with orphaned CRAN packages.
- Draft a proposal for producing software to the specs and making it available to the R community.
- With appropriate approval from ISC of the proposal, do the work.
- Report on the result at a future useR! conference and in at least one article for R Journal.
Who would like to work on this?
Spencer Graves is interested in seeing that it happens but not in actually doing it. Others are far more competent at writing software and managing projects like this.
2018-02-18: Post this document to Wikiversity.
2018-02-22: Email everyone I can think of who might be interested. (I apologize if you are reading this after that date and believe you should have gotten such an email from me and didn't. Please assume you did and contribute whatever you think is appropriate to this draft proposal. And please notify anyone you think would likely have something important to contribute to this.)
2018-03-30: Submit this proposal in whatever form it is in to the ISC and the organizers for useR!2018.
2018-04-01: If this is approved by the ISC and the organizers for useR!2018, provide more detail in the specs. Spencer Graves is NOT the best person to do this. If you have ideas, please help with this.
July 10-13, 2018 in Bisbane: Present the draft specs, engage all who are interested in refining them, and get a commitment from someone interested in leading a project like this to complete these specs.
2018-07-31 or earlier: Publish the draft specs on Wikiversity.
2018-08-31 or earlier: Publish a draft work plan with a budget for software development.
2018-09-30 or earlier: Get approval from some appropriate body to actually start the work.
2019-01-10: Submit a proposal for a status report at userR!2019 in Toulouse.
July 9/12, 2019: Attend and present at userR!2019.
2019-09-01 or earlier: Make the product available for beta testing.
2019-09-30 or earlier: Submit an article on the product to R Journal.
How Can The ISC Help
- Help refine the ideas and encourage appropriate individuals to volunteer to do the work for an appropriate consideration, to be provided by the ISC.
- Provide whatever level of oversight they feel would maximize the return on investment in this work.
Dissemination would include the following:
- Work shared like this via Wikiversity or some comparable platform like this draft proposal.
- Presentations at useR!2018 and useR!2019.
- Modifying the Wikiversity article on “Searching R Packages” as seems appropriate as the work progresses.
- Submitting appropriate package(s) to CRAN.
- Submitting article(s) on the project to outlets like R Journal.
This discussion and the accompanying article on Searching R Packages were inspired by the plenary session on "Navigating the R package universe" in the international useR!2017 conference in Brussels, Belgium, July 4-7, 2017.
- Private email 2018-02-01.
- Wickham, Hadley; Mæland, Bjørn, Welcome to crantastic, a community site for R packages where you can search for, review and tag CRAN packages., R Foundation, https://crantastic.org/
- CRANsearcher: RStudio Addin for Searching Packages in CRAN Database Based on Keywords, RStudio, https://cloud.r-project.org/web/packages/CRANsearcher/index.html