DOE CODE is the software services platform and search tool that allows for scientific and business software to be provided to the U.S. Department of Energy (DOE). The DOE Office of Scientific and Technical Information (DOE OSTI) developed DOE CODE, providing functionality for collaboration, archiving, and discovery of scientific and business software. DOE OSTI is charged with fulfilling the Department's responsibilities to collect, preserve, and disseminate scientific and technical information (STI), including software, emanating from DOE research and development activities.
In addition to DOE OSTI's charge for scientific software, the Office of the Chief Information Officer (OCIO) and DOE OSTI partnered to leverage DOE CODE to maintain a comprehensive inventory of DOE-funded custom-developed business software. In accordance with the Office of Management and Budget Memorandum M-16-21, Federal Source Code Policy: Achieving Efficiency, Transparency, and Innovation through Reusable and Open Source Software, DOE CODE fulfills requirements to maintain an inventory of all DOE-funded custom-developed software and to report this inventory to the government-wide Code.gov website.
DOE-funded scientific and business software is collected by DOE CODE. Software records within DOE CODE provide software details and links to the software itself,
a code repository, or project contact information for access to the software. The repositories may also include manuals, examples, and test data.
When providing software and code to DOE CODE, users 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 work with
their software point of contact.
Software records should be provided directly to DOE CODE, either by a developer or the developing organization. DOE CODE offers two paths for users to provide scientific code. Users can (1) submit code to DOE CODE to make the software discoverable and optionally assign a DOI, and (2) formally announce code to DOE, complying with DOE funding responsibilities.
Users can submit their code to DOE CODE. The submission process is for code in early stages of development with no distribution limitations, and for those who wish to obtain a DOI early in the process. Software that has an access limitation (OUO, CUI, etc.) cannot be provided via the submission process; it must go through the DOE CODE announcement process. Only a minimal set of metadata is required for submission to DOE CODE (details on required metadata are below).
Users may need to announce their code to DOE to ensure announcement and dissemination in accordance with DOE statutory responsibilities, complying with DOE funding responsibilities. The announcement process is for code in later stages of development that has gone through internal review and release processes. The DOE CODE announcement process requires additional metadata above the submission process (details on required metadata are below).
Metadata is information that is unique to and descriptive of a particular piece of software. There are different metadata requirements for the DOE CODE submission and announcement processes. Submitting software requires fewer metadata fields than announcing software. There are also optional metadata fields that can be utilized when either submitting or announcing software. More information on the optional fields can be found at DOE CODE Help.
*Depends on software's project type and access limitation.
**Required if the project is not hosted in a public repository.
DOE CODE provides assignment of digital object identifiers (DOIs) to unlimited distribution software. A DOI is a digital identifier that is globally unique, persistent, machine resolvable, has an associated metadata schema, identifies an entity in perpetuity, and provides long-term access to the object. DOIs are assigned to enable researchers to more easily discover software through additional discovery pathways and reuse software through citation of the DOI. They also allow for stronger connections to be made between software, publications, and data through reference and citation via DOI metadata.
DOIs can be assigned during the DOE CODE submission and announcement processes. During the software submission process, DOI assignment is optional. During the announcement process for software with unlimited distribution, a DOI will automatically be assigned unless the software has already received a DOI from DOE OSTI or another source. Limited distribution software will not receive DOIs during the announcement process. For more information, see What are the benefits of getting a DOI for code or software?
A software license indicates how code may be used and/or distributed. A software license can be assigned by the software copyright holder. A license is required when providing software to DOE CODE.
For open source software, DOE OSTI provides a list of the licenses that users can select from. Users can choose a license not listed by selecting “Other” and providing a URL to the landing page of the license.
For closed source software, users must provide either a license URL or contact email. When providing a license URL, the license URL page should include valid contact information. Otherwise, the user will be asked to provide a valid contact email address. For additional information about license requirements, reference Announcing Software to DOE CODE.
Prior to software announcement, users must ensure the software has undergone all appropriate reviews for sensitivity and export control by the originating site. The review process will determine unlimited or limited availability. If limited availability, the process will determine the required access limitations. For a list of access limitations and their definitions, refer to the Access Limitations table. For more information on access limitations, see What is an access limitation?
DOE CODE allows users to search and discover the bibliographic metadata for software resulting from DOE-funded projects and details on how to access the software. DOE CODE does not directly disseminate software projects. Access to the software is provided by the developer or developing organization. For open source software, a link to the repository or landing page URL is provided from the DOE CODE software record page. For closed source software, a landing page URL or contact email is provided from the DOE CODE software record page for users to reach out to the developer or developing organization to request access to the software. Limited software records will be discoverable within Science Research Connection (SRC), which delivers both unclassified/unlimited and controlled access information to the DOE community.
A software license indicates how code may be used and/or distributed. On a DOE CODE software record page, users can determine allowed use by means of the software license details. The software license is provided in the record page metadata, via the software landing page at the top left of the page, or via a license contact email. A detailed workflow of what licensing information is required for the different software types can be found on the Announcing Software to DOE CODE flowchart.
The DOE CODE GitLab repository service is separate from the submission and formal announcement processes to OSTI through DOE CODE. The repository service can be used for DOE-funded software projects throughout the development process, independent of submission and announcement of software records to DOE CODE. Visit DOE CODE Repository Service for more details.
*DOE CODE was initially developed as an open source project; the archived version of the DOE CODE project can be found on the DOE CODE GitHub Community Page.
Preservation includes ensuring that an object (or a record of the object) is not deleted. DOE OSTI encourages users to maintain access to the software or information on how to obtain the software if access or distribution status has changed. For information on how to remove a software record from DOE CODE, please contact doecode@osti.gov.