NASA Open Source & Federated
Code Sharing


Topics
- Introduction
- Process
- NAMS
- GitHub and other Internet-based repository systems
- Open Source Catalog
- code.nasa.gov
- Current work in Code Sharing
- Architecture & Demo
Introduction
OCIO CTO for IT, Deborah Diaz is very interested in applying innovation to Code Sharing at NASA
Open Innovation Team (led by Beth Beck) works with developers & SRAs to release open-source
Open Inno. manages code.nasa.gov and operates the NASA GitHub.com organization
Jason Duley (me) leads Code Sharing for Open Innovation and is working to make it better
Process

NAMS
- GitHub.com account provisioning
- NASA Organization participation is managed by NAMS
- GitHub accounts mapped to nasa.gov email
http://1.usa.gov/1bsE8qB
Direct Link to NAMS Form:
Which Internet-Repo?
- There are several popular sites:
- GitHub (GIT), SourceForge (SVN/GIT/Hg), BitBucket (GIT/Hg)
- Due to popularity, ease of use and rich feature set - GitHub.com is platform of choice
- GitHub makes up majority of repositories currently
- BitBucket, SourceForge can be used!
- Project Hosting on Google Code - end of life Jan 25, 2016
GitHub.com
http://github.com/nasa
NASA Organization
- 80 Public Repositories
- 130+ users
- 50+ Development Teams
- 18/50 Private Repositories
- and growing ...
Open Source Catalog
- Make NASA open-source participation more community-driven
- Modeled after DARPA work with open source catalogs
- Catalog feeds code.nasa.gov
https://github.com/nasa/Open-Source-Catalog
- Next: 2 ways to contribute to Open Source Catalog and publish on code.nasa.gov
Open Source Catalog
Add your project the easy way (send us the details)
1. Go here
https://raw.githubusercontent.com/nasa/Open-Source-Catalog/master/required_fields_project_template.json
2. Download a copy of the above file
3. Edit the file with your project specifics
{
"NASA Center": "Ames Research Center",
"Contributors": ["jasonduley"],
"Software": "My New Software Project",
"External Link": "https://github.com/nasa/my-new-software-project/wiki",
"Public Code Repo": "https://github.com/nasa/my-new-software-project",
"Description": "A project I am registering into the NASA org",
"License": [ "NASA Open Source" ],
"Categories": ["Framework","Toolkit","Web"],
"Update_Date": "2015-05-05"
}
4. Send us the file and we'll update the Catalog
Open Source Catalog
Add your project the REALLY easy way (Pull Request)
1. Go here
https://github.com/nasa/Open-Source-Catalog/blob/master/catalog.json

2. Click Edit
3. Edit the file adding a JSON entry
4. Enter a change desc.
5. Click green button

code.nasa.gov
- Formerly a Wordpress Site, now AngularJS/Bootstrap powered
- Listing of NASA Open Source projects
- Site driven by Open Source Catalog
- Currently adding Open Source from field center specific sites
- Search Projects, SRA contact info, Process information
Code Sharing Next Steps
- Internal NASA Code Sharing
- Heterogenous Federated Repositories (GIT / SVN / Hg / CVS / Custom)
- Supports
- Distributed Repository Browsing
- Full-text Search of Source Code
- Attribute/Faceted Search
- Provide App Recipes - build apps from distributed software components
- Leverage existing Data Standards to model Software (DOAP)

Demo
- Goal: Demonstrate Full-Text Search and Browse of Software Repositories in Federated System
- Demo flow ...
- Search for a keyword
- Keyword is not found
- Add some source code to a repo
- Incremental indexer runs
- Redo the search on updated index
- View the Search hit
- Show browsing repos in the federation
Thanks/Questions
OCIO Open Source
By Jason Duley
OCIO Open Source
- 514