7 Other elements - Openscapes/2021-noaa-nmfs GitHub Wiki

Government agencies use some kind of public domain license, but which one used varies a bit. For NOAA Fisheries products, see the material in the Fisheries Integrated Toolbox. This group has been working the last couple years on developing boilerplate disclaimers and licenses for NMFS open source products.

Licenses

Work of the United States government that is done by US federal employees as part of their official duties is in the public domain within the United States of America and cannot be copyrighted. Code (or anything else) developed by US federal employees should have a notice that the work is in the public domain. Additionally it is common to waive copyright and related rights in the work worldwide through the CC0 1.0 Universal public domain dedication.

There are two main licenses used for products by federal agencies (or their employees) on GitHub: Creative Commons license (CC0-1.0) and the GNU General Public License v3. CC0-1.0 is a very broad declaration of public domain while GPL-3 is explicit about derivative works and how those works must retain an open source license.

Disclaimers

Besides the license, code from federal agencies should also have a disclaimer that the code is 'as is' and the user assumes responsibility for its use.

  • The Fisheries Integrated Toolbox has a Disclaimer for US Government products in its Resources repo.
  • The repos on the EPA organization use a few different (albeit similar) disclaimers. Generic, GitHub specific.
  • CISA repos have a bit of an ad hoc disclaimer.

Code of Conduct

Read about why it is important to have code of conduct for your GH organization (and repos for open source products) and how to manage conduct to support better collaborative communities: Contributor Covenant.

  • The Fisheries Integrated Toolbox has a Code of Conduct in its Resources repo. How to use? You put this in your repo, here's an example from the Toolbox and put a link in your websites. If you are using pkgdown, it should be pretty easy to modify _pkgdown.yml to add this.

Contributing to the repo

Here are the typical ways that repo owners convey how people can contribute.

  • Supply contact information (critical)

  • Add a link to the GitHub repo issues page. This is the most common approach.

  • Add a CONTRIBUTING document to repo. The Fisheries Integrated Toolbox has a Contributing document in its Resources repo. How to use? You put this in your repo. Here's an example from the Toolbox and put a link in your websites. Some groups pin this info in their issues list.

    Note I personally do not have detailed info like the Fisheries Integrated Toolbox does on how to use GitHub issues on my big CRAN R package MARSS or any others. I have found that the questions that people post are super helpful to me and to other users, so I don't want to discourage people from posting questions and I want my responses there on the issue thread. I just add an appropriate label, like question (and bug or enhancement) and then close the issue once the question is resolved.

Citation

If your work is something people cite, like a report or a software package, add a CITATION.md file or add citation information to the Readme.md file. You can create a DOI for software. Not all repositories are things that someone would cite however so this is not something one always adds.

Derivation work and use

In some cases, you might want to add a statement about "fair use" and "fair attribution" to your repo. That really depends on what the repo is about. I tend to add this when I am sharing teaching material and I want to be clear that it is fine to copy the repo material and re-work it for other uses.