FAQs




What is DOE CODE?

DOE CODE is the U.S. Department of Energy's (DOE) new software services platform and search tool for software resulting from DOE-funded research that provides functionality for collaboration, archiving, and discovery of scientific and business software funded by DOE. DOE CODE replaces the Energy Science and Technology Software Center (ESTSC). DOE CODE is an open source project and is available on GitHub. Throughout these FAQs, the terms "software" and "code" are used interchangeably, though it is understood there are discrete definitions in various communities.

What does it mean for DOE CODE to be released in Alpha?

In Alpha, DOE CODE supports submission of software projects, code repository services, and search and discovery of submitted software projects. As development of DOE CODE continues toward Beta and Production releases, additional features and functionality will be included. Future requirements will include support and archiving of additional repository types, automated alerting for software points of contact, authentication using GitHub accounts, and more user profile features.

How is the DOE CODE software submission and search tool different from DOE CODE GitHub?

DOE CODE tool is a platform that provides for the submission and search of software resulting from DOE-funded projects. The DOE CODE "platform" that runs this site is an open source project available on GitHub.

The DOE CODE GitHub Community is a repository option available to DOE-funded developers. This community is open to registered users of DOE CODE, and those users are welcome to create and import their own repositories once they join. This service is provided by OSTI in recognition of the fact that many developers prefer to house and manage their projects on GitHub. DOE CODE is an open source project and is also available on GitHub.

Users may request to join the DOE CODE GitHub community by filling out the request form.

What does DOE CODE contain?

DOE CODE contains records for DOE-funded scientific and business software and links to the software or code repository. In addition to the code, the repositories may include manuals, examples, test data, etc.

Does DOE CODE provide repository services?

Yes. DOE CODE provides repository hosting services for the DOE community via  GitHub  and GitLab. GitHub repository services are for those who want typical GitHub open source project functionality. OSTI's GitLab repository service offers the same functionality as the GitHub repository service, but allows for open or closed repositories and more control of the code.

If you are interested in making use of the GitHub or GitLab repository services and would like to request to join the DOE CODE GitHub community, please fill out the request form. For any questions about the repository services, contact doecoderepositories@osti.gov.

What are the Project Types found in DOE CODE?
Open Source, Publicly Available Repository - Software can be freely accessed, used, changed and shared (in modified or unmodified form) by anyone in a public repository. Open Source software is made by many people and distributed under licenses that comply with the Open Source Definition. See the Open Source Initiative  for more information and definitions.

Open Source, No Publicly Available Repository - Code is Open Source but is not yet available in a public repository. Interested users can contact the developer(s) or responsible parties for information regarding access and (re)use. A landing page URL is required for submitting Open Source, no Publicly available repository code; the URL should provide additional information on how to obtain access to the code.

Closed Source, Site Hosted - Software that is not Open Source and for which access must be granted by contacting a licensing official. Software is often Closed Source because it is proprietary, or has otherwise been deemed appropriate for limited distribution only. A landing page URL is required for submitting Closed Source, Site Hosted code; the URL should provide additional information on how to obtain access to the code.

Closed Source, OSTI Hosted - Software that is not Open Source and for which access must be granted by contacting a licensing official. Software is often Closed Source because it is proprietary or has otherwise been deemed appropriate for limited distribution only. The upload of source code or a compiled binary is required and a landing page URL is optional for submitting Closed Source, OSTI Hosted code. A private GitLab repository will be automatically created using the uploaded resource and a Repository Link will be generated automatically with which OSTI will distribute the code/software. If interested, you may request an OSTI GitLab account at https://www.osti.gov/doecode/gitlab-signup.

DOE CODE also maintains a comprehensive inventory of DOE-funded custom-developed business software.
Are there restrictions on the use of the material in DOE CODE?

There may be restrictions on use of the material based on the associated license(s). Currently, DOE CODE supports the following list of Open Source licenses:


More information regarding these licenses can also be found at the  Open Source Initiative - Licenses by Name.

If you choose to use a license not in the above list you may select "Other" and provide a link to the landing page of the license. For Closed Source, OSTI Hosted, if records do not have a license the system will default to the legacy binary license.
How is scientific software provided to DOE CODE?

Individual software records and associated metadata are directly provided by the developer or the developing organization to DOE through DOE CODE. When an individual software record is associated with a DOE National Laboratory, the laboratory POCs will be notified of the record submission or announcement.

When providing software and code to DOE CODE, users will first need to identify what type of software they are submitting - scientific or business software. Users who are unsure of the type of software are encouraged to please work with their site's Dissemination Authority.

