OCIO Code
Sharing Activities

Jason Duley OCIO / ARC
5/27/2015

Topics
- Introduction
- Open-Source Process
- GitHub and other Internet-based repository systems
- Open Source Catalog
- code.nasa.gov
- Ongoing work in Code Sharing
- Architecture & Demo
- Distributed Software Registry
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

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
code.nasa.gov
- AngularJS/Bootstrap powered site integrated with GitHub
- Listing of NASA Open Source projects (186 currently)
- Site driven by Open Source Catalog
- Includes Open Source from field center specific sites
- Search Projects, SRA contact info, Process information
Code Sharing Next Steps
- External/Open Source Community Focused
- Provide additional capabilities for citizens to engage with NASA open source via code.nasa.gov
- Build "solution-space" features to nurture SpaceApps and similar software projects
- Internal NASA Code Sharing
- Heterogenous Federated Code Sharing System
- Repositories (GIT / SVN / Hg / CVS / Custom)
- Supports
- Distributed Repository Browsing
- Full-text Search of Source Code
- Faceted Search of Projects
- Leverage Data Standards to model Software Projects

Demo
Demonstrate Search and Browse of Software Repositories in Federated System
Distributed Software Registry
- Problem: Need a way to describe Software Projects using a standard controlled vocabulary
- How: Leverage Data On A Project (DOAP) RDF vocabulary to model software assets
- Challenge: Need a simplified way to allow software owners create/manage descriptions
- Solution: Create a framework to allow authoring of project descriptions which are easy for developers to use, but create metadata descriptions with enough specificity
Thanks/Questions
Backup
API.nasa.gov
- Why API Management is needed
- Increasing number of APIs
- Finer-grained resource allocation
- API access control
- Deployment vs. Management
- mgmt layer sits in front of deployment (e.g.: micro-service)
- Features
- Caching, Rate Limiting, API Keys
- Provides hooks for analytics
API.nasa.gov
- Next Steps
- Add more APIS
- Two currently in the works:
- MSL Raw Images API
- Horizons API
- Characterized Piezoelectric and Magnetostrictive Material API
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:
OCIO Code Sharing
By Jason Duley
OCIO Code Sharing
- 536