Project Member Startup Guide (UNDER DEVELOPMENT)

Overview

This guide is designed to get a new member of the GMAT team up and running with GMAT as soon as possible. It contains instructions for attaining elevated privileges, setting up the computer accounts needed to participate in the project, and how to create the GMAT build system on your computer. It does not contain detailed information on the usage of tools and accounts; these are described in separate parts of this wiki.

 

 

Setting Up Computer and Accounts

These instructions assume you already have access to the NASA network through an NDC account. The very first thing you need to do upon joining this team is to attain elevated privileges for your desktop or laptop account. Elevated privileges are necessary for installing and running software development tools downloaded from the Internet. After that you can set up your other accounts, either directly or by requesting them

Gaining Elevated Privileges

To get elevated privileges you need to take the required training, after which you can apply for elevated privileges through the NAMS system.

The training involves taking two online courses: a general course on IT security for those with elevated privileges, and an operating system specific course. The courses are:

  • Elevated Privileges on NASA Information Systems (course ITS-002-09)

And one of:

Operating System

Specific OS Training Course

Windows 10

Microsoft Windows 10: Supporting Authentication, Permissions and Data Security (SS-MW_WDMC_A03_IT_ENUS)

Windows 8.1

Microsoft Windows 8.1 - Supporting Windows 8.1: Recovery and Endpoint Security (SS-MW_MGMB_A06_IT_ENUS)

Windows 7

Protecting Windows 7 against malware and vulnerabilities (SS-MW_MWET_A06_IT_ENUS)

MAC OS

MAC OS X Security (ITS-001-09)

Unix

UNIX Fundamentals: Security (SS-LU_UNIX_A04_IT_ENUS)

Linux

CompTIA Linux + 2014 Powered by LPI: LX0-104 Security, Data and Accessibility (SS-CS_LXPT_A04_IT_ENUS)

Windows Server 2008

Communications and Security in Windows Server 2008(SS-WS_MWCD_A07_IT_ENUS)

Windows Server 2012

Microsoft Windows Server 2012 R2 - Installing and Configuring: Security (SS-WS_ICFH_A09_IT_ENUS)

 

 

