Skip to content

Add the CITATION.cff file to take advantage of GitHub's new support for the Citation File Format #41729

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

Merged
merged 11 commits into from
Jul 31, 2021

Conversation

storopoli
Copy link
Contributor

@storopoli storopoli commented Jul 29, 2021

This PR creates the initial draft for the CITATION.cff new file format.

Some resources for discussion:

Note that with every Julia new release the version value should be updated. I briefly scanned for a GitHub Actions that could automatically do that but could not find (maybe since CFF are a new thing we should have new actions becoming available in the near future).

EDIT: I think we should leave the .bib also in the repo for now.

This commit creates the initial draft for the CITATION.cff new file format.
@DilumAluthge
Copy link
Member

Do we need the version: key? It would be easiest to just omit it.

If we are required to include the version: key, the value should match the value in the VERSION file: https://github.com/JuliaLang/julia/blob/master/VERSION

@DilumAluthge DilumAluthge requested a review from ViralBShah July 29, 2021 12:00
@storopoli
Copy link
Contributor Author

Yes, we do otherwise the citation file is not valid/parsed by GitHub.

@DilumAluthge
Copy link
Member

DilumAluthge commented Jul 29, 2021

Darn. That means that the release managers (@KristofferC and @ararslan) would need to remember to update the version number in two different places.

Probably the easiest is to have a tiny CI job that just checks that the version: in the CITATION.cff file exactly matches the contents of the VERSION file.

@DilumAluthge
Copy link
Member

EDIT: I think we should leave the .bib also in the repo for now.

Yeah I think that makes sense.

[ci skip]
[skip ci]
@ViralBShah
Copy link
Member

Is it possible to get the rest of the bibliographic data into this format - like the journal and volume and such?

Also should we get rid of the CITATION.bib file, since this gives you an option to export a bib file? The only issue with that is that we refer to it in some places on discourse and such - but presumably we can update those links and post updated messages.

@DilumAluthge
Copy link
Member

Also should we get rid of the CITATION.bib file, since this gives you an option to export a bib file? The only issue with that is that we refer to it in some places on discourse and such - but presumably we can update those links and post updated messages.

I was thinking keep it around. The contents of CITATION.bib are static, so can't hurt to keep it, right? At least for the short term, while we wait for the rest of the Julia ecosystem to start adopting this new standard.

@storopoli
Copy link
Contributor Author

Is it possible to get the rest of the bibliographic data into this format - like the journal and volume and such?

Also should we get rid of the CITATION.bib file, since this gives you an option to export a bib file? The only issue with that is that we refer to it in some places on discourse and such - but presumably we can update those links and post updated messages.

Yes, we can I will add the info.

@ViralBShah
Copy link
Member

Darn. That means that the release managers (@KristofferC and @ararslan) would need to remember to update the version number in two different places.

Probably the easiest is to have a tiny CI job that just checks that the version: in the CITATION.cff file exactly matches the contents of the VERSION file.

Is it possible to have a CI job just for releases? Running a tiny CI to check this on every commit feels a bit wasteful.

@DilumAluthge
Copy link
Member

Darn. That means that the release managers (@KristofferC and @ararslan) would need to remember to update the version number in two different places.
Probably the easiest is to have a tiny CI job that just checks that the version: in the CITATION.cff file exactly matches the contents of the VERSION file.

Is it possible to have a CI job just for releases? Running a tiny CI to check this on every commit feels a bit wasteful.

Yeah, with Buildkite, we can have different CI for release branches vs master.

ViralBShah and others added 2 commits July 29, 2021 08:43
[ci skip]
[skip ci]

Co-authored-by: Dilum Aluthge <[email protected]>
added the SIAM article as references in the CITATION.cff
ViralBShah and others added 2 commits July 29, 2021 08:48
@DilumAluthge
Copy link
Member

@storopoli Where did you see that version is required?

