/
GMAT R2025a Release Process

GMAT R2025a Release Process

This page is used to track the process and progress of the GMAT R2025a Release.

Release Lead Roles

RoleAssigneeAuthority/Responsibility
Release Manager
  • EGD
  • "owns" release, initiates process, creates tracking page, sends daily status updates, tracks issues to completion, makes sure everyone gets their stuff done, brings decisions to CCB/team, maintains tracking page, collects lessons learned, documents process improvements for next release.
  • Must be reachable during critical stages like creating and testing RCs.
Build Manager
  • Windows: PJC
  • Mac: PJC
  • Linux: DJC
  • Controls build system, creates RCs, sends RC availability announcements.
  • Must be reachable during critical stages like creating and testing RCs.
Test Manager
  • GUI: Tetyana
  • Windows Script: PJC
  • Control GUI/script testing for each RC. 
  • Must be reachable during critical stages like creating and testing RCs.

Release Risks

This is a list of all risks (opened and closed) related to smooth release of R2025a.

OwnerStatusDescriptionResolution
EGDMitigatewxWidgets 3.2.6 update being done close to the end of the release development cycleMitigating issues as they are found. In the event of a >minor roadblock, a decision will have to be made.
EGDMitigatepython 3.12 update being done close to the end of the release development cycleMitigating issues as they are found. In the event of a >minor roadblock, a decision will have to be made.
EGDMitigateGUI test updates for wx 3.2.6 being done close to the end of the release development cycleMitigating issues as they are found. In the event of a >minor roadblock, a decision will have to be made.


Tasks

All dates are referenced to 12:00 noon EDT.

For example, a deadline of March 15 should be interpreted as March 15, 12:00 noon EDT.


GMAT R2025a Jira List:

https://gmat.atlassian.net/projects/GMT/versions/11503/tab/release-report-all-issues

Early Tasks (EGD/BCM)

These are long-lead early tasks that can be completed before the detailed release cycle.

Use the checkmark ((tick)) for complete, the yellow clock () for in-progress, and the cross ((error)) for an issue.

TaskWhoStatusInstructions
Obtain Release AuthorizationBCM/EGD

(tick)

  • 2/21/25: Approved for release
  • 1/15/25: NTR approved and submitted SRS docs
  • 1/06/25: Currently awaiting NASA Approval and Case Number 
  • 12/09/24: Submitted R2025 New Technology Report (NTR) via E-NTR System (https://invention.nasa.gov/), includes a 10-day Innovator Review Cycle.

Update and Submit SW Release Package via SRS (https://softwarerelease.ndc.nasa.gov/)

  • Software Release System (SRS) routes package through multiple reviews: 
    • POC Review
    • Initial SRA Review
    • Technology Transfer Office Review
    • Patent Counsel Office Review
    • IT Security Review
    • Export Control Office Review
    • Section 508 Coordinator Office Review
    • Other Review
    • Final SRA Review
Update Sample Scripts
Area Leads

(tick) Defer until 2025b

  • MM/DD/YY: TBD

============================

This includes

-Ask SES if he think any more sample scripts needed.  

-Generic GOES sample scripts.  (Dont use GOES orbit or other data, generic torque recall, etc).

Jairus (Ground station masking, cov prop, IOD, TLE prop, Trk 2-23)

Steve S/Pete C (SAA sample script)

Above work ties in with the Release Notes.  (Review list above again after Release Notes written).  


Needed by App Freeze.

  • Write examples that demonstrate new functionality
  • Clean up all errors and warnings
  • Remove deprecated fields
  • Make sure all the old and new sample scripts run correctly.  (Note: There is a way to run all scrips in a folder, must be in Run_Mode=Testing)

Notes/Questions:  

  1. The OFI scripts are stored in the OFI repo, not in the GMAT repo. That's because OFI is an externally maintained and managed project.When GMAT is built, e.g. the windows build machine, it copies the OFI sample scripts into latestcompleteversion. That's how those scripts will be part of the release without being in the GMAT repo.
  2. The sample script file names be pre-pended with R2022a_
  3. Make sure all the API Folder (and associated sub-folder) sample scripts are updated and run correctly.
  4. Starting with R2021a:  For Nav, we will be adding python analysis scripts associated with the EKFS GPS point solution tutorial, to the GMAT releases.  Thus, in addition to the usual GMAT sample scripts, we should be making sure that the non-GMAT scripts, such as these python analysis scripts, also still run correctly. 
Write draft Release NotesEGD/All(tick)

Needed by App Freeze.

  • 2/20/2025: Team compiling release note updates in draft in team document repository

See Writing Release Notes

Update version number in User Guide cover
EGD(tick)

Needed by Visual Freeze; see details below.

Process to submit graphic requests:  open ticket via https://etd-support.ndc.nasa.gov/servicePortal

  • 1/21/2025: EGD-Uploaded graphics artifacts to the internal document repository release folder under the management tab
  • 12/2/2024: EGD-Created ETD graphics ticket 78067 for splash screen and user guide cover graphics update

Next time: integrate sejda-console to do this automatically.

Get updated splash screen
EGD(tick)

Needed by Visual Freeze; see details below.

Process to submit graphic requests:  open ticket via https://etd-support.ndc.nasa.gov/servicePortal

  • 1/21/2025: EGD-Uploaded graphics artifacts to the internal document repository release folder under the management tab
  • 12/2/2024: Created ETD graphics ticket 78067 for splash screen and user guide cover graphics update
Put in order for additional iconsEGD(tick)

12/2/24;  No additional icons needed.  

Needed by Visual Freeze

None needed since not actively updating GUI.  

Update info on public-facing websitesDSC/EGD/DJC

Needed by Release Day. 

See the list of sites. (Update this list as well, if necessary.)

  • 4/2/2025: EGD - Updated the list of sites wiki
  • 2/2025: For R2025a, see also the inputs from Kirk Woellert on GMT-8147 - Getting issue details... STATUS
Update release announcement contactsDSC/EGD

Needed by Release Day. 

Located here (Who owns this Google Drive document?). Recommend moving to the internal GMAT team document repository

(Includes aerospace professors, ESA, chief technologists at NASA centers)

Update libraries to current releasePJC/DJC(tick) 

Update the various depends libraries and other software that is used by GMAT.

These include but are not limited to: Python, Swig, Boost, wxWidgets, Visual Studio, GCC. 

Dependency update tickets for the release:

For Feature Complete (EGD)

Feature complete means that all planned features (new requirements, enhancements) are implemented in the system and ready for final checkout. 

  • Coding complete except for minor bugs. 
  • Docs complete with exception of minor tweaks. 
  • 90% of new regression tests are complete; if there are bugs, they are mostly minor and cosmetic. 

After Feature Complete (EGD):

This should be considered in more general terms – I think that right after feature complete we should build RC0 to iron out kinks early.
Here are some of the possibilities:

  1. deleting CMake cache

  2. re-running configure.py

  3. Deciding what versions of 3rd party software, including Matlab & Python, should be.

    1. Decision made to build with
      1. Matlab R2022a – [DJC] Actually, MATLAB R2024b, because it is required for Python 3.12 compatibility
      2. python 3.9, 3.10, 3.11, and 3.12 versions
      3. wxWidgets version, 3.2.6  
      4. VS 2022
  4. Re-cloning the latest version of OFI – [DJC] Last updated 4/29/2024, so should be good.  There is a current dependency issue for the OSG code that is not yet resolved.

  5. Running python script for downloading latest data files (see gmat/application/data for details). 

  6. Creating CMake configurations for public and internal releases (alpha & and proprietary plugin choices) [DJC] Not sure what this means

  7. Running the sample scripts

The idea is to catch any problems early. This should fold into the R2022a process. [DJC] R2025a here?

For Development Freeze (Pete Candell with an assist from SES)

Development of the scheduled functionality is completed and the closeout of the release process can begin.

Use the checkmark ((tick)) for complete, the yellow clock () for in-progress, and the cross ((error)) for an issue.

TaskWhoStatusNotes
Write, run, and commit all final test cases.All

(tick)

After test complete, the test repo is frozen.  All tests must be written by this deadline.

3/7/2025: Dev code freeze occurred at this time

1/28/2025: Nominal dev process has test creation included



Verify that all known bugs are checked into JIRA(All)

(tick)

EGD: Redundant step if following nominal dev process
Complete all JIRA verifications(All)(tick)

Perform independent verification that bug fixes address issue and if necessary create test.

EGD: This is part of the process for closing a ticket and is a redundant step

Test Freeze wrap-up tasksEGD

(tick)

See here: Wrap Up Testing - GMAT Wiki - Confluence (atlassian.net)

Work with Steve S on this.  

Notes from R2020a:

RM: Performed manual GUI Delete & Rename tests on OFI  (Ask Ravi to take a look for R2022a)

Address all JIRA tickets awaiting feedback(All)

(tick)

If someone is asking for clarification, provide requested information.
Mark .tc files with requirements and verify traceability to new requirements

(All)

SES

  • (tick) Update Requirements Spec
  • (tick) Update TC files
  • Verify RTTM is good

Req spec: GMAT Requirements.xlsx

RTTM: On mesa in nightly test results

Perform Static AnalysisJJR/DJC

(tick)

Run VS analysis tool (Win) and Valgrind (Linux) to identify possible issues. 
(Note that the requirement here is just to "run" the tool.  Analysis can come later.)

Tool was run and analysis was done by JJR/DJC and reported on 3/14/2025

Review all and resolve test failures on each OS (Windows, Linux, Mac)PC

EGD: Redundant step if following nominal dev process

Review all deferred tests to verify that they are OK to defer.  PC(tick)Look at the daily test results for all 3 o/s.  Do a final review right before Test Freeze achieved.   
Review tests that are not being run to verify that they are OK not to runPC(tick)Create a list of tests not being run nightly.  (e.g., for R2022a, this may be tests with the R2023a category).  Verify that it is OK to not run them.  Do a final review right before Test Freeze achieved.   

For Release Candidate Freeze (EGD)

Release Candidate Freeze is a freeze on the software itself before final testing, which used to be Code Freeze and Visual Freeze.

Use the checkmark ((tick)) for complete, the yellow clock () for in-progress, and the cross ((error)) for an issue.

TaskWhoStatusNotes
Update About panelDJC

(tick)

  1. Update release number (i.e. R2025a).  
  2. Add any new libraries used. (Did we update any libraries for R2025a since R2022a?).  
  3. Update any links.

The code is located in src/gui/app

Note that the version number is set in GmatGlobal.cpp. 

Update splash screenPJC(tick)
  1. Add new contributors
  2. Remove contributors who did not contribute to this release
  3. Design updates
  4. Update SplashScreen.psd in root directory of the gmat public repo  \moredata\graphics\splash
  5. Use GIMP to save a flattened TIF file and overwrite splash screen in GmatDevelopment\application\data\graphics\splash.
  6. Make sure there is a BETA splash as well. 

Move to App Freeze. 

Update iconsN/A(tick)

12/2/2024: No updates to the icons for the current release.  (Use Default)

Update UG cover imagePJC(tick)Similar to the splash screen

Update Open Frames Interface's

About Panel

TBD(tick)

OpenFramesInterface's About panel with release number and links to OFI Wiki
(Panel is accessed from the OFI configuration panel; still says 2022a; likely okay for this release though)

Complete visual updates(All)(tick)Move to App Freeze?

Update Info.plist (Mac specific) and RunGMAT (shell script on Mac) as needed

TBD(tick)

Need copyright and release number/name at least - Info_GMAT.plist and RunGMAT

Update test system RunGmat.m on Mac if needed

Mac: PJC/JG


Linux: DJC

(tick)



Update for MATLAB version (MatLab R2022) and Python version (Python 3.9) as needed. This refers to the files in the SVN test repo, found under bin/+gmatrunner/

This should be before the Freezes-move there for the next release.

Address issues in Static Analysis results(All)(tick)

Not going to fix anything for 2025a

Update license text

DJC

(tick)

Update application/License.txt file.  May be nothing to do if license did not change.

Check the compilation output and fix selected warning messages.

Windows: PC

Linux: DJC

Mac: TBD


(tick) 

Mostly related to the number of Windows warnings, but a check should be done for each OS.

Reviewed and fixed relevant warnings on Windows.

(Linux: None needed for R2025a; some work needed for R2025b)

Mark all open significant bugs as Affects: current release

CCB

(EGD/SES)

in JIRA, mark all open tickets as affects the current release.  This can be done via a global change.  This is not a huge number of bugs.  
Update version number in CmakelistsPJC/DJC(tick)

Do this right before code freeze.  Change to the current release version.  

Set release name in codePJC/DJC(tick)

Change GmatGlobals to use formal release name and do a scan of all files to make sure the current release version is being referenced throughout the code

  • Verify proper release name in batch estimator and Kalman filter report file banners
Run Dynamic Analysis tool or other tool that checks for memory leaks

DJC/PJC

(tick)

Note that the requirement here is just to "run" the tool.  Analysis can come later.  

Note: This involves running the Valgrind tool

Update copyright and code headers w/ legal statement

DJC

(All)

(tick)

Note: this must be done after CCB has accepted all final changes and we are ready to create RC1.  It requires coordination with the entire team as almost all source code files will be changed. 

This tool makes adding paragraphs and changing headers simple.  http://sourceforge.net/projects/findandreplace/

Double check the following directories for changes:

  • public\src (hpp, cpp)
  • public\plugin (hpp, cpp)
  • public/plugin/CInterfacePlugin/matlab
  • public\application\matlab\
  • internal\code (hpp,cpp)
  • Readme file

(star)  Updates for 2011 onwards were needed.  Files that assert copyright outside of the GMAT project were not updated.  Files with no copyright header at all were also not caught (there are at lest some - in the CsaltCWrapper code.  THere is likely more as well.


For R2025a, replace to

// Copyright (c) 2002 - 2025


Update README.txtPC,DJC

(tick)

Update any install and run instructions.   Remove reference to Windows installer.  For OC, check with PDL.  

Get Linux inputs from DJC (tick), Mac inputs from Mike Windows inputs from PC (tick),. README will mostly link to user guide. Readme updated ,



Update data files

SES

(tick)

PC to run GMATDataFileManager.py locally and then copy files over to source code git repo.  See 

(tick) Update Schatten data file (SES has updated file ready)

Update eopc04_08.62-now and run smoke tests and SPICE .bpc file (moved to App Freeze)

Update extras folderTBDNot for 2025aUpdate Notepad++ syntax coloring file located in gmat\data\extras folder to include new resource names, command names and keyword names.  This file is used by Notepad++ to highlight GMAT script files according to the GMAT script language.
Update PDF files in docs folderDJC

(tick)  (3/11/2025)






R2025a additions

  • Other pieces that needed updating:
    • API User's Guide
    • Optimal Control Spec
    • API/OC combined HTML files
  • For the next release:
    • API Cookbook

OLD Notes from R2022a

  • Update watermark: "Draft for Release R2022a"
    • doc/SystemDocs/ArchitecturalSpecification/GMAT-Architectural-Specification.tex: \selectfont{Draft for Release R2022a}}}}
      • Rebuild PDF (LateX + DVI->PDF)
    • doc/SystemDocs/EstimationSpecification/GMATEstimationSpecification.tex: \selectfont{Draft for Release R2022a}}}}
      • Rebuild PDF (LateX + DVI->PDF)
    • doc/SystemDocs/MathematicalSpecification/GMATMathSpec.tex: \selectfont{Draft for Release R2022a}}}}
      • Rebuild PDF (LateX + DVI→ PS, PS->PDF)
  • Put into application/docs folder, and individual doc source folder
    • Copied the 3 newly generated PDFs into application/docs
