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.
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.
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.
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.
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 email@example.com.
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 - 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, sensitive, or has otherwise been deemed appropriate for limited distribution only. A landing page URL is required for submitting Closed Source code; the URL should provide additional information on how to obtain access to the code.
DOE CODE also maintains a comprehensive inventory of DOE-funded custom-developed business software.
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:
- Apache License 2.0
- GNU General Public License v3.0
- MIT License
- BSD 2-clause "simplified" License
- BSD 3-clause "New or "Revised" License
- Eclipse Public License 1.0
- GNU Affero General Public License v3.0
- GNU General Public License v2.0
- GNU General Public License v1.0
- GNU Lesser General Public License v2.1
- GNU Lesser General Public License v3.0
- Mozilla Public License 2.0
- The Unlicense
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 URL to the landing page of the license.
Individual software records and associated metadata are directly provided by the developer or the developing organization to DOE through DOE CODE.
When providing software and code to DOE CODE, user 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.
Providing Scientific Software to DOECODE
DOE CODE offers two paths for users to provide scientific code. 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 code to DOE CODE?" and "What does it mean to announce scientific code to DOE CODE?" for more details.
Providing Business Software 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.
Required Metadata to Provide Business Software to DOE CODE
- Software title
- Software description
- Permissions (license, usage type)
- Contact name/e-mail
- Developer names
- Sponsoring organization
- Repository URL
As part of providing business software, users also have the option to obtain a Digital Object Identifier (DOI) to facilitate software citation and interlinking to related research products such as publications and datasets.
Users may want to simply submit their scientific code 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 to DOE CODE:
- Software Availability
- Repository Link* or Landing Page
- Software Title
*Currently only Git-based repositories are supported. Most repositories hosted at GitHub, Bitbucket, SourceForge, and GitLab support Git-based repositories. When submitting a repository, users should be certain to use the direct URL to the actual repository.
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 case 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.
For additional information about DOE scientific and technical software, refer to the Software Best Practices document.
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 to the Department of Energy through DOE CODE:
- Software Availability
- Repository Link* or Landing Page
- Software Title
- Release Date
- Sponsoring Organization Name
- Primary Award Number
- Research Organization Name
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-based repositories are supported. Most repositories hosted at GitHub, Bitbucket, SourceForge, and GitLab support Git-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 URL 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 SVN and CVS.
NOTE: If you are submitting Open Source, No Publicly Available Repository or Close Source code through DOE CODE, you will also be required to upload an archive file of your source code. This will be used for archiving purposes. Supported file types include: .zip, .tar, .tar.gz, and .tar.gz2.
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.
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.
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.
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)? 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.
- 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.
To have a project removed from DOE CODE, please contact firstname.lastname@example.org.
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.
Searches all bibliographic data.
Searches only software titles.
Searches all developer names, including ORCID if available.
Searches for all identifying numbers, including DOE contract number, report number, non-DOE contract/award numbers, or other identifying numbers such as DOI.
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.
Searches the fields for Open Source, Publicly Available; Open Source, Not Publicly Available; and Closed Source.
Searches by names of licenses.
Searches by the name(s) of the organization(s) that was funded and developed the software.
Searches the name(s) of the DOE program office(s) or other organizations that provided the funding for the development contributing to the software.
You can choose for your results to be sorted by Relevance, Release Date (newest to oldest) or Release Date (oldest to newest).
Yes, there are lots of APIs with stable endpoints. For more information, see the API documentation.
Yes, you must select Accept All Cookies. Please see our Website Policies/Important Links for further information.
For additional assistance, Contact Us