Skip to content
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

CRAN and Bioconductor URLs #81

Closed
maelle opened this issue Apr 11, 2018 · 9 comments
Closed

CRAN and Bioconductor URLs #81

maelle opened this issue Apr 11, 2018 · 9 comments
Assignees
Milestone

Comments

@maelle
Copy link
Member

maelle commented Apr 11, 2018

Would it make sense to add CRAN (canonical of course) URLs to

  • software requirements (unless the requirements is a GitHub version?)

  • the relatedLinks of the package itself?

@cboettig
Copy link
Member

Good question. Somewhat related to #82. Including both in relatedLinks seems like a good start at least.

Might be worth considering making the CRAN canonical url http://schema.org/sameAs the @id DOI, provided these really are identical? likewise, could use the CRAN url in software requirements in @id as the 'official' identifier for said package. Otherwise, at least including it in url sounds good.

👍

@maelle maelle added this to the 0.1.6 release milestone Apr 18, 2018
@maelle
Copy link
Member Author

maelle commented Apr 18, 2018

Reg. softwareRequirements should e.g.

    {
      "@type": "SoftwareApplication",
      "identifier": "testthat",
      "name": "testthat",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Central R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      }
    }

become

    {
      "@type": "SoftwareApplication",
      "identifier": "testthat",
      "sameAs": "https://CRAN.R-project.org/package=testthat",
      "name": "testthat",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Central R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      }
    }

@maelle maelle changed the title CRAN URLs CRAN and Bioconductor URLs Apr 19, 2018
@maelle
Copy link
Member Author

maelle commented Apr 19, 2018

Note to self: only add relatedLink depending on a badge in README (CRAN or BioConductor)

@maelle
Copy link
Member Author

maelle commented Apr 19, 2018

Example of a README with a BioConductor badge https://github.com/theislab/destiny

I can't think of another way than README badges to make sure a package is the one that's on CRAN/BioConductor. Without this check one could create an EML package that has nothing to do with ropensci/EML and the relatedLink would be the CRAN page of EML. Quite unlikely (if you're aware of codemeta probably you're aware of name availability issues) but still.

@maelle
Copy link
Member Author

maelle commented Apr 19, 2018

When creating a codemeta for an installed package currently there won't be a provider link as relatedLink because I'm not sure how to assess the origin of the installed package (in the absence of a README, although of course one could try and find the README... although there must be a better way to assess where an installed package comes from)

@maelle
Copy link
Member Author

maelle commented Apr 19, 2018

Probably using Repository: CRAN from DESCRIPTION 🤔

@maelle
Copy link
Member Author

maelle commented Apr 19, 2018

if the package comes from BioConductor not sure it's always in a biocViews, in any case looking at DESCRIPTION from EBImage I don't see a Repository field

@maelle
Copy link
Member Author

maelle commented Apr 19, 2018

Too bad https://github.com/r-lib/sessioninfo/blob/fbefa94ec62153844d26f95b0427957a0a2b33c3/R/package-info.R#L71 isn't exported but that's what I should use to check the provider.

@maelle
Copy link
Member Author

maelle commented Apr 23, 2018

Ok so I think it works as expected now for creating a codemeta.json for a string.

library("codemetar")

# installed from CRAN
create_codemeta("usethis", verbose = FALSE)$relatedLink
#> [1] "https://CRAN.R-project.org/package=usethis"

# installed from CRAN
create_codemeta(find.package("ggplot2"), verbose = FALSE)$relatedLink
#> [1] "http://ggplot2.tidyverse.org"              
#> [2] "https://CRAN.R-project.org/package=ggplot2"

# installed from GitHub 
create_codemeta("desc", verbose = FALSE)$relatedLink
#> [1] "https://github.com/r-lib/desc/commit/387b732"

# installed from BioConductor
create_codemeta("EBImage", verbose = FALSE)$relatedLink
#> [1] "https://bioconductor.org/packages/release/bioc/html/EBImage.html"

# installed locally
create_codemeta("codemetar", verbose = FALSE)$relatedLink
#> [1] "https://codemeta.github.io/codemetar"

Created on 2018-04-23 by the reprex package (v0.2.0).

Actually in the case of a package installed locally for which one creates a codemeta.json as above, one could argue it'd make sense to use sameAs instead of relatedLink? 🤔

@maelle maelle closed this as completed Apr 23, 2018
cboettig pushed a commit that referenced this issue Apr 23, 2018
* add pre-commit hook for DESCRIPTION vs codemeta.json

* oops had forgotten the dependencies 😱

* had also forgotten to import the function

* puts the code in the right place and documents what the first call to write_codemeta will do

* add rOpenSci and myself as authors

* remove MIT licence

* change licence

* add that the code is GPL-3

* replaces devtools with usethis where possible

* mostly French snobism 😉

* add uses_git origin

* cf #62

* #62

* only adds hook once!

* start using desc cf #41

* various fixes

* better example?

* document

* removes reference to deleted function

* cf #63

* cf #64, parses more possible roles

* updates codemeta.json in particular more people/orgs appear

* start work on opinions cf #76

* document

* oops

* oops again

* gives opinion when verbose=TRUE and otherwise just uses robust code

* cleans up tests

* more tests of plain authors&maintainer

* work on tests

* corrects documentation

* better if the pkg exists 😁

* update codemeta

* adds a message to get a devtools release question

* fix?

* new try

* removes httr dependency in favor of crul cf #83

* checks URLs in DESCRIPTION cf #68

* oops fixes test

* uses dev version of jsonld

* adds coercion to character to repair bug introduced by jsonld new version cf #88

* clean up cache

* yay encoding

* close #84 by deleting now useless licences.R file

* appveyor

* oh, Appveyor

* start filling NEWS.md

* better checks when several URLs

* more space

* generate review metadata cf #23

* oops

* cf #63

* @jeroen said that this might help 🙏

* thanks again @jeroen

* test on patched R version

* CRAN and Bioconductor links for dependencies cf #81

* add tests of dependencies URL creation

* add canonic URL for the package itself cf #81

* borrows jsonlite code cf #84

* makes it a bit more specific

* badge parsing cf #130

* uses badge parsing function in guess_metadata

* opinions about README cf 98

* add check of provider cf #81

* oops

* oops again

* R CMD Check NOTEs

* oops

* update contributor list cf #95

* several relatedLinks cf #99

* add the URL only once

* oops repairs test

* update NEWS

* add ability to provide relatedLink for packages installed from CRAN or Bioconductor

* add link to commit if available

* only one maintainer currently cf #109

* oops this was wrong!

* mmmh there was a mistake here

* Travis fix?

* remotes cf #96

* Travis fix?

* export the badge extraction function cf #107 and update docs and correct a test

* status as URL cf #102

* now one can extract lifecycle status

* not only Travis CI as contIntegration cf #111

* update NEWs

* update NEWS

* repairs handling of additional terms cf #112 and adds corresponding test

* correct test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants