Skip to content

Search function changes across all versions of a package #14

Closed as duplicate

Description

@llrs

What and why

The reporter hit a function that was no longer in an R package. The package NEWS didn't say it had been deprecated or removed. diffify had no direct way to answer "when did this go?", so they compared one pair of versions after another until they found it.

They suggest a table covering every version, filterable by function:

function action version
a new 0.0.1
b new 0.0.1
a removed 0.0.2

Filtering on a shows it was removed in 0.0.2.

In February 2026 a second user needed the same thing: when did curl::form_file() gain its name parameter? They would like to pick a package, pick a function, and see that function's diffs across versions.

A third commenter offered a workaround. The metaCRAN mirror at https://github.com/cran tags every CRAN version, even when the package's own repo doesn't. Find the file and read its commit history, e.g. https://github.com/cran/curl/commits/master/R/form.R:

Image

Their best guess for the curl question was 5.0.1, from this commit: cran/curl@44af7b9#diff-1c9c36a71cfd1f5031c0be794e978691fa6a471669745e7e826865678c0e8a90

Image

Where

diffify.com. A new view, or an extension of the function entries.

Done when

  • For a chosen package, diffify lists each function with the version in which it was added, changed or removed
  • The list can be filtered to one function
  • Argument changes appear in the list, so the curl::form_file() question can be answered from diffify

Activity

  1. JosiahParry commented on Feb 2, 2026

    @JosiahParry

    I'm in a similar boat right now. I want to see when the name parameter to curl::form_file() was added.

    I would love an interface that lets me:

    1. select package
    2. select function
    3. see diffs of that function across versions

    Thanks for this awesome tool!

  2. remlapmot commented on Feb 4, 2026

    @remlapmot

    You've probably found your answer by now but I find the metaCRAN CRAN mirror on GitHub, https://github.com/cran, very helpful for this kind of thing - because it has a tag for every version on CRAN (whereas the actual source repo might not).

    Find the relevant file then look at its commit history

    https://github.com/cran/curl/commits/master/R/form.R

    Image

    And then check those commits.

    I believe version 5.0.1 is your likely answer.

    cran/curl@44af7b9#diff-1c9c36a71cfd1f5031c0be794e978691fa6a471669745e7e826865678c0e8a90

    Image
  3. changed the title [-]Using diffiy to find the right version needed[/-] [+]Search function changes across all versions of a package[/+] on Oct 14, 2026
  4. added
    effort::2-daysFor tasks that can be completed within a few days.
    priority::3-couldDesirable but not necessary. Could improve the user experience for a little development cost.
    status::7-abandonedClosed as unnecessary, or split out into other issues.
    Closed by claudeClosed by Claude during the October 2026 issue triage, with evidence in the closing comment.
    on Oct 14, 2026
  5. csgillespie commented on Oct 15, 2026

    @csgillespie
    Contributor

    Merged into #5, which now holds the version table idea, the curl::form_file() question and the metaCRAN workaround from this thread. Closing as a duplicate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Closed by claudeClosed by Claude during the October 2026 issue triage, with evidence in the closing comment.complexity::2-mediumThis is for more complex issues that will be difficult for a beginner.effort::2-daysFor tasks that can be completed within a few days.priority::3-couldDesirable but not necessary. Could improve the user experience for a little development cost.status::7-abandonedClosed as unnecessary, or split out into other issues.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions