NASA Open Source & Federated

Code Sharing

Jason Duley OCIO / ARC

Beth Beck OCIO / HQ 

5/5/2015

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