Coder Social home page Coder Social logo

citation-file-format / citation-file-format.github.io Goto Github PK

View Code? Open in Web Editor NEW
7.0 5.0 13.0 4.6 MB

Holds the source for https://citation-file-format.github.io

Home Page: https://citation-file-format.github.io

Ruby 2.79% TeX 2.47% HTML 30.93% JavaScript 24.99% SCSS 38.83%
citation-files credit attribution research-software-engineering sustainability format standard yaml wssspe

citation-file-format.github.io's Introduction

Citation File Format

Build Status DOI License: CC BY 4.0 Project homepage

The Citation File Format lets you provide citation metadata for software or datasets in plaintext files that are easy to read by both humans and machines.

Structure

You can specify citation metadata for your software (or dataset) in a file named CITATION.cff. This is what a typical CITATION.cff file may look like for research software:

cff-version: 1.2.0
message: If you use this software, please cite it using these metadata.
title: My Research Software
abstract: This is my awesome research software. It does many things.
authors:
  - family-names: Druskat
    given-names: Stephan
    orcid: "https://orcid.org/1234-5678-9101-1121"
  - name: "The Research Software project"
version: 0.11.2
date-released: "2021-07-18"
identifiers:
  - description: This is the collection of archived snapshots of all versions of My Research Software
    type: doi
    value: "10.5281/zenodo.123456"
  - description: This is the archived snapshot of version 0.11.2 of My Research Software
    type: doi
    value: "10.5281/zenodo.123457"
license: Apache-2.0
repository-code: "https://github.com/citation-file-format/my-research-software"

In addition, the Citation File Format allows you to

Format specifications 📚

You can find the complete format specifications in the Guide to the Citation File Format schema.

Why should I add a CITATION.cff file to my repository? 💡

When you do this, great things may happen:

  1. Users of your software can easily cite it using the metadata from CITATION.cff!
  2. If your repository is hosted on GitHub, they will show the citation information in the sidebar, which makes it easy for visitors to cite your software or dataset correctly.
  3. When you publish your software on Zenodo via the GitHub-Zenodo integration, they will use the metadata from your CITATION.cff file.
  4. People can import the correct reference to your software into the Zotero reference manager via a browser plugin.

Creation ➕

To create a CITATION.cff file, you can

  • use the cffinit website,
  • copy and paste the example snippet, and adapt it to your needs, or
  • create a new file called CITATION.cff using the Add file button on GitHub, and use the template they provide.

Validation ✔️

You can validate your CITATION.cff file on the command line with the cffconvert Python package:

# Install cffconvert with pip in user space
python3 -m pip install --user cffconvert

# Validate your CFF file
cffconvert --validate

If you get a Traceback with error messages, look for the relevant validation error and fix it. If the output is very long, it may help if you search it for lines starting with jsonschema.exceptions.ValidationError.

If you prefer to use Docker, you can use the cffconvert Docker image:

cd <directory-containing-your-CITATION.cff>
docker run --rm -v ${PWD}:/app citationcff/cffconvert --validate

Tools to work with CITATION.cff files 🔧

There is tooling available to work with CITATION.cff files to do different things: create new files, edit existing files, validate existing files, convert files from the Citation File Format into another format. The following table gives an overview of the tools that we know about. If there is a tool missing from this table, please open a new issue and let us know.

Creation Editing/Updating Validation Conversion
Command line cffconvert cffconvert
bibtex-to-cff
cff-from-621
openCARP-CI
GitHub Actions cff-validator cffconvert
codemeta2cff
GitHub Bot #238
Docker cffconvert Docker image cffconvert Docker image
Go datatools/codemeta2cff
Haskell cffreference
Java CFF Maven plugin CFF Maven plugin CFF Maven plugin
JavaScript Citation.js plugin
Julia Bibliography.jl Bibliography.jl
PHP bibtex-to-cff
Python doi2cff cffconvert cff-from-621
cffconvert
doi2cff
openCARP-CI
py_bibtex_to_cff_converter
R citation
r2cff
handlr
cffr
Ruby ruby-cff ruby-cff ruby-cff ruby-cff
Rust Aeruginous Aeruginous citeworks
TypeScript #28
Website cffinit

Maintainers 🤓

The Citation File Format schema is maintained by

Contributing 🤝

The Citation File Format is a collaborative project and we welcome suggestions and contributions. We hope one of the invitations below works for you, but if not, please let us know!

🏃 I'm busy, I only have 1 minute

  • Tell a friend about the Citation File Format, or tweet about it!
  • Give the project a star ⭐!

