Welcome to the NIST Open Source Software (OSS) code portal, otherwise known as code.nist.gov. This website allows public users to search and explore open source software developed by NIST and affiliated code collaborators. We want to expressly thank the LLNL Software Portal developers for sharing their portal code base, of which this site is built on. In other words, this is a site which demonstrates the value of OSS for reuse for discovery and exchange of code!
The NIST OSS catalog is also exported in compliance with Federal Source Code Policy for agency inventory in Code.gov. The NIST open source code inventory is accessible from this website in JSON format: code.json.
All NIST open source software follows the licensing and policy as described on the organization website here
Every repository must include a license statement in a LICENSE.md file.
Distributions of NIST software should also include copyright and licensing statements of any third-party software that are legally bundled with the code in compliance with the conditions of those licenses.
If you’re new to GitHub and open source in general, figuring out how to get set up can be a challenge. This guide is for getting started with GitHub, and specifically targets NIST developers working in the NIST GitHub Organization.
If you’re new to GitHub, you may want to read through the GitHub Help pages on Setting up and managing your GitHub profile. Here are some of the highlights:
You do not need a separate work account and personal account. Instead, you can link multiple email addresses to the same GitHub account, which is almost always preferred.
The USNISTGOV organization is managed by NIST. Only NIST staff may become a repository owner and must agree to the NIST GitHub Rules of Behavior.
Send the Rules of Behavior by email, with your GitHub username included, to email@example.com, requesting to be added to the organization.
After an administrator has added you to the organization, you will receive a notification email from GitHub. Alternatively, once the invitation has been sent, you will see a notification banner at the top of github.com/usnistgov which you can use to accept the invitation.
Head over to the @NIST People page and make your
Review the “Working with NIST Repositories” information below.
Repositories within the NIST organization are owned and managed by NIST. Please do not attempt to create personal repositories here.
All public information produced by NIST follow the guidance set forth by the NIST directives and policies on the Internal-only software publishing information website.
Before content is placed into a GitHub repository in USNISTGOV it should contain at a minimum the following information.
Remember that these repositories are hosted on GitHub servers, and should contain only NIST scientific research data.
When in doubt, contact your ITSO for guidance.
GitHub Pages are public websites hosted and published through a branch in your repository. The default service provided by GitHub on github.io domains may not be used with repositories in the NIST GitHub organization. An alternate service, hosted by NIST and forked from the 18F pages-server is available, see the pages wiki for more information.
Once your project is on GitHub, make sure users and contributors can find it! There are several ways to do this. NIST staff may contact firstname.lastname@example.org for help with the following tasks:
Include meaningful metadata (description and topic tags) in your repository.
Start with our list of recommended, standardized topics (categories and themes).
See helpful hints on GitHub’s topic help page. Add tags relevant to your project’s programming language, platforms, and more (e.g., Python, HPC, Linux).
Publicize any outreach activities or major milestones related to your project. Examples: You have a paper/poster/presentation accepted at a conference; you’re hosting a workshop or webinar; your project is nominated for an award; or you’re speaking on a podcast or guest blogging.
If your repository exists under a different organization, you can move it to NIST by selecting “Transfer Ownership” under Settings.
Make sure your repository is listed properly following (internal) Guidance for Publishing Software.
There are many great “getting started” guides for GitHub. Here are a few we recommend:
The Federal government also provides some relevant information:
NIST welcomes contributions from the general public to our open source projects on GitHub.
Refer to individual projects for their requirements on accepting contributions. In general though, we follow the “fork and pull” Git workflow model: