Difference between revisions of "Best practices"

From Earth Science Information Partners (ESIP)
Line 29: Line 29:
 
BPs for publishing software in the IMCR and software repositories (e.g. GitHub).
 
BPs for publishing software in the IMCR and software repositories (e.g. GitHub).
 
===IMCR===
 
===IMCR===
Publishing in the IMCR is easy but some guidance on how to best supply information about your software goes a long way to helping others discover and reuse it. Below are recommendations for completing the form fields for your software registration in the IMCR.
+
Publishing software in the IMCR is easy. Create a user account and begin publishing your software. The metadata wizard guides you through the process of describing important attributes of your software, however some additional guidance is offered below to help optimize discovery and understanding of your software.
  
 
====Identify====
 
====Identify====

Revision as of 11:18, October 15, 2018

Return to IM Code Registry main page


Overview

Below are a set of best practice (BP) recommendations for the IMCR.


Discovering software

Recommendations for discovering software in the IMCR.

IMCR

To find software, use the IMCR Controlled Vocabulary in combination with the "Filter Software List" located in the IMCR Portal. Terms in the controlled vocabulary are organized around the data life cycle, which is an intuitive way to think about the different categories of information management. Browse the controlled vocabulary to identify terms you'd like to search on, then add these terms to the "Filter Software List" search tool to find what you're looking for. Some notes on the search tool:

  • Search only supports search across software names. Free-text searching is not supported.
  • Author supports search across software authors, including individuals, organizations and initiatives. Separate multiple terms with commas. An auto-complete drop down field lists software authors found in the IMCR.
  • Keywords supports search across keywords tagged to each software item of the IMCR. Browse the IMCR Controlled Vocabulary for a list of keywords and definitions.
  • Language
  • License
  • Operating System
  • Publisher supports search across software publishers. The content of "Publisher" is often times equivalent to content listed under "Author"

Developing software

No software development standards are enforced in the IMCR, however community recommended BPs are list below for anyone interested in learning and applying them.

ESIP software assessment guidelines


Publishing software

BPs for publishing software in the IMCR and software repositories (e.g. GitHub).

IMCR

Publishing software in the IMCR is easy. Create a user account and begin publishing your software. The metadata wizard guides you through the process of describing important attributes of your software, however some additional guidance is offered below to help optimize discovery and understanding of your software.

Identify

  • What are general categories (keywords, labels) for this software? - Use the IMCR Controlled Vocabulary to keyword your software. Keywords are the primary mechanism by which users find your software. Add broad terms and narrower terms to improve search and discovery. Be careful to spell the keywords correctly! If you can't find a suitable keyword in the controlled vocabulary, please suggest it and it's corresponding definition to the IMCR chairs.

Understand

  • Who created this software? - Add the project, organization, person, or initiative that helped create this software. You are encouraged to add multiple entities (i.e. organization and all individuals). For individuals, use given name and surname. Be careful to spell names correctly! Note, an drop down auto-complete field helps with this. The content of this field is searchable by the "Filter Software List" "Author" field.
  • Are there any additional contributors of note for this software? - Add major contributors to the software project. These entities can be of the same types listed under "Who created this software?" (i.e. project, organization, person, etc.). The content of this field is searchable by the "Filter Software List" "Author" field.
  • (Optional) Who is the publisher of this software if not the author? - Add the project, organization, person, or initiative who published this software. Duplicate entries are encouraged from the "Who created this software?" field. The content of this field is searchable by the "Filter Software List" "Publisher" field. Separate multiple entries with commas.
  • What are domain specific keywords for this software? (e.g. hydrology, climate) - List science domain specific keywords to this field and to the field "What are general categories (keywords, labels) for this software?" located at /Locate/Important. Use the IMCR Controlled Vocabulary to keyword your software with science domain specific keywords (see the "science domain" category of the IMCR CV). Keywords are the primary mechanism by which users find your software. Add broad terms and narrower terms to improve search and discovery. Be careful to spell the keywords correctly! If you can't find a suitable keyword in the controlled vocabulary, please suggest it and it's corresponding definition to the IMCR chairs.

Execute

  • What license is the code released under? - A list of common licenses are recognized. Use the auto-complete feature of this field to select the recognized license spelling.
  • What language(s) is the software written in? - A list of languages used in the IMCR portal are provided by the auto-complete feature of this field. If the language is not available in the drop down list, then add it.
  • What operating system can the software run on? - A list of operating systems used in the IMCR portal are provided by the auto-complete feature of this field. Add an operating system if it's not available in the drop down list.
  • What other software does the software require to be installed? - Do not use this field!!! OntoSoft automatically adds entries in this field to the master list of registered software in the IMCR. We don't want the IMCR populated with these items.

Project repository

Considerations for features to include in the project repository.

README

README are essential for orienting the user to what the project addresses.

Vignette

Vignettes are useful for demonstrating the projects functionality.

DOI

Periodic releases of the project code can be accompanied by the minting of a DOI. GitHub supports archive in with generation of a DOI, thereby making the project citable.

Test data

Test data facilitates experimentation and understanding of the projects functionality.

Tagging

Tagging the project repo with good keywords facilitates discovery. See the IMCR Controlled Vocabulary.