I've got 10 minutes - tell me what I should do

  • Create a CITATION.cff file for your repository.
  • Suggest ideas for how you would like to use the Citation File Format, or for an improvement to the format or its tooling.
  • If you know how to validate CITATION.cff files, help someone with a validation problem and look at the issues labeled GitHub labels

💻 I've got a few hours to work on this

🎉 I want to help grow the community

  • Write a blog post or news item for your own community.
  • Organise a hack event or workshop to help others use or improve the Citation File Format.

Please read the more detailed contributing guidelines and open a GitHub issue to suggest a new idea or let us know about bugs. Please put up pull requests for changes to the format and schema against the develop branch!

License ⚖️

Copyright © 2016 - 2023. The Citation File Format Contributors

This work is licensed under a Creative Commons Attribution 4.0 International (CC-BY-4.0) license.

Acknowledgments 🙏

We'd like to thank everyone who has contributed to the Citation File Format!
They are listed in the CITATION.cff file for this repository. Please open an issue if you find that you are missing from the file.

We gratefully acknowledge support from:

citation-file-format.github.io's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

citation-file-format.github.io's Issues

Create documentation landing page

  • Currently, the "Documentation" link links to the README.
  • To accommodate tutorials, create a landing page that will
    • link to the docs (README, guide) at the top
    • Includes tutorials on validation w/ validator.py, cffconvert (when supported), ruby-cff, ideally link to a validator that's easier to use, e.g., a Jupyter Notebook hosted somewhere (GitHub Codespaces, binderhub, etc.), or a simple web app based on jsonschema or similar (see if we can reuse any of the existing linters!)

Improve UI

I think @jspaaks mentioned "flashy" at some point. At least something to think about.

Cataloguing CFF tools

Currently, there is a messy table in the README for the schema repo that categorizes tools by purpose and language.

There is also an attempt to build a catalogue in a separate .md file in the schema repo.

The following are two ideas how to improve on these efforts.

  1. A dedicated tools page on the CFF website that provides functionality to "search"/filter for tools. This could work as follows.
  • We collect the tool metadata in a structured format. For the future, this could be done via an issue template that provides a form for people to enter the info about their tool. A new issue with this template triggers a CI job that writes the information into the structured format, and puts up a PR with the new structured tool info against a repository (perhaps a separate repo, perhaps the website repo, depending on what's next)
  • We have a web app fo some sort that reads the structure info for all tools, and generates different views on the data. Users can filter for, e.g., purpose and language and get presented with a list of the tools that match their criteria.
  • The web app is presented as part of the website (technically, either implemented in the website repo via JS or similar, or a separate app hosted on a dedicated website route (e.g., the way gh.io does this with project pages)).
  1. We get our own org on the RSD which users can filter for, and push info for all the tools there, so that people can have more info on the tools, which get their own "homepage".

Add validation tutorials

Related: #22

Create tutorials for validation using

  • validator.py (use a dockerized instance?)
  • ruby-cff
  • cffconvert (when 1.2.0 is supported)

Add acknowledgments

Support from the following should be acknowledged on the frontpage:

  • DLR
  • NLeSC
  • SSI

Add "Used by" section?

Could add a flashy "Used by" section on the bottom of the front page with logos from GitHub, Zenodo, Zotero.

Helpful tutorials

A list of things that have come up from users:

  • "a lot of my hesitancy is keeping the bib & cff in sync, so a blog post explaining how to write up/deploy an action that generates a new .bib everytime the .cff gets updated would also be helpful" (source)

Add "news" section?

New stuff could be added as mini news items in a blog that isn't called that, e.g.

  • New support (GitHub, Zenodo, Zotero) in an actual blog post from the CFF side
  • Governance stuff (e.g., steering committee call/installation)
  • Events/presentations

(Could help visibility.)

Add FAQ

There are some questions that regularly pop up around CFF:

  • Is it a GitHub format?
  • Why not .bib?
  • Why not CodeMeta?
  • etc.

These could be treated in a FAQ page.

Update About page

  • Condense history into perhaps a bullet list
  • Add content suggested by Chris Holdgraf:
    • the history (covered)
    • rationale,
    • community governance,

to give people confidence in the format who are considering switching (prob not a thing most care about but schol com folks usually do)

Render on push

We should use some rendering (Circle CI for example) in CI to make it easier to review pull requests.

Clean up tools section

The tools section is out of date. I think it should contain:

  • Links to user-facing GUI apps first (perhaps create mini-tutorials?)
    • GitHub Add file functionality with example CFF
    • cffinit (when ready)
    • validation/linting tool (when existing)
  • Link to the tools section in the README

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.