Update gmat_startup_file.txt


All






(tick)







Old R2020a Notes below:

  • editing all 6 startup files, will also move the TLE plug-in from Alpha to default.  
  • Switch to release configuration for internal startup (comment out alpha plugins in the internal startup files.  This is just 2 files)

Make sure to update platform specific versions.

Question: Should this happen after testing of internal build is complete (i.e. right before packaging)?  The issue is that these need to be ON for thorough testing, but not ON in the delivered application

  • Update formatting, comments
  • Add any additional plugins
  • Switch to release configuration for public startup.  See here for instructions.

Make sure to update both internal and public versions and any platform specific versions.

Update the list of alpha plug-ins.   This is useful for versions of the test scripts involving tests where the alpha plug-ins are commented out.  (Windows/Linux/Mac)

EGD

N/A


No new alpha plug-ins for R2025a.

Verify that the test system has been updated  to identify new internal and alpha features for this release.  (e.g., make sure GetAlphaScriptContent.m as been updated.  Note:  This should be updated by TestComplete).

Update local test configurations to test only production features (don't test alpha plugins).  (e.g., for Windows, in file autorundef_T6.m, set "runDefMan.SetRunAlphaTests(false) ")

Instructions for performing those two steps are located here

Note:  This is done immediately before release testing.  

Old R2020a Notes below:

DSC Note 4/13/2020:  I updated GetAlphaScriptContent.m for known Nav alpha Resources and Commands.  Are there any other alpha Resources and Commands for R2020a?

Gather list of compatibility changes since last release

(part of Release Notes)


SES

(tick)

The draft release notes are up-to-date.

  • Summary of Deprecated fields
    • BatchEstimatorInv renamed BatchEstimator; BatchEstimatorInv still works (was this release or last?)
      • This still works
    • The only new deprecated parameter is BatchEstimator MatlabFile. This is mentioned in the release notes.
  • Removed & disabled fields
    • None
  • Anything a user would need to know to make R2022a scripts compatible with this release.
    • Some measurement paths have changed, but the old path format still works. This is already mentioned in the release notes
Update Release Notes

EGD

DJC

SES

PJC


RM: OFI


(tick)





TBD on OFI


To Create JIRA Release notes link that is used in Release Notes, see instructions here:

https://confluence.atlassian.com/adminjiraserver/creating-release-notes-938847219.html


Old R2020a Notes below:

Make sure SPHINX documentation for API and OC are included in docs folder 

Make the HTML for the API and OC subsystems part of the release, if possible 

https://docs.google.com/document/d/1Uy2ZlKLUBPNBdySQPLI-rmibcmRRqX1T8BbPqSsZ8Hg/edit#


Update screenshots in User Guide
Engineers(tick)
  • 3/6/2025: EGD - Updates to UG should have been made with the work with the tickets
  • 3/11/2025:  DJC - There are a few screen shots in the Architectural spec that are clearly quite old and need an update

Test User Guide instructions & code

(Not much to be done for R2022a.  Most important to do this when we start deprecating features and parameter names.)

PJC







  • Tutorials
  • script snippets
  • reference page examples
  • Update UG to take into account compatibility changes.  
Update links in GMAT.iniSES(tick)
  • Help links (Need to put help pages on sourceforge in order for the web links to work)
  • Welcome page links

This will cause some tests to fail because we update the location of the new user guide URL, before that URL is active (activated after staging).

Suggest using a file compare utility to compare the previous release vs. current release GMAT.ini file.  

NOTES

(1)  For LInux, all the help (e.g., "Links and Resources" and the Help button for a Resource) use the HTML pages on sourceforge.  Linux does not support Windows Help.  

(2)  For Windows, the Help button for a Resource uses the file \docs\help\help.chm.

Update link tests in TestComplete


TR(tick)
  • Help buttons
  • Welcome Page links
  • Help menu links

Update truth data in TestComplete

TR(tick)
  • Truth output
  • Command Summary
  • Region checks
For R2022a, only provide zip fileTBD
Update UG to remove mention of Windows installer.  (unzip it)

Get updated legal statement/license


DJC/BM(tick)

This is usually done as the final step before app freeze.  Basically:

  • Get OK from lawyers.  e.g., is it ok to just change the date?
  • Work work work until there are NO MORE CODE CHANGES needed for RC1.
  • Tell all developers that they are done.  No more R2025a code changes will be accepted.  Get dev team buy-in. (NO MORE CODE CHANGES.  REALLY!)
  • (tick) Run a script that updates the copyright line in all source files (Darrel has done this for the last 3 or 4 releases - before that, there was ALWAYS something missed.)
  • (tick) Commit the updated files to the repository
  • Build the release candidate RC1
  • Tag the code as RC1 (may happen before the previous bullet)

Testing of Release Candidates (SES/All)

Repeat this phase until tests check out. Steve will make the call.

Use the checkmark ((tick)) for complete, the yellow clock () for in-progress, and the cross ((error)) for an issue.

TaskWhoStatusNotes
Create Windows BuildPC
RC1: 
provide Help folder to Mac/Linux developers

PC



DJC




This needs to be provided once the documentation is complete and built with the release candidate.  Note this cannot be done until all docs are frozen!   (SPH takes Windows RC, edits Help doc in Acrobat.  Sends to Mac/Linux)


(tick) Rebuild the OC/API HTML Help

PC 2022a help folder on mesa file and SharePoint. Ask PC for location. 

Old R2020a Notes below:

DJC: Make sure SPHINX for API and OC are included.   DJC added the files to application/docs. 

Note: For future releases, we should consider adding a build step to generate these automatically as part of the install process in CMake, rather than putting the generated files into the repo directly.

Bundle Windows zip

PC

Is there anything to this besides putting the build in a zip? Steps for Mac/Linux here too?


For Windows, see gmat\build\install\windows-nsis\CreateInstall.bat

To be placed on Mesa-files

Run TestComplete smoke testsTR

These are tests on the packaged versions of GMAT:  the zip bundle.  ( Test internal first. )

(Current smoke tests take a long time, about 4 hours.  Maybe later, cut this time down)

Run TestComplete system test missionsTR
These are tests on the packaged versions of GMAT:  the zip bundle from Internal and External packages. 
Run script test system

DSC/PJC

DJC





Perform this on Win 11, Mac Sonoma, and RHEL8 (time permitting Ubuntu). 

Windows. Run tests on the internal .zip bundle first, then the external tests afterwards on same build to compare.

For Windows, use task scheduler to turn off the automatic runs.  Then, manually, run the four test scripts below.


To Do:  For Linux/Mac, decide which scripts, analogous to the ones above, need to be run.

(On Final RC, this is 2 runs, internal and external).  Test internal first. 

DSC to check with PC and/or JE on scripts run.  


Old R2020a Notes below: 

For R2020a Windows results, see \\mesa-file\595\GMAT\Builds\windows\VS2017_build_64\R2020a\RC2\Test Results folder.   

First run tests on the installer version of GMAT. 

(On Final RC, this is 4 runs, Windows and Installer for both  internal and external).  Test internal first. 


Mac – RC1 run completed with 3 errors (alpha off), RC2 run is looping through comparators at 1:46 pm 4/30

Linux – RC2 internal is solid on both Linux flavors.


Test all sample scripts (non-API)

EGD

PJC

DJC




At a minimum these need to be run individually by hand or run in GUI regression system. 
Additionally, they must be run on a system that has no other installations of GMAT.  Past experience has shown that missing files, and configuration issues are not caught by running on machines used for development.

Test API Sample Scripts

PJC

DJC




Windows

Linux, /3/23 Action for DJC

(error) See GMT-8333.  This call is used in Ex_R2020a_RangeMeasurement.py.  All other Python examples run correctly.

Mac,  1/3/23 Action for AC.  


Old R2020a Notes below: 

Notes: 

(1)  Make sure all API Sample tests (API folder and API/Jupyter sub-folder) run correctly.  

(2)  For 2020a Mac, will not run API sample scripts.  


Definition:  Run scripts in Folder API and API/Jupyter.  

Run Sample Scripts with the GUI openEGD

Run sample missions using GMAT.exe, monitor the runs, and document any anomalous behavior. 

Windows

Instructions for running sample scripts from the GUI using Testing Mode.

  • To run a folder of scripts you have to be in TESTING mode, # Debug options
    #-----------------------------------------------------------
    RUN_MODE              = TESTING
  • Then highlight "Scripts" in GUI
  • Right Click to "Add Script Folder"

 

Test all non-GMAT (i.e., not the *.script GMAT scripts) scripts/scenarios.  (new entry for R2021a)

SES



BM




Note:  Starting with R2022a:  For Nav, we will be adding python analysis scripts associated with the EKFS GPS point solution tutorial, to the GMAT releases.  Thus, in addition to the usual GMAT sample scripts, we should be making sure that the non-GMAT scripts, such as these python analysis scripts, also still run correctly. 

  • GMATDataFileManager.py; see GMT-7994 
  • The filter/smoother plot utilities work for GPS measurements. Warning messages appear and the scripts need to be updated to work with generic (scalar) measurements. See GMT-8329. 
  • (tick) Verified tdm_to_gmd.py, trk234_to_gmd.py, and utdf_to_gmd.py


Run TestComplete full regression testsTR

(For final RC only)

On Final RC, this is 2 runs, Windows both internal and external. 

Have selected users try out the RCDSC


Document the RC testing processAll

Save artifacts related to RC testing.  This includes matlab test scripts used and test results. 
For an R2020a example, see \\mesa-file\595\GMAT\Builds\windows\VS2017_build_64\R2020a 

Create Mac bundlesPJC


Notes

  • While this cycle is ongoing is a good time to do wiki updates and cleanup.

Stage Release (EGD)

This is a soft release, putting all the files in place and updating information. Then on release day, we only need to send the announcements.  

Use the checkmark ((tick)) for complete, the yellow clock () for in-progress, and the cross ((error)) for an issue.

NOTE:  For R2022a, we made two TEAMS videos (1/24/2023 and 1/26/2023 of some of the steps.


TaskWhoStatusNotes
Tag All ReposDJC

At least tag the test system; consider branching also if the burden on the repo is low.  (In SVN, tagging makes a branch, so tagging already creates a branch.)

git source code repo:  

SVN test repot:            

Bundle source code
DJC
  1. Export the trunk code from svn that is used for the release build when that build is started
  2. Wait for a go/nogo call from testing on the build
  3. Archive the following folder trees into a zip file: src, plugins, build
Bundle data
DJC
  1. Use the same export as used for the source bundle
  2. Wait for a go/nogo call from testing on the build
  3. Archive the following folder tree into a zip file: application/data


Data = gravity files, space weather files, leap seconds, planetary ephemerides, atmospheric files.  

Upload source bundle to SourceForgeDJC/PC
  1. Move the zip file to SF
  2. Mark as "staged"    (Staged means only Project members can see this.   We forget this step for R2020a)
  3. Download the upload and check it.    (DJC did this for R2020a).
Upload data bundle to SourceForgeDJC/PC
  1. Move the zip file to SF
  2. Mark as "staged"   (We forget this step for R2020a)
  3. Download the upload and check it.   (DJC didnt check for R2020a but not considered critical)
Upload zip files to SourceForge

DJC/PC




PC






Download and run after uploading.  For R2020a, DJC downloaded and ran for all 4 (two flavors Linux) o/s below. 

Check checksum for each O/S and for each package.  

Post README.rst.txt on SourceForgeDJC/PC

EGD: Is this still needed since the documentation on sourceforge no longer works


Old R2020a Notes below:

Update for new release.  For R2020a, the actual file is not a RST file. 

Fix "latest download" to point to new exe. 
(make sure source forge "Download" button downloads the latest version)
DJC/PC

See instructions here: http://stackoverflow.com/questions/6777327/how-to-manually-set-the-default-download-file-in-a-sourceforge-project

Completed 1/26/2023.

Post internal & public release files to MESA networkDSC
For R2022a, the folder \\mesa-file\595\GMAT\Releases\R2022a has been created.  
Upload source to SourceForge Git repoDJC/PC

Upload public repo to sourceforge.

  • The trick here is to make sure your remote connection is the ssh connection, only available when logged in as a project admin or developer.  Here's a recomemnded set of steps to follow:
    • Clone the SF repo using git: your git GUI's (that is, GitKraken's) equivalent to

      git clone ssh://username@git.code.sf.net/p/gmat/git gmat-git

    • Set the current branch to the previous pushed code branch (e.g. GMAT-R2018a)
    • Add the mesajade repo as a remote to the SF clone.
    • Fetch master from the mesajade remote.  Do not check it out, just fetch it
    • You're still on the sourceforge (e.g. GMAT-R2018a) branch of the SF repo, right?  Good.
    • Branch the SF repo.  Name the new branch for the release (e.g. GMAT-R2020a).
    • Merge all code from the mesajade repo up to the new release's (R2020a) tag into the SF repo.  This should be a fast forward merge.
      (For R2020a, The tag you was commit d17522c9, dated 4/28/2020, with the commit message "Fix for the GOS being NULL in API calls".)
    • Push your new  branch (GMAT-R2020a) to SourceForge.  Optionally. push the tag as well.

Change new branch to be active branch (what is checked out by default - set in Admin-Code).

Note: TEAMS video of this process exists in the document repository.  

Update the doxygen data (goes on SF)
DJC/PC

DJC needs to run doxygen on the latest source code that we are putting on SF.   

Completed 1/26/2023.


DJC created a zip that contained "base" and "gui" folders.    

Using FileZilla, we renamed the old base and gui folders (/home/project-web/gmat/htdocs/docs/nightly) to old_R2020a and gui_R2020a) and then copied over the new base and gui folders.  The file transfer takes a long time.  

