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:

Made with Slides.com