Skip to main content
U.S. flag

An official website of the United States government

Open-Source Software Requirements

This policy provides guidance on considerations that must be made prior to acquiring or producing any custom-developed code intended for use as software. 

1.  Purpose
 
A.  This policy provides guidance on considerations that must be made prior to acquiring or producing any custom-developed code intended for use as software. 
 
B. This policy requires appropriate Government data rights to custom-developed code to be obtained prior to any contractual work beginning. Including at a minimum, rights to Government-wide reuse and rights to modify the code, and appropriate licensing upon delivery, subject to limited exceptions; and 
 
C. This policy establishes a requirement to make publicly available custom-developed code, including source code documentation, public notice through the USGS source code inventory, and licensing appropriate for the public domain.  
 
2.  Scope.  
 
A. This Informational Memorandum (IM) applies to all software developed by or on behalf of the Bureau that is intended for public or internal use on or after the effective date of this policy. 
 
3.  Background.  
 
A.  This IM provides further guidance on the Department of Interior Informational Memorandum - Open Source Software Policy. Further extension of this IM is covered under USGS Fundamental Science Practices (FSP) and applies to software releases that are considered USGS scientific information products (Scientific Software) as defined in IM OSQI 2019-01, Review and Approval of Scientific Software for Release. Some USGS software, such as software developed for use on sensitive Bureau systems or software that has privacy, confidentiality, licensing, national security, or other constraints that would restrict release, is exempt from public release of source code. 
 
3.  Definition. 
 
A.  Source Code. Computer commands written in a computer programming language that is meant to be read by people. As such, source code is a higher-level representation of computer commands and, therefore, must be assembled, interpreted, or compiled before a computer can execute it as a program. 
 
B.  Software. Refers to either (1) computer programs that comprise a series of instructions, rules, routines, or statements, regardless of the media in which recorded, that allow or cause a computer to perform a specific operation or series of operations; or (2) recorded information comprising source code listings, design details, algorithms, processes, flow charts, formulas, and related material that would enable the computer program to be produced, created, or compiled. Software has the intended purpose of routine functional use to support official duties of Federal employees or as a component of an IT system supporting bureau operations or mission. Software is considered noninterpretive information. 
 
C. Custom-Developed Code. Custom-developed code is source code that is produced in the performance of Federal contracts, Artificial Intelligence, or is otherwise funded by the Federal Government, including source code, or segregable portions of source code, for which the Government could obtain unlimited rights under Federal Acquisition Regulations (FAR) Pt. 27 and relevant agency FAR Supplements. Custom-developed code also includes source code developed by Bureau employees as part of their official duties.  
 
D. Open Source Software (OSS). Software that can be accessed, used, modified, and shared by anyone. OSS is often distributed under licenses that comply with the definition of "Open Source" provided by the Open Source Initiative (https://opensource.org/osd) and/or that meet the definition of "Free Software" provided by the Free Software Foundation. 
 
E. Open Development Practices. Methods that provide an environment in which OSS can flourish and be repurposed. These practices include distributing a minimum viable product as OSS; responsible management of OSS utilizing version control; engaging the public before official release; and drawing upon the public’s knowledge to make improvements to the project. 
 
4.  References.   
 
 
B. DOI Open Source Software Policy, November 8, 2021   
 
C. Improving Implementation of the Information Quality Act (Office of Management and Budget (OMB) memorandum M-19-15, April 24, 2019)   
 
 
5.  Policy. 
 
This policy implements the requirements of the 2016 Federal Source Code Policy and 2021 Department of Interior Informational Memorandum - Open Source Software Policy
 
A. Subject to limited exceptions, custom-developed code as a component of software is required to be made publicly available with the intent to broadly share source code for reuse as OSS upon (1) initial product acceptance; (2) routine implementation of the software into official duties of Federal staff; or (3) routine support of the Bureau’s mission. Quality assurance, licensing, and documentation of source code must be sufficient to facilitate these objectives. In addition, this policy extends to the following: 
 
B. scientific software must additionally follow USGS FSP guidance.  
 
C. custom-developed code must utilize appropriate licensing to support OSS and a posture of being “open first”, the purpose of this policy. 
 
D. custom-developed code must be made publicly available through approved USGS source code hosting platforms. 
 
E. promote a posture of Open Development Practices to the extent possible and appropriate.  
 
F. exceptions for custom-developed code that is not appropriate to be made publicly available or not able to meet the OSS classification must be submitted and approved by the Office Associate Chief Information Officers (ACIO). 
 
G. any custom-developed code must be registered with the USGS source code inventory and include the required USGS defined metadata, standard legal disclaimer, and a statement of the licensing that applies to the custom-developed code. 
 
6.  Responsibilities. All those involved in any phase of the software management or development process are responsible for complying with this policy.
Was this page helpful?