Note:  We made a TEAMS video of this process.  

Make SourceForge repository backupDJC/PC

Follow SourceForge's instructions.

(This is a full backup of the project at sourceforge.  Requires person who backs it up to have significant storage space available)

Here is the Rsync command for us:

 rsync -av git.code.sf.net::p/gmat/git.git .

(Can not be done until git repo updated)

2/2/23:  DJC action item.  Backup size is 2.7 GB

* DJC can only do steps 1-3 here because of contractual constraints

Release Day (TBS)

Use the checkmark ((tick)) for complete, the yellow clock () for in-progress, and the cross ((error)) for an issue.

NOTE:  For R2022a, we made two TEAMS videos (1/24/2023 and 1/26/2023 of some of the steps.

TaskWhoStatusNotes

Make files visible (i.e., unstaging) on SourceForge

DSC




Old R2020a Notes below:

07/21: Made visible at time of posting, as "soft" release.

(For R2020a, we forgot the "staged" step)

Send out release announcement (Snd BCC to avoid "Reply All" spam)






Create R2022a "Release Notes" PDF to send out. 

DSC







DSC/DJC









  • Mention GSFC in the announcement
  • Don't include large attachments.









Old R2020a Notes below:

Notes 8/5/2020: 

  1. Sent email to Sourceforge gmat-info email list but received "this list is for project announcements only, so your message has been blocked" response. 
  2. Sent email to Sourceforge gmat-users email list.  Needs Moderator approval.  DJC approved.  Message sent. 
  3. Asked Paul M. to send Release announcement to 590-all. 


"Release Notes" was a bit of a hack.  I made a custom Makefile to build a draft document from the UG xml file, and then edited it for formatting and broken User Guide links.  The cover page is the R2018a cover page, with the "20" piece copied over the 18 and then the "a" shifted to the right.  This is not a recommended best practice! 

Suggestions:

  • Build the text version first and then paste and edit it into the xml, avoiding the internal link issue
  • Make the cover page image document available for editing.  (I suspect it's a Photoshop .psd file with layers.  Or should be.)
Post release announcement on SourceForgeDSC



At the GMAT Sourceforge website, select the "Admin" section.  Then choose the "Metadata" section.  Make sure to unlock the padlock in the upper right hand.  Update the "Full Description" section and hit "Save."

Post release announcement on Atlassian.  DSC


Go to https://gmat.atlassian.net/wiki/spaces/GW/overview.  Hit the ". . ." button.  View Restrictions to  make sure you have edit privileges. 

Mark as released in JIRAEGD

See link below.  

https://gmat.atlassian.net/projects/GMT?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page

  • 12/2/2024: All tickets associated with R2025a have been marked and those that do not make the final release will be moved to R2025b. 


Update "News" at SourceForgeDSC

Added release announcement text here as well. 

 DJC cannot post to SF

Post-Release

Use the checkmark ((tick)) for complete, the yellow clock () for in-progress, and the cross ((error)) for an issue.

TaskWhoStatusNotes
Party!(All)

Conduct postmortem reviewEGD
This includes gathering feedback, holding the postmortem meeting, and documenting the results.
Submit NTR for next release

BM to start working on NTR for our next (single customer) release.  Try to word it so fixes/enhancement for follow-on builds are covered.  Proposal

  • Put in NTR for R2023a Beta
  • As before, we will have SUAs with multiple customers and multiple deliveries using this single NTR.  
  • Get OK from legal that one of the Beta deliveries to NOAA/GOES will actually be "non-Beta."
Review deferred tests PJC
Review all deferred tests and remove any deferred tests needed for the next release
Review tests not being runPJC




Windows

LInux

Mac

Review all tests not being run and ensure all tests are being run for the next release (In particular the 'R2023a' category)

2/2/23.  R2023a is now turned on for Windows. 

Create and have a team review of the Lessons Learned Document for the current releaseAll

Please add your notes to theR2025a Lessons Learned document.

Compatibility changes

See Writing Release Notes

Creating an RC

  1. Create the build
    1. Log into gs580w-gmat-t4 as "gsfc580gmatbuild". The credentials are on the network drive, in the Infrastructure folder.
    2. Start Task Scheduler.
    3. [RC1 only] Disable the "GMAT Daily Build" task, so it doesn't run automatically during the RC cycle (this can make things overly confusing).
    4. Manually run the "GMAT Daily Build" task.
  2. Create the bundles
    1. On your local system, navigate to GmatDevelopment\build\install\windows-nsis. Note that you do not need to pull files down from the Git repository; this process will pull files from the remote build and create the packages in your local directory. There's a README.txt file there that explains things.
    2. Open a MinGW, MSYS2, or Cygwin shell in this directory.
    3. Run 'make assemble VERSION="R2015a-rc#"', where "#" is the number of the RC you're creating. This will create two directories in the current directory: gmat-internal and gmat-public.
    4. Run the following commands to add the User Guide cover. This requires sejda-console.

      sejda-console merge -f ../../../doc/help/src/files/images/Cover-UserGuide-A4-Trimmed.pdf gmat-internal/GMAT/docs/help/help-a4.pdf -o gmat-internal/GMAT/docs/help/help-a4-new.pdf -s all:all:
      mv gmat-internal/GMAT/docs/help/help-a4-new.pdf gmat-internal/GMAT/docs/help/help-a4.pdf
      
      sejda-console merge -f ../../../doc/help/src/files/images/Cover-UserGuide-Letter-Trimmed.pdf gmat-internal/GMAT/docs/help/help-letter.pdf -o gmat-internal/GMAT/docs/help/help-letter-new.pdf -s all:all:
      mv gmat-internal/GMAT/docs/help/help-letter-new.pdf gmat-internal/GMAT/docs/help/help-letter.pdf
      
      sejda-console merge -f ../../../doc/help/src/files/images/Cover-UserGuide-A4-Trimmed.pdf gmat-public/GMAT/docs/help/help-a4.pdf -o gmat-public/GMAT/docs/help/help-a4-new.pdf -s all:all:
      mv gmat-public/GMAT/docs/help/help-a4-new.pdf gmat-public/GMAT/docs/help/help-a4.pdf
      
      sejda-console merge -f ../../../doc/help/src/files/images/Cover-UserGuide-Letter-Trimmed.pdf gmat-public/GMAT/docs/help/help-letter.pdf -o gmat-public/GMAT/docs/help/help-letter-new.pdf -s all:all:
      mv gmat-public/GMAT/docs/help/help-letter-new.pdf gmat-public/GMAT/docs/help/help-letter.pdf
       
    5. Run 'make VERSION="R2015a-rc#"', where "#" is the number of the RC you're creating. This will create four packages in the current directory: A .zip and a .exe file for both the internal and public versions. Note: To create only an internal version, run 'make internal VERSION="R2015a-rc#"'.
    6. Copy the four package files to the network: \\mesa-file\595\GMAT\Builds\windows\VS2013_build_32\R2015a
    7. To clean everything up afterwards, run "make clean".
  3. Run the script test system on the internal installer package. See Running the script test system, below.

Note: To make the final release bundles, you can't just rename the files to take off the "-rc#" portion. You need to recreate the bundles using this command: make VERSION="R2015a" 

Running the script test system

In the steps below, "#" is the RC number and "<config>" is "internal" or "public".

  1. Log into gs580w-gmat-t4 as "gsfc580gmattest". The credentials are on the network drive, in the Infrastructure folder.
  2. [RC1 only] Start Task Scheduler and disable the "Run Script Test" task. You'll need to run the RC tests manually.
  3. Uninstall all previous versions of GMAT.
  4. Install the version being tested.
    1. Check "Enable MATLAB interface".
    2. Leave "Associate file types" unchecked.
  5. Update the test system repo (located at C:\Users\gsfc580gmattest\Documents\GmatTest)
  6. In MATLAB (64-bit):
    1. Run:
      >> cd C:\Users\gsfc580gmattest\Documents\GmatTest\bin
    2. Run (replace # with RC number and <config> with "internal" or "public"):
      >> diary('..\log\R2015a-rc#-<config>.log')
    3. Run (this command copies application files such as SPICE kernels needed for regression tests into the new installation of GMAT):
      >> preparegmat('C:\Path\To\GMAT')
    4. In C:\Users\testuser\Documents\GmatTest\bin, copy the appropriate template (autorundef.R2015aInternal.template.m or autorundef.R2015aPublic.template.m) to a new name (such as autorundef.R2015aRc1Internal.m) and fill in the values:
      1. RunDef.Build: "R2015a-rc#-<config>"
      2. RunDef.GmatExe: path to installed GMAT.exe
      3. RunDef.RegressionBuild: last build date if testing RC1 (look in GmatTest\output for latest folder, such as 2013-07-31), otherwise, "R2015a-rc#-<config>"
    5. Run:
      >> gmattest <name of rundef.m> (e.g. autorundef.R2015aRc1Internal.m) 
    6. Wait until run completes (usually 8+ hours)
    7. Run:
      >> diary('off')
  7. In a Windows cmd window, post results to network using robocopy:
    >robocopy "C:\Users\gsfc580gmattest\Documents\GmatTest\output\R2015a-rc#-<config>" "\\mesa-file\595\GMAT\TestResults\win7\R2015a-rc#-<config>" /E /MT /LOG:%TEMP%\robocopy.txt

Updating SourceForge HTML docs page

The Sourceforge page for logging in is here:  https://sourceforge.net/p/forge/documentation/SFTP/

I (SPH) used Filezilla and this was pretty straightforward once succesfully logging in:

Hostname is frs.sourceforge.net

UserName: "YOURSOURCEFORGEUSERNAME,gmat"

Password is: YOURSOURCEFORGEPASSWORD

File Updating

  1. Add a new folder for the release under the gmat\htdocs\docs folder
  2. Update contents of the new release folder with files from new release
  3. Update the gmat\htdocs\docs\index.html to include new folder and to point to the new latest folder.



Related content