In cases where a repository link from which OSTI can access and archive software is not available, the software itself should be submitted to OSTI along with associated metadata. For submission of limited availability software, please continue to utilize Announcement Notice 241.4 via E-Link. Beta/Future versions of DOE CODE will address submission of limited availability software.


Providing Scientific Software to DOECODE

DOE CODE offers two paths for users to provide scientific software. Users can (1) submit code to DOE CODE, and (2) announce code to the Department of Energy for official review and release through DOE CODE. For more information about submitting and announcing code, see the "What does it mean to submit scientific software to DOE CODE?" and "What does it mean to announce scientific software to DOE CODE?" for more details.

What does it mean to submit scientific software to DOE CODE?

Users may want to simply submit their scientific software to DOE CODE because submitting offers increased discoverability and the option to obtain a Digital Object Identifier (DOI) for the code, making it more easily citable and shared. Submitting scientific code to DOE CODE is easy, with only a minimal set of metadata required. The primary use case for this functionality includes codes that are in early development and for developers wanting to obtain DOIs early in the process. (See also "What is a Digital Object Identifier (DOI)?").


Required Metadata to Submit Scientific Software to DOE CODE:
  • Project Type
  • Repository Link;* Landing Page;** Source Code or Compiled Binary***
  • Software Title
  • Description/Abstract
  • License(s)
  • Developers

*Currently only Git and SVN-based repositories are supported. Most repositories hosted at GitHub, Bitbucket, SourceForge, and GitLab support Git and SVN-based repositories. When submitting a repository, users should be certain to use the direct URL to the actual repository. As an example, the direct Repository Link for DOE CODE is  https://www.github.com/doecode/doecode whereas the project landing page is  https://www.github.com/doecode. There are plans to expand this functionality in future releases to support other repository types such as CVS.

**A landing page is required when submitting or announcing Closed Source, Site Hosted code. A landing page is optional when submitting or announcing Closed Source, OSTI Hosted.

***The source code or compiled binary is required when submitting or announcing codes with Project Type Closed Source, OSTI Hosted and for announcing codes with Project Type Open Source, No Publicly Available Repository. For Closed Source, OSTI Hosted, the system takes the uploaded file and automatically creates a GitLab repo for the project, adding the Repository Link back into the record for the user.

What does it mean to announce scientific software to DOE CODE?

Users may need to announce their scientific code to the Department of Energy to ensure announcement and dissemination in accordance with DOE statutory responsibilities. Scientific codes in later stages of development are the primary use cases for this functionality. For announcement to the Department of Energy, there are basic requirements for metadata fields; however, other optional/non-mandatory data fields should be included during announcement when possible.

DOE national laboratories and other DOE facilities/contractors who have developed and/or modified software during work supported by DOE or during work carried out for others at DOE facilities are required to announce a record of the software to the Department of Energy, if the software meets the following criteria
  • the software meets the definition of STI;
  • the software is known or expected to be useful inside or outside the DOE community, or is not specific to the originating site;
  • a stable, usable, documented version of the software exists (i.e., the software is not under initial development); and
  • the software has undergone all appropriate reviews for sensitivity and export control.

Scientific software that meets the following criteria need not be announced to the Department of Energy:
  • operational systems software that is site-specific, unique to a particular hardware, or necessary to ensure the fundamental operability of automated data processing equipment, whether supplied by the manufacturer of the system hardware or others;
  • computer software programs developed and/or modified during work carried out for others at DOE facilities that are specifically excluded in the agreement under which the non-DOE funded work was performed;
  • software generated under the auspices of the Energy Information Administration; and
  • specific software used by power administrations for the operation, control, planning, and modeling of electric power transmission systems and the interconnected utilities; however, modifications/enhancements to portions of this software that are not an integral part of the whole and have potential application outside the power administrations should be announced.

Required Metadata to Announce Scientific Software to the Department of Energy through DOE CODE:
  • Project Type
  • Repository Link;* Landing Page;** Source Code or Compiled Binary***
  • Software Title
  • Description/Abstract
  • License(s)
  • Developers
  • Release Date
  • Sponsoring Organization Name
  • Primary Award Number
  • Research Organization Name
  • Contact Information

In addition to the basic requirements for metadata fields (above), other optional/non-mandatory data fields should be included during announcement when possible.

*Currently only Git and SVN-based repositories are supported. Most repositories hosted at GitHub, Bitbucket, SourceForge, and GitLab support Git and SVN-based repositories. When submitting a repository, users should be certain to use the direct URL to the actual repository. As an example, the direct Repository Link for DOE CODE is  https://www.github.com/doecode/doecode whereas the project landing page is  https://www.github.com/doecode. There are plans to expand this functionality in future releases to support other repository types such as CVS.