To apply for elevated privileges navigate to the NAMS Web site (https://idmax.nasa.gov/nams/user/ ) find the ACES Workflow for Elevated Privileges line, click on the Modify Access button, fill out the online form, and fill out the required fields indicated by the red asterisks. You don’t need to fill out the training, the NAMS system will do this automatically (assuming you have done the online courses, of course!).

For the “Business Justification” field, use the following language:

TBS - Get from Darrel

Finally, click on the Submit Modification button and the ACES team will make it so.

 

Accounts

There are two groups of accounts that you need to have for GMAT. The first group you set up yourself, the second group the team lead creates for you. Tables 1 & 2 describe the usage and setup of each of these accounts.

Account

Usage

Setup Instructions

Google

Access to Google Drive

JIRA

Access to bug tracking and work assignment management tool. This tool is central to status discussions in the weekly status meeting.

  • Go to http://bugs.gmatcentral.org
  • Click on Sign up link in the login area (below the username and password fields)
  • Fill out form, enter word as shown, and click on Sign Up button
  • Activate account when you receive e-mail

Wiki

Ability to edit online documentation in the GMAT Wiki

  • Go to http://gmatcentral.org
  • Click login in upper right hand corner of the screen; use same password as for JIRA
  • You are now enabled to edit most pages, and wiki tools are available to you.

SourceForge

Public code repository, accessed using git

  • Go to https://www.sourceforge.net
  • Click on Join in the upper right corner
  • Fill out form and click Register button
  • Activate account when you receive e-mail

GMAT mail lists

Receive e-mails from GMAT-developers and GMAT -buildtest lists

  • Log into SourceForge at https://www.sourceforge.net
  • Search for GMAT, it usually shows up with the logo as second or third item
  • Click on mailing lists (located on toolbar at top of page)
  • Click on subscribe found next to the relevant mailing list
  • Fill out information in “Subscribe to GMAT-developers” (or GMAT –buildtest) block
  • Click on subscribe
  • Activate account when you receive e-mail

GMAT forums

Phpbb forum for public discussions of GMAT issues.

  • Go to http://forums.gmatcentral.org/
  • Click on register at the upper right of the page.
  • Fill out form and the “Confirmation of Registration” section.
  • Click on Submit button
  • Activate account when you receive e-mail

Git mail list

TBS

  • TBS

Table 1. Self Created GMAT Accounts

 

Table 2 shows the accounts that need to be set up by the team lead. Note that while the setup instructions indicate that you should e-mail the team lead, it is possible the team lead may have already done this. You will know if you receive e-mail notifications about these accounts.

 

Account

Usage

Setup Instructions

mesajade

Internal source code repositories gmat.git & gmatinternal.git.

 

  • Send e-mail to team lead requesting mesajade account.
  • Team lead will submit request to NASA Access Management System (NAMS) to add you to GSFC Code 590 Version Control.
  • You will receive e-mail notifying you of request and of account creation.
  • Log onto the account using your NDC username and password.
  • Enter “ls –l ../GMAT” – you should see one directory named “git”. If you instead see “permission denied” contact the team lead to get the permissions set properly.

Svn repos

Jazz, Sourceforge

  • Send e-mail to team lead
  • TBS

Svn e-mail

TBS

Table 2. GMAT Accounts Created by Team Lead

Note that the mesajade setup instructions say that you need an NDC user name and password. These are standard for people working on NASA projects; if you don’t already have one you need to get one.

Downloading Executable from Public Site

To get a running version of GMAT quickly you can download an executable version of GMAT associated with the next release. To do this, carry out the following steps substituting the current release number for release in the procedure:

  • Go to https:/sourceforge.net/ and log on
  • Search for GMAT and click on link.
  • Click on Download button. When download is complete, unzip the file.
  • Navigate to GMAT/release/bin (substitute release number you want) to find executable
  • Run GMAT without changing defaults. Push play button immediately (it’s higher on the side toolbar than the buttons used to control animations at the bottom of the toolbar. You should see a 3-D orbit and a 2-D ground track. Note: Always use Quit command to exit GMAT. Do not simply close all windows.

 

 

Building GMAT

Installing Tools

The recommended toolset for GMAT is divided into 2 groups. The first is the compilation group; tools that are required to build GMAT. The second group is the support group; these are tools that are used as part of day to day work.

Table 3 describes the compilation tools; Matlab and Python are optional capabilities for building a working system, but are not optional for the development team as we correct, enhance and test all capabilities.

Tool

Usage for GMAT

Xcode (preferably v7 or higher)

Xcode is the major development tool for MacOS. In GMAT, its primary use is as a text editor, with compilation being done via makefiles in a Unix terminal window.

MS Visual Studio C++ 2013 Community

Compiling GMAT for Windows

GCC (v4.8.5 or higher)

Compiling GMAT for Linux

CMake (version 3.7 or higher)

Compiling GMAT and managing configuration options such as which plugins are or are not included, or where the executable is placed.

Matlab 2016a 64 bit

For building Matlab interface plugin and the fmincon plugin

Python (version 3.4 or 3.5)

For building Python interface plugin

Table 3. GMAT compilation toolset

 

To install these tools, use one of the following procedures:

  • Installing Compilation Tools for Windows (planned)
  • Installing Compilation Tools for MacOS (future link)
  • Installing Compilation Tools for Linux (planned)

Table 4 describes the support tools. Some are required, such as the JIRA bug tracker/work planner tool. Others are optional or have several possibilities; for example git commands can be executed from the command line or they can be controlled by a variety of git clients. A class of tools with a wider choice of selections is indicated by shading; individual tools of that class appear below it.

Tool

Usage for GMAT

JIRA

Bug tracking and work assignment management tool

Git clients - Source code repository management

Sourcetree

A git client that runs on MacOS and Windows

TortoiseGit

A git client that runs on Windows only

SmartGit/Hg

A git client that runs on MacOS, Windows & Linux

 

 

SVN and SVN client

Access to regression test system

DoxyGen

Code documentation

XMLMind

Editing user documentation

MinGW

Used on Windows to build User Guide pdf and html help

Table 4. GMAT support toolset

TBS. To install these tools, follow link to the appropriate (still to be written) support tool page.

First Build of GMAT compilation system and GMAT from internal repositories

To build GMAT, you must first clone the system from the GMAT internal repository by executing the following commands:

With your Code 590 server username replacing username. These repositories are kept up to date by developers as they create or modify code.

After this, simply follow steps 1-4 defined in GMAT CMake Build system, which comprise:

Step 1: Download and Configure GMAT Dependencies

Step 2: Create GMAT Build System Using CMake

Step 3: Build and Install GMAT

Step 4: Run GMAT

 

Learning GMAT

Recommended Reading

The table below describes recommended reading for each of the major roles within the GMAT team. A future version of this guide will provide more guidance on the order in which to take on the appropriate set of readings.

 

Role

Training

PDL/

Systems Engineer/

Feature Leads

 

  • The GMAT Product Plan
  • Read engineering activities wiki page
  • Read representative engineering specs
  • Read architectural design spec
  • Test system overview wiki
  • User guide overview wiki

Mentoring:  Mapped to an experienced lead.

Flight Dynamics Engineer

  • The GMAT Product Plan
  • Read engineering activities wiki page
  • Read representative engineering specs
  • Read test system overview wiki
  • Read user guide overview

Mentoring:  Mapped to an experienced AE.

Software Engineer

Mentoring: Mapped to an experienced SE.

Test Engineer

  • The GMAT Product Plan
  • Read test plan
  • Read test Procedures
  • Read test system overview wiki

Mentoring: Mapped to an experienced TE.

Table 5. GMAT Reading List by Role

 

Running GMAT: Architecture

TBS, will be in conjunction with the propagation tutorial in the user guide (ch 5). It will use the basic propagator run to illustrate concepts in the architecture overview (ch. 3 of
Architecture Specification. The focal point of this section will be the Engine. This should be a JIRA ticket in itself for a subsequent sprint, presumably after R2017a goes public.

Running GMAT: Flight Dynamics Modeling View

TBS, this will have a similar approach to the Architecture View, but the focus will be on requirements, math specs and detailed design related to propagator. The focal point of this section will be the Model. This should be a JIRA ticket in itself for a subsequent sprint, presumably after R2017a goes public.

Remaining work list

This stuff can be added slowly to this guide, all of it can wait until after Release 2017a goes public.

  • Learning how to modify GMAT using Git and Build System
  • Learning how to use JIRA
  • Test system information