The CFF schema (https://github.com/citation-file-format/citation-file-format/blob/main/schema.yaml) says that version is not required.

[ci skip]

Co-authored-by: Dilum Aluthge <[email protected]>
@storopoli
Copy link
Contributor Author

@storopoli Where did you see that version is required?

The CFF schema (https://github.com/citation-file-format/citation-file-format/blob/main/schema.yaml) says that version is not required.

Here: https://github.com/citation-file-format/citation-file-format/blob/main/README.md#example

If you want to make your software easily citable, you can put a file called CITATION.cff in the root of your repository. This file should provide at least the minimally necessary metadata to cite your software.

And also I did this for some repos earlier today and GitHub did not parsed if there wasn't a version in the .cff file (JuliaDataScience/JuliaDataScience@544f615)

@DilumAluthge
Copy link
Member

@storopoli Where did you see that version is required?
The CFF schema (https://github.com/citation-file-format/citation-file-format/blob/main/schema.yaml) says that version is not required.

Here: https://github.com/citation-file-format/citation-file-format/blob/main/README.md#example

If you want to make your software easily citable, you can put a file called CITATION.cff in the root of your repository. This file should provide at least the minimally necessary metadata to cite your software.

And also I did this for some repos earlier today and GitHub did not parsed if there wasn't a version in the .cff file (JuliaDataScience/JuliaDataScience@544f615)

Interesting. It seems to violate the schema, but 🤷

@DilumAluthge
Copy link
Member

DilumAluthge commented Jul 29, 2021

I think the version: v1 solution will probably be fine. The alternative (manually updating it every time) seems unpleasant.

@storopoli
Copy link
Contributor Author

@storopoli Where did you see that version is required?
The CFF schema (https://github.com/citation-file-format/citation-file-format/blob/main/schema.yaml) says that version is not required.

Here: https://github.com/citation-file-format/citation-file-format/blob/main/README.md#example

If you want to make your software easily citable, you can put a file called CITATION.cff in the root of your repository. This file should provide at least the minimally necessary metadata to cite your software.

And also I did this for some repos earlier today and GitHub did not parsed if there wasn't a version in the .cff file (JuliaDataScience/JuliaDataScience@544f615)

Interesting. It seems to violate the schema, but 🤷

No it doesn't. It has a required: True. There are several version in the schema.

See this one: https://github.com/citation-file-format/citation-file-format/blob/main/schema.yaml#L115-L117

@DilumAluthge
Copy link
Member

DilumAluthge commented Jul 29, 2021

🤦 You're exactly right, I was looking at the wrong version. Thanks!

Serves me right for trying to read the schema on my phone.

@DilumAluthge
Copy link
Member

DilumAluthge commented Jul 29, 2021

Since there is a schema, presumably we can validate our .cff against the schema? E.g. with https://www.npmjs.com/package/yaml-schema-validator?

I don't particularly feel like opening up npm right now 😂. Maybe someone else wants to try it out?

@DilumAluthge DilumAluthge changed the title Create CITATION.cff Add the CITATION.cff file to take advantage of GitHub's new support for the Citation File Format Jul 29, 2021
@vtjnash
Copy link
Member

vtjnash commented Jul 29, 2021

If we decide to change the version, there is a release-checklist in the Makefile where that step would go

@ViralBShah
Copy link
Member

I say we merge this - and we can tweak further later on as necessary.

@DilumAluthge DilumAluthge merged commit 8556e93 into JuliaLang:master Jul 31, 2021
@ViralBShah
Copy link
Member

ViralBShah commented Jul 31, 2021

The github generated bibtex has some ways to go. I think we'll have to keep CITATION.bib for a while!

@storopoli storopoli deleted the patch-1 branch July 31, 2021 14:45
@storopoli
Copy link
Contributor Author

At least we have the dropdown to cite this repo:

image

@arfon
Copy link
Contributor

arfon commented Aug 1, 2021

The github generated bibtex is terrible. I think we'll have to keep CITATION.bib for a while!

Feel free to open an issue on https://github.com/citation-file-format/ruby-cff reporting any issues with the bibtex 😁

@arfon
Copy link
Contributor

arfon commented Aug 1, 2021

The github generated bibtex is terrible. I think we'll have to keep CITATION.bib for a while!

Feel free to open an issue on https://github.com/citation-file-format/ruby-cff reporting any issues with the generated bibtex output.

@ViralBShah
Copy link
Member

ViralBShah commented Aug 1, 2021

The main thing is all the other metadata about the article that exists in our CITATION.cff file (like volume, pages, etc.) doesn't get incorporated into the generated BibTeX. Also it makes it an @misc bibtex entry, but we really want @article. I don't know enough about the cff format to be certain if we have done things right - so not filing an issue myself. But perhaps someone else may be better positioned to do that.

@arfon
Copy link
Contributor

arfon commented Aug 2, 2021

Got it, thanks! CFF v1.2.0 will be introducing the concept of a preferred-citation which can be an article rather than a (@misc) citation snippet for the software.

@StefanKarpinski
Copy link
Member

StefanKarpinski commented Aug 4, 2021

To clarify why @misc is inappropriate for us, there is an actual academic publication that should be cited when citing this project, rather than directly citing the repository or the software. I suspect this is the case for many other Julia packages as well, and it is probably not uncommon in other language ecosystems. The CITATION.bib file in the repo is how we ideally want our generated BibTeX citation data to look.

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

Successfully merging this pull request may close these issues.

7 participants