Software Management

Plan a Software Project

USGS Software Development Checklist

USGS Software Development Checklist

Use this quick checklist to help plan your software project and ensure it meets USGS policy requirements and best practices. 

Checklist Download

Select a USGS Git Repository Host

Select a USGS Git Repository Host

Compare the available features across the USGS Git hosting platforms and select the one that is right for your project.

Compare Platforms

Create Software Metadata: code.json

Create Software Metadata: code.json

Create the required code.json file for your software repository using this simple template. 

Template Download

Planning the details of your new software project is a great way to get started before you write the first line of code. Use the guidelines below as a checklist of the steps needed for your software development project.

A category of software called “Scientific Software” is more specifically defined by the USGS Instructional Memorandum on Scientific Software for Release. Guidance specific to Scientific Software has been included to aid with policy compliance.

Develop Source Code Using a Repository

  • Recommended for all software.

  • Use one of the accepted USGS Git hosting options.

  • Refer to Develop

Organization

  • Recommended for all software.

  • Select an appropriate location in a USGS Git hosting option to manage your project.

  • Refer to Develop

Testing

  • Recommended for all software.

  • Write your code such that unit tests can be performed to provide technical reviewers and yourself with a thorough and granular method to review the functionality of the code at any time.

  • Refer to Test

**Metadata

**Licenses

  • Required for all software.

  • Use an open-source license (put a "LICENSE.md in the project root").

  • Refer to Distribute

*Disclaimers

*IPDS Record

  • Required for scientific software.

  • Not applicable to other software.

  • Enter Scientific Software products into  IPDS. Select Scientific Software as the product type and complete peer reviews before sending to Center Directors for approval.

  • Refer to Scientific Software and the USGS Information Product Data System (IPDS)

*Digital Object Identifiers (DOIs)

**Security Review

  • Required for all software.

  • Obtain a security review to ensure personal, private, or otherwise sensitive information is not included in the repository.

  • Refer to Review

*Functionality and Domain Reviews

  • Required for scientific software.

  • Recommended for all software.

  • Request peer review as an official USGS product.

  • Refer to Review

*Center Director Approval

  • Required for scientific software. However, recommended for all software. 

  • Scientific Software requires formal Center Director (or delegated authority) approval in IPDS.

  • Refer to Scientific Software

*Repository for Official USGS Product Release

  • Required for scientific software.

  • Recommended for other software.

  • Host source code for Scientific Software in an approved digital repository. USGS OpenSource GitLab is currently the only approved digital repository.

  • Refer to Develop and USGS OpenSource GitLab

Deploy Code as an Application

  • Recommend for all software (when applicable).

  • Refer to Deploy

 

* Required for Scientific Software only

** Required for all software