See the [ForDevelopers] page for information on Git client requirements. A tutorial of using Git to work with ODTBX is given in the Git Tutorial presentation.
Anyone with a SourceForge account may clone the OD Toolbox Git repository with read-only access. To contribute code to ODTBX, please contact an ODTBX admin and see the Contributors presentation for your operating system.
The OD Toolbox Git repository can be downloaded using a valid SourceForge username:
git clone ssh://username@git.code.sf.net/p/odtbx/git odtbx-git
As of Oct 2012, the repository's general directory layout is:
odtbx/
Doc/
ODTBX_Data/
ODTBX_Source/
Regression_Validation/
vendor/
Jat/
*Mice*/
odtbx is the location of the most up-to-date OD Toolbox code.
odtbx/Doc/ contains documentation for OD Toolbox models and algorithms.
odtbx/ODTBX_Data/ contains specific data models.
odtbx/ODTBX_Source/ contains the OD Toolbox source code.
odtbx/Regression_Validation/ contains the regression testing framework for OD Toolbox.
Some good guidelines for odtbx are:
Only the most up-to-date copy of the code will be stored here.
No developer shall commit changes to the code without coordination with the lead developer.
No developer shall merge any branches or copy any code without coordination with the lead developer.
vendor holds files that are provided by an external project, or vendor, and are used in current development. Currently it holds the different platform variants of MICE. However, they are all the same version of mice and match one of the tagged vendor versions.
In addition to the physical file layout, the Git repository contains branches and tags.
Branches contain significant development efforts that need to occur without disturbing the main development branch (called 'master'). Uses for branches include:
Development of specific functionality, such as consider,
Significant structural changes, such as mar08reorg,
Significant code merging and testing, such as consider_merge,
Important code that should be preserved, such as Mike Moreau's gpstools,
Code that should not be released as part of ODTBX, such as the gps_yaw,
or development of an Increment (if deemed necessary by the lead developer).
Some good guidelines for branches are:
Only the lead developer creates or removes a branch.
Branches are made from a specific point on the master branch.
Only the developer or developers for whom the branch was created will commit changes to the branch.
Only work which has been rigorously tested will be merged back into the master branch.
The lead developer controls the coordination and timing of merging data from the branch back into the master branch.
Branches are generally temporary and should either be deleted or merged as soon as the work is stopped or finished.
Tags are used to label and record significant snapshots of the codebase. Some good guidelines for tags are:
A tag is created only at the direction of the lead developer.
Releases will only be tagged once they have been rigorously tested, attached to an installer for users and demonstrated.
A copy of JAT is located in the vendor/Jat/ subdirectory. This is a mirror of the main JAT development repository and is read-only. If there are JAT changes to be committed and you don't have access to the pub1 repo then coordinate them with the lead developer to get the changes committed. Most ODTBX developers would probably fall into this category.
JAT is currently hosted on SourceForge at: https://sourceforge.net/projects/jat/
NOTE: This section needs to be updated! **
NOTE: JAT is used by multiple projects! **
This means that for OD Toolbox the use of the trunk and branches is different than the OD Toolbox repository.
As of October 2012, the current JAT repository layout is:
branches/
branches/ODTBX/
DE405/
external_jar/
media_files/
tags/
tags/ODTBX/
tags/ODTBX/Releases
trunk/
branches are used to segregate different JAT development efforts. The OD Toolbox project insulates itself from unexpected JAT changes by concentrating its JAT use and development in branches/ODTBX/. Some individual developers may also retain their own branches for separate work.
DE405 holds the DE405 raw data files from JPL. This is required by those using the JAT trunk but is not required for OD Toolbox.
external_jar is similar to the OD Toolbox vendor directory. It contains jar files that some parts of JAT depend upon, however no current OD Toolbox functionality requires these external jar files.
media_files hold sound and image files for use by JAT. Currently, no OD Toolbox functionality requires this.
tags hold significant JAT revisions. tags/ODTBX/Releases contains snapshots of JAT used for OD Toolbox releases starting with release 2.0.
trunk the mainline JAT development for other projects, but not for use on OD Toolbox.
All necessary JAT components are included with the OD Toolbox Git repository. In particular, the folders of interest are:
[ForDevelopers] - Go back to the main development page
WikiStart - Go back to OD Toolbox Home
Wiki: EclipseSetup
Wiki: EphemPage
Wiki: ForDevelopers
Wiki: GmatInterface
Wiki: Home
Wiki: MatlabEnvSetup
Wiki: OdtbxTestingProcess