**A landing page is required when submitting or announcing Closed Source, Site Hosted code. A landing page is optional when submitting or announcing Closed Source, OSTI Hosted.

***The source code or compiled binary is required when submitting or announcing codes with Project Type Closed Source, OSTI Hosted and for announcing codes with Project Type Open Source, No Publicly Available Repository. For Closed Source, OSTI Hosted, the system takes the uploaded file and automatically creates a GitLab repo for the project, adding the Repository Link back into the record for the user.

How is business software provided to DOE CODE?

To efficiently fulfill Departmental requirements to maintain an inventory of all DOE-funded custom-developed software and to report this inventory to the government-wide Code.gov website, metadata for all scientific and non-scientific (e.g., business) software should be submitted to DOE CODE. This inventory will foster scientific progress, provide transparency to and promote public uptake of DOE-funded open source software (OSS), and enable DOE to fulfill requirements for government-wide reporting of custom-developed software to Code.gov.

DOE CODE offers two paths for users to provide business software. Users can (1) submit code to DOE CODE, and (2) announce code to the Department of Energy for official review and release through DOE CODE. For more information about submitting and announcing code, see the "What does it mean to submit business software to DOE CODE?" and "What does it mean to announce business software to DOE CODE?" for more details.

What does it mean to submit business software to DOE CODE?

Users may want to simply submit their business code to DOE CODE. Submitting offers increased discoverability and the option to obtain a Digital Object Identifier (DOI) for the code, making it more easily citable and shared. Submitting business code to DOE CODE is easy, with only a minimal set of metadata required. The primary use case for this functionality includes codes that are in early development and for developers wanting to obtain DOIs early in the process. (See also "What is a Digital Object Identifier (DOI)?").

Required Metadata to Submit Business Software to DOE CODE:
  • Project Type
  • Repository Link;* Landing Page;** Source Code or Compiled Binary***
  • Software Title
  • Description/Abstract
  • License(s)
  • Developers
  • Sponsoring Organization Name

*Currently only Git and SVN-based repositories are supported. Most repositories hosted at GitHub, Bitbucket, SourceForge, and GitLab support Git and SVN-based repositories. When submitting a repository, users should be certain to use the direct URL to the actual repository. As an example, the direct Repository Link for DOE CODE is  https://www.github.com/doecode/doecode whereas the project landing page is  https://www.github.com/doecode. There are plans to expand this functionality in future releases to support other repository types such as CVS.

**A landing page is required for when submitting or announcing Closed Source, Site Hosted code. A landing page is optional when submitting or announcing Closed Source, OSTI Hosted.

***The source code or compiled binary is required when submitting or announcing codes with Project Type Closed Source, OSTI Hosted and for announcing codes with Project Type Open Source, No Publicly Available Repository. For Closed Source, OSTI Hosted, the system takes the uploaded file and automatically creates a GitLab repo for the project, adding the Repository Link back into the record for the user.

What does it mean to announce business software to DOE CODE?

Users may need to announce their business code to the Department of Energy to ensure announcement and dissemination in accordance with DOE statutory responsibilities. Business codes in later stages of development are the primary use cases for this functionality. For announcement to the Department of Energy, there are basic requirements for metadata fields; however, other optional/non-mandatory data fields should be included during announcement when possible.

Required Metadata to Announce Business Software to the Department of Energy through DOE CODE:
  • Project Type
  • Repository Link;* Landing Page;** Source Code or Compiled Binary***
  • Software Title
  • Description/Abstract
  • License(s)
  • Developers
  • Release Date
  • Sponsoring Organization Name
  • Primary Award Number
  • Research Organization Name
  • Contact Information

*Currently only Git and SVN-based repositories are supported. Most repositories hosted at GitHub, Bitbucket, SourceForge, and GitLab support Git and SVN-based repositories. When submitting a repository, users should be certain to use the direct URL to the actual repository. As an example, the direct Repository Link for DOE CODE is  https://www.github.com/doecode/doecode whereas the project landing page is  https://www.github.com/doecode. There are plans to expand this functionality in future releases to support other repository types such as CVS.

**A landing page is required when submitting or announcing Closed Source, Site Hosted code. A landing page is optional when submitting or announcing Closed Source, OSTI Hosted.

***The source code or compiled binary is required when submitting or announcing codes with Project Type Closed Source, OSTI Hosted and for announcing codes with Project Type Open Source, No Publicly Available Repository. For Closed Source, OSTI Hosted, the system takes the uploaded file and automatically creates a GitLab repo for the project, adding the Repository Link back into the record for the user.

How do I announce CUI, OUO, or ECI software to OSTI?

