Starting in August 2012, we are spending six months doing infrastructure improvements, including project documentation, websites (wiki, forum, blog), and the GMAT build system. This page holds some documentation related to this effort.
Scope
The infrastructure improvement project will encompass the following items:
Web-based project infrastructure
Wiki
Forum
Issue tracker
Blog
Static documentation
Build system
CMMI-required documentation
Developer documentation
Current State
The current project infrastructure has the following major issues:
Web-based project infrastructure:
Information is scattered, non-cohesive, and hard to find.
Some tools are hosted in unacceptable places (wiki/forum: personal server; JIRA: project-funded third-party server).
The wiki software is out of date and hard to use, and cannot be easily upgraded.
Project members are responsible for system administration for various systems.
Some infrastructure items aren't being used appropriately (blog, mailing lists).
Some information that could be public is located internally (nightly build files, some documentation, test system, test results, etc.)
Build system:
The build system is hard to use, non-cohesive, non-standard, and partially undocumented.
Custom automated build and test processes are fragile and require frequent troubleshooting.
Test processes don't use an official daily build package as input.
CMMI documentation:
Documentation required by GPR 7150.2 is incomplete.
Existing documentation is disorganized and non-cohesive.
Developer documentation:
Getting started as a GMAT contributor is hard due to lack of "developer's handbook"-type documentation.
Vision
The infrastructure improvements should meet the following guiding principles:
Information should be organized, easy to find, and inviting to visitors.
Information should be easy to maintain by project contributors.
Information should be public unless required to be private.
Tools should encourage publicly-visible communication.
Tools should offer straightforward migration of data from old tools.
Documentation and processes should meet requirements of GPR 7150.2.
Where practical, tools should be free and open-source.
Selected tools should be established and widely used in the industry.
Automation tools should be easy to use by external users with a minimum of supporting documentation.
Requirements
Web-based project infrastructure:
The Atlassian JIRA issue tracking system must be supported throughout the R2013a release cycle.
The infrastructure must support import and export of existing JIRA data.
The Apache Subversion issue tracking system provided by SourceForge must be supported throughout the R2013a release cycle.
The Apache Subversion issue tracking system provided by GSFC Code 585 must be supported throughout the R2013a release cycle.
The infrastructure tools must be maintained by a party external to the core GMAT project team.
Build system:
The build system shall use free, open-source tools.
The build system shall support building the GMAT application for the following architectures:
x86
x86-64
The build system shall support building the GMAT application in the following configurations:
GUI
Console
The build system shall support building the GMAT application on the following platforms:
Windows 7
Apple-supported versions of Mac OS X
An active distribution of GNU/Linux
The build system shall be structured to allow for use by automated processes directly after initial checkout from the code repositories.
CMMI documentation:
(TBD)
Developer documentation:
(TBD)
Milestones
Project Infrastructure
Stand up a sandbox server. The server should be online, accessible, and configured with local installations of the Atlassian tools we're currently testing through Atlassian OnDemand. [9/21]
Build System (all by 10/18)
Research existing build system
Choose a new tool
Apply new tool to 32-bit GMAT on Windows 7 64-bit.
Apply new tool to 64-bit GMAT on Windows 7 64-bit, a current version of Mac OS X, and a modern distribution of Linux 64-bit.
Apply new tool to 32-bit GMAT on Mac OS X 10.6 (Snow Leopard) 64-bit.
Apply new tool to 32-bit GMAT on a modern distribution of Linux 32-bit.
Finalize user documentation:
How to use build scripts to build GMAT
How to interact with the build scripts as a GMAT developer
How to work with the build scripts as a build system maintainer
Hosting
We've gotten legal approval to choose our own host, as long as they meet certain Terms of Service requirements. No commercial hosting provider we've looked at has an acceptable TOS by default, but Joel has been contacting providers to gauge interest in creating a custom TOS. So far the following hosts have been contacted: