Pkg.jl: Add a citation function

Created on 17 Mar 2018  路  10Comments  路  Source: JuliaLang/Pkg.jl

It would be nice to have a way to grab a citation for a package. In many cases like DifferentialEquations.jl such a citation explanation can be pretty long, but we should have an easy way that everyone knows how to get to such information. For a default fallback, it could use the JORS style

feature request

Most helpful comment

Thinking about this more, I don't think any functionality for this belongs in the package manager. It would make more sense to have a Citation.jl package which can either look at a section in Project.toml or for a particular file name in the project and use that to provide a cite function. Standardization across packages is necessary but nothing in particular is needed from the package manager itself since using Citation; cite() is as effective as pkg> cite and decouples the concerns.

The main thing that the package manager needs to provide at a broader level is a section of the project file that is guaranteed not to collide with official package manager uses. I would propose a top-level [misc] section for this which applications may "claim" subsections of, for example, [misc.cite] to record citation information. So I think that documenting this is the only action item for Pkg3 here.

All 10 comments

I give +1 here.

Another way is to allow for packages that have published papers associated with them to simply pass their DOIs to this information. (or maybe Chris also meant this)

Couldn't this informaton be printed by e.g. a DifferentialEquations.cite() function? Why is it useful to access this via the package manager?

My guess is that it won't be global across different packages. Unless we all agree on using this .cite() format, the user will have to search for the function name for each package, which is pretty much the same as searching for the citing information in the documentation.

Another reason why I think this is a plus, is because Julia is really geared towards scientific computing, which means that having DOIs associated with softwares is not a far fetch.

cite(::Module) could work too.

Imo, we should just have a [metadata] table where people can put whatever they want, and it is completely ignored by the package manager. If people want to put a cite key in there, go ahead.

The main thing to do here is just to agree on a way to store and use the information across packages. Should it be recorded as a single text block that is just dumped out when someone asks to cite a package? Or should there be individual fields that get pieced together to form a citation entry with a particular format? IIRC, different publications and people prefer different citation formats. How does R deal with all of this? If the citation information is just a block of TeX, is there any reason not to just have a cite.tex file in a project and use that as the citation information?

The part of this that would make it relevant to the package manager is that you could get a block of citations for an entire project, e.g. pkg> cite and it prints the citations for all of the packages in your project file (or manifest) that has citation entries plus Julia itself. That way you can just run pkg> cite and paste the output into your references section (or do it automatically).

Thinking about this more, I don't think any functionality for this belongs in the package manager. It would make more sense to have a Citation.jl package which can either look at a section in Project.toml or for a particular file name in the project and use that to provide a cite function. Standardization across packages is necessary but nothing in particular is needed from the package manager itself since using Citation; cite() is as effective as pkg> cite and decouples the concerns.

The main thing that the package manager needs to provide at a broader level is a section of the project file that is guaranteed not to collide with official package manager uses. I would propose a top-level [misc] section for this which applications may "claim" subsections of, for example, [misc.cite] to record citation information. So I think that documenting this is the only action item for Pkg3 here.

using Citation; cite() is as effective as pkg> cite and decouples the concerns.

We could also have a mechanism for external packages to hook additional commands into the package manager.

I believe the best standard would be a RIS file. Say, Citation.jl could just parse it as well as many other API. Still, I would favor having it as an extension to the package manager. Proper citation should be sort of an elemental feature next to documentation. The package manager has a field for author, so I don't think is that far in scope from providing a proper citation source.

Seems like the community is handling this now without Pkg help (citation.bib stuff).

Was this page helpful?
0 / 5 - 0 ratings

Related issues

moustachio-belvedere picture moustachio-belvedere  路  3Comments

KristofferC picture KristofferC  路  4Comments

cossio picture cossio  路  3Comments

KristofferC picture KristofferC  路  4Comments

timholy picture timholy  路  4Comments