The Alpha version of DOE CODE is designed to support submission and announcement of DOE-funded unlimited availability software (including closed source, proprietary software). Announcement and discovery of Controlled Unclassified Information (CUI), including DOE Official Use Only (OUO) and Export Controlled Information (ECI), are not included in the Alpha version of DOE CODE. Beta/future versions of DOE CODE will address submission of limited availability software. Until then, please continue to utilize Announcement Notice 241.4 for submission of limited availability software. If you are unsure of the software sensitivity, please work with your site's Dissemination Authority.

What is a YAML file? How do I auto populate the YAML file?

YAML is a human friendly data serialization standard for all programming languages. DOE CODE provides functionality to allow users to auto-populate metadata in DOE CODE by placing a specifically formatted YAML file in their repository's root main directory. The file must be named "metadata.yml" or "doecode.yml", and the file must be formatted correctly.  See detailed YAML information and an example file.

What are the Categories of Software?

Different categories of software have different distribution requirements, limitations, and appropriate distribution channels, which are defined in the  Software Categories table. The table is not intended to provide an exhaustive list.

In cases where a Repository Link from which OSTI can access and archive software is not available, the software itself should be submitted to OSTI along with associated metadata. For submission of limited availability software, please continue to utilize Announcement Notice 241.4 via E-Link. Beta/Future versions of DOE CODE will address submission of limited availability software.

Do I need an account to use DOE CODE?

A DOE CODE account is not needed to search for DOE-funded software, but an account is needed to provide scientific and business software. Users meeting minimum criteria can directly create a DOE CODE account. All you need is your first and last name, government email address or valid contract number, and a password.

Both of the repository services we provide require a separate account in addition to the account for submitting or announcing to DOE CODE. To use repositories on OSTI's GitLab installation and DOE CODE GitHub, those interested must request an account by filling out the request form. DOE CODE Product Manager(s) will follow up with the requester.

What is a Digital Object Identifier (DOI)?

What is a Digital Object Identifier (DOI)? A DOI is a unique persistent identifier that references a digital object and provides long term access; DOIs remain stable even if the underlying address or URL for the content changes. OSTI is a member of and registering agency for DataCite and has the authority to assign Digital Object Identifiers to software and code that are submitted by DOE and its contractors or grantees. The assigning and registration of a DOI for software is a free service provided by OSTI to enhance DOE's management of this important resource.

What are the benefits of getting a DOI for code or software?
  • Announcing and registering code or software with DOIs enables researchers, especially future researchers, to more easily discover, access, and reuse the code or software for verification of the original experiment and to produce new results with the latest methods.
  • DOIs facilitate accurate linkage between a document or published article and the specific underlying code or software.
  • DOIs make code easy to cite in a standardized way (DOIs have become recognizable as pointers to important information around the globe), encouraging authors to include this step in their writing/publishing activities.
  • Enabling your code or software to be easily citable means that code developers, contributors, and others involved in the development, but not necessarily in the authoring of a publication, can receive proper attribution.
  • DOIs are designed to be more stable and persistent links than normal URLs. Registering the DOI with an international organization such as DataCite provides global resolving and the prospect of steadily increasing visibility of your research.
What if I need to have a project removed from DOE CODE?

To have a project removed from DOE CODE, please contact doecode@osti.gov.

How do I use the Advanced Search?
The advanced search will allow you to perform more complex searches and retrieve more specific results, offering you a number of fields, such as Title, Developer(s), or Release date to help you refine your search results.

All Fields
Searches all bibliographic data.

Software Title
Searches only software titles.

Developers
Searches all developer names, including ORCID if available.

Identifier Numbers
Searches for all identifying numbers, including DOE contract number, report number, non-DOE contract/award numbers, or other identifying numbers such as DOI.

Release Date
Searches for articles that were released within a specified timeframe. Select the starting date or ending date from the drop down calendar OR type MM/DD/YYYY, e.g. 01/01/2014.

Project Type
Searches the fields for Open Source, Publicly Available; Open Source, Not Publicly Available; Closed Source, Site Hosted; and Closed Source, OSTI Hosted.

Licenses
Searches by names of licenses.

Research Organization
Searches by the name(s) of the organization(s) that was funded and developed the software.

Sponsoring Organization
Searches the name(s) of the DOE program office(s) or other organizations that provided the funding for the development contributing to the software.

Sort
You can choose for your results to be sorted by Relevance, Release Date (newest to oldest) or Release Date (oldest to newest).

Are there APIs available for DOE CODE?

Yes, there are lots of APIs with stable endpoints. For more information, see the API documentation.

Do I need to have cookies enabled to use DOE CODE?

Yes, you must select Accept All Cookies. Please see our Website Policies/Important Links for further information.

How can I find out more?

For additional assistance, Contact Us.