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 |
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. |
|
Wiki | Ability to edit online documentation in the GMAT Wiki |
|
SourceForge | Public code repository, accessed using git |
|
GMAT mail lists | Receive e-mails from GMAT-developers and GMAT -buildtest lists |
|
GMAT forums | Phpbb forum for public discussions of GMAT issues. |
|
Git mail list | 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.
|
|
Svn repos | Jazz, Sourceforge |
|
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:
- “git clone ssh://username@gs-mesajade.gsfc.nasa.gov/home/GMAT/git/gmat.git
- “git clone ssh://username@gs-mesajade.gsfc.nasa.gov/home/GMAT/git/gmatinternal.git
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
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
|
Mentoring: Mapped to an experienced lead. |
Flight Dynamics Engineer |
Mentoring: Mapped to an experienced AE. |
Software Engineer |
Mentoring: Mapped to an experienced SE. |
Test Engineer |
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