GMAT R2020a Release Process

This page is used to track the process and progress of the R2015a release.

Release Lead Roles

RoleAssigneeAuthority/Responsibility
Release ManagerDSC (assigned 2/27/2020)"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 and preferably in the office during critical stages like creating and testing RCs.
Build Manager

TDN: Windows

WCS: Mac

DJC/SK: Linux

controls build system, creates RCs, sends RC availability announcements. Must be reachable and preferably in the office during critical stages like creating and testing RCs.
Test Manager

GUI: TR

Script: DSC

control GUI/script testing for each RC.  Must be reachable and preferably in the office 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 R2015a.

OwnerStatusDescriptionResolution
RMClosed
(2/21/20)
Graphics work behind schedule

OpenFramesInterface v1.0 ready for release with GMAT R2020a.
OFI is documented and has been integrated with GMAT's build and test systems.
Sensor Masks are also documented and all GUI tests are complete.






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.


Milestones for R2020a

Remaining Tickets for Release 2020a

Early Tasks (MES)

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

Use "(/)" for the checkmark ((tick)) and "(x)" for the cross ((error))

TaskWhoStatusInstructions
Update sample scripts
Area Leads

OFI [RM] (tick) (23 sample scripts included)

Optimal Control (tick) (9 sample scripts included)

Needed by App Freeze.

  • Write examples that demonstrate new functionality
  • Clean up all errors and warnings
  • Remove deprecated fields

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 R2020a.
  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 NotesAll(tick)

Needed by App Freeze.

See Writing Release Notes

Update version number in User Guide cover
SPHSPH:(tick)

Needed by App Freeze.

Contact Katy Gammage or Mary Hrybyk-Keith to update cover page.

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

Get updated splash screen
SPHSPH: (tick)

Needed by App Freeze.

Contact Katy Gammage or Mary Hrybyk-Keith to update cover page.

 Get updated legal statement/licenseDSC(tick)

Needed by Code Freeze.

Just need to change the year usually.  

 Put in order for additional iconsSPH(tick) None needed.

(if necessary)

Needed by Visual Freeze.

Update info on public-facing websitesSPH?(error)

Needed by Release Day.

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

NOTE 8/6/2020.  This list needs to be updated.  Also, consider a team discussion to delete some websites. 



Updated major sites before announcement. Minor ones can be updated a bit later.

Update release announcement contactsSPH(error)

Needed by Release Day. Located here.

DSC will create list based upon SPH's R2018a email. 

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

 Obtain Release ApprovalsDSCDSC: In progressNeeded by release day.

For Feature Complete (MES)

Feature complete means that all planned features are implemented in the system and ready for final QA.

For Test Freeze (Kazmi)

QA complete means that all known bugs are being tracked, all bug fixes are verified and documented, and the release process can begin.

Use "(/)" for the checkmark ((tick)) and "(x)" for the cross ((error))

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

SPH: (tick)

Nav/SES: (tick)

MS:(tick)

SK: (tick)

RM: (tick)

NH: (tick)

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


SK:  add about 100 tests for H/W FOV (SK).  Completed 3/18/2020.

MS:  Add attitude tests.  Goal is Monday 3/23.  All tests completed and passed 3/26. MS: oops, haven't committed yet.

NH: JJR has tracked down different results between different OSes and submitted new truth files.

OFI functional and system tests integrated into Windows GUI test system 

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

SPH: (tick)

DJC: (tick)

Is anything missing from triaged list in JIRA dashboard R2019a Remaining Tickets?
Complete all JIRA verifications(All)SPH: (tick)Perform independent verification that bug fixes address issue and if necessary create test. 
Test Freeze wrap-up tasksDJC, SPH, SES

Optimal Control: (tick)  this was built in to testing process over the summer.

SPH: (tick)

Nav/SES:  (tick)

MS:(tick)

SK:  (tick)

NH/JJR:  (tick)

RM: (tick)

DJC: (tick)

See here: http://li394-117.members.linode.com:8090/display/GW/Engineering+Activities

(SPH plans to have a wiki-walk-through to discuss wrap-up tasks).  

SES; Submitted ticket GMT-7172 on Save mode issues.

MS/SK:  Review link above. -

NH/JJR: (tick) Review link above. 



RM: Performed manual GUI Delete & Rename tests on OFI

Address all JIRA tickets awaiting feedback(All)

SPH: (tick)

NH: (tick)

DJC: (tick)

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

Nav/SES: (tick)

NH/JJR:  (tick)

MS:  (tick)

SK: (tick)

SPH:  (tick)

RM: (tick)

NH/JJR:  update google docs req spec (tick), update TC file (tick), verify RTTM is good (tick)

MS/SK:  update req with H/W FOV and attitude.   SK completed 3/18/20.  Will do on 3/27 – and done



SPH:  agreed to update TC files for FRR-37.  

RM: OFI GMAT interface reqs captured, and marked as "GUI Test". Per SPH, additional script tests are not needed for the OFI since GUI tests cover all of its interface functionality.

Perform Static AnalysisJJRJJR: (tick)Run VS analysis tool to identify possible issues.  (Note that the requirement here is just to "run" the tool.  Analysis can come later.)
Run Dynamic Analysis tool or other tool that checks for memory leaksDJCDJC: (tick)Note that the requirement here is just to "run" the tool.  Analysis can come later.  

For Visual Freeze (Napier)

Visual Freeze finalizes all graphical changes to the software, so that screenshots, documentation, and TestComplete can be updated.

Use "(/)" for the checkmark ((tick)) and "(x)" for the cross ((error))

TaskWhoStatusNotes
Update About panelWCS

(tick)




RM: (tick)

  1. Update release number (i.e. R2020a).  
  2. Add any new libraries used. (DSC sent list of libraries used).  
  3. Update an links.

The code is located in \src\gui\app

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

RM: Updated OpenFramesInterface's About panel with release number and links to OFI Wiki

Update splash screenSPH(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 iconsSPH(tick)

Still need some icons to include DynamicDataDisplay.  4/9/2020:  Decided to leave icons alone.  (Use Default)

Update gmat_startup_file.txtWCS(tick)
  • 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.

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

For Code Freeze (Shoan) 

Code Freeze is a freeze on the software itself before final testing.

Use "(/)" for the checkmark ((tick)) and "(x)" for the cross ((error))

TaskWhoStatus

Internal

Status

Notes
Update data files

DSC

SPH

(tick)

DSC:  Updated files for R2020a (GMT-7073) for the 3/17/20 build.  The GMAT python utility was used.  Note that one bug in the python utility had to be fixed, GMT-7175.  


Ran RunDateFileTests.m w/o running preparegmat.  Just one error, which from reading the help comments might be OK.  Request SPH concurrence?  Does anything else need to be done?

      SchattenPredict_DistributedSchattenFile [pos err 19.4597, tol 0.01]



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


Update Info.plist and RunGMAT as needed

WCS(tick)(tick)Need copyright and release number/name at least   - Info_GMAT.plist and RunGMAT updated 2020.03.18
Update test system RunGmat.m if neededMES(tick)(tick)

Update for MATLAB version (to default or agreed-upon version) as needed; are other updates needed as well?

MS: MATLAB is set; SNOPT path information is in file, need to run full test with proper version of gfortran.

*** Who is doing this for Linux and PC? They have been done if the tests are running properly. *** 

(DJC)  Linux and Windows do not use a RunGmat file.  That file is Mac specific. 

(WCS) This is the RunGmat.m file in +gmatRunner in the test system, not the script in the Mac bundle.  I suspect linux updates this too - I see it currently pointing to MATLAB 2019 (as it should).


Address issues in Static Analysis resultsWCS(tick)(tick)Fixed 4 issues (in 3 files)
Update license textSPH(tick)


RM: (tick)

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

RM: Updated OFI readme containing license info

Update copyright and code headers w/ legal statement

DJC for SPH

(tick)

(tick)











RM: (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/

As of R2020a these directories have files that need updating.

  • 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 R2020a, replace to

// Copyright (c) 2002 - 2018

RM: Updated for OFI


Final bug fixes(All) (tick)
RM: (tick)
RM: Fixed all outstanding OFI issues
Mark all open bugs as Affects: current releaseSPH(tick)(tick)in JIRA, mark all open tickets as affects the current release
Set release name in codeWCS(tick)(tick)Change GmatGlobals to use formal release name
Update version number in CmakelistsDJC(tick)(tick)Do this right before code freeze.  

For App Freeze (Cooley) 

App Freeze is a freeze on all application bundle files beyond data and code. This includes documentation, sample scripts, stuff in the extras folder, etc.

Use "(/)" for the checkmark ((tick)) and "(x)" for the cross ((error))

TaskWhoStatusNotes
Update README.txtWCS,SPH,DJC, NH

Optimal control: NH (tick)

WCS (tick)

DJC: (tick)

Update any install and run instructions. 

NH: get Linux inputs from DJC (tick), Mac inputs from WCS (tick), make Windows inputs personally (tick). README will mostly link to user guide. Readme updated (tick).

WCS: README.txt updated for Mac; points to User Guide for most information

Update extras folderSPH(tick)Update 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 folderNH

(tick)






  • Update watermark: "Draft for Release R2020a"
    • doc/SystemDocs/ArchitecturalSpecification/GMAT-Architectural-Specification.tex: \selectfont{Draft for Release R2020a}}}}
      • Rebuild PDF (LateX + DVI->PDF)
    • doc/SystemDocs/EstimationSpecification/GMATEstimationSpecification.tex: \selectfont{Draft for Release R2020a}}}}
      • Rebuild PDF (LateX + DVI->PDF)
    • doc/SystemDocs/MathematicalSpecification/GMATMathSpec.tex: \selectfont{Draft for Release R2020a}}}}
      • 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

WCS





DSC

(tick)





(tick)

  • 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


DSC Note 4/13/2020:  After all changes to the code have been made (still have CCB on 4/14 to review DJC ticket), I am going to do one more complete run with all the alpha plug-ins turns turned on.  Is this recommended for Mac/Linux also?). 

Update nightly script runs to exclude alpha plug-ins.   (Windows/Linux/Mac)

DSC

DJC

MS

SPH

(tick)

(tick)

(tick)

(tick)

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.  


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)

MES

SES

(tick)

(tick)

  • Summary of Deprecated fields
    • BatchEstimatorInv renamed BatchEstimator; BatchEstimatorInv still works (was this release or last?)
  • Removed & disabled fields
  • Anything a user would need to know to make R2020a scripts compatible with this release.
    • BLS MATLAB file format has changed
Update Release Notes

DSC

SPH

Optimal Control: NH sent to DSC


NH:



DJC:  API Doc 

RM: OFI

 (tick)

(tick)

 (tick)



(tick)



(tick) 

(tick)

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


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



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


DJC:  Should we also make the HTML for the API and OC subsystems part of the release?  (It's simple, and done via "make html" in the top level Tools folder.)   4/14/20:  SPH said to include if can do so.   


Update screenshots in User Guide
Engineers(tick)

Test User Guide instructions & code

(Won't be done for R2020a.  Most important to do this when we start deprecating features.)

All.  


Optimal Control: NH

(error)


 (tick)

  • Tutorials
  • script snippets
  • reference page examples
  • Update UG to take into account compatibility changes.  
Update links in GMAT.iniSPH(tick)
  • Help links
  • 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).

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

Update Build package scripts used to create bundles.

Practice creating bundles

DSC(tick)

Follow instructions in the section called "Creating an RC" at the bottom of this page.  Those instructions are used to create zip and installer packages.  They often require minor updates prior to release.  This step ensures the scripts are updated and we have practiced using them so when it comes time to create RC1 we have made any changes in the scripts for this release. 


Note SPH added this late in R2020a cycle as a lesson learned to do for future releases.

Testing of Release Candidates (TBS  )

This will start with the 2014-05-05 daily build. Repeat this phase until tests check out. Steve will make the call.

Use "(/)" for the checkmark ((tick)) and "(x)" for the cross ((error))

TaskWhoStatusNotes
Update Release Notes
DSC(tick)

Next time: this should probably be "Update Release Notes" to add outstanding bugs, etc. – title changed 12/18/17 - MES

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

Create Windows BuildTDN(tick)
provide Help folder to Mac/Linux developersDSC(tick)

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) SPH: 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.

Build Windows installer

DSC(tick)


Bundle Windows zip

DSC(tick)


Run TestComplete smoke testsTR(tick)

These are tests on the packaged versions of GMAT: the installer and 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(tick)These are tests on the packaged versions of GMAT: the installer and the zip bundle from Internal and External packages. 
Run script test system

DSC





MS/WS

DJC


(tick)





(tick)

(tick)

Windows.  First run tests on the installer version of GMAT.  Run tests on the .zip bundle tests afterwards on same build to compare.

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

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



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.

Run API regression test scripts

JM 

DJC

MS/WS

(tick)

(tick)(star)

(error)

Windows

Linux   (star) Note ticket GMT-7245.  Some tests do not run correctly in the test system on Linux; those tests were checked by hand.

Mac


Definition:  This is the set of 48 regression test scripts that take about 5 minutes to run.

Input/Other/API and Input/UnderDevelopment/MatAPITesting

See JM email dated Wed 4/29/2020 12:11 PM for attached file RunAPITests.m.   

Test all sample scripts (non-API)

MES/WS

JM/DSC

DJC

(tick)

(tick)

(tick)

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 all non-GMAT (i.e., not the *.script GMAT scripts) scripts/scenarios.  (new entry for R2021a)

Nav Python Analysis Scripts


Note:  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. 

Test API Sample Scripts

JM

DJC

(tick)

(tick)

Windows

Linux

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 TestComplete full regression testsTR(error)

(For final RC only)

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

Notes

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

Stage Release (TBS)

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 "(/)" for the checkmark ((tick)) and "(x)" for the cross ((error))


TaskWhoStatusNotes
Tag All ReposDJC(tick)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.)
Bundle source code
DJC(tick)
  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(tick)
  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
Upload source bundle to SourceForgeSN(tick)
  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 SourceForgeSN(tick)
  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 Windows installer to SourceForgeSN(error)Download, install, and run after uploading.  For R2020a, we will not deliver the installer version because of the ReadMe update required. 
Upload zip files to SourceForgeSN(tick)Download and run after uploading.  For R2020a, DJC downloaded and ran for all 4 (two flavors Linux) o/s below. 
     Upload executable for WindowsSN(tick)
     Upload executable for Mac OSXSN(tick)
     Upload executable for LinuxSN(tick)
Post README.rst.txt on SourceForgeSN(tick)Update for new release.  For R2020a, the actual file is not a RST file. 
Upload docs to documentation site

SN




SN/DJC



SN/DJC

(tick)




(tick)



(tick)

  1. Upload using SSH to http://gmat.sourceforge.net/docs/
  2. Update HTML with new section
  3. Move "latest" pointer to new folder

R2020a:

the C-interface capability was not delivered for Mac but was for the other o/s.  (libCInterface.dll is the name of the plug in for Windows).  SourceForge has a broken link for Help for this.  Wendy and Darrel recommend pointing to the API doc here instead. Sean with an assist from DJC will do this. 

SN: pointed the current development link for API to R2020a/api/apiIndex.html


Update links to current development box.   (Either delete content or fix it)

SN: Moved R2020a content to nightly so links are correct.


SEE NOTES IN SECTION BELOW

Fixed "latest download" to point to new exe.  (make sure source forge "Download" button downloads the latest version)
SN(tick)See instructions here: http://stackoverflow.com/questions/6777327/how-to-manually-set-the-default-download-file-in-a-sourceforge-project
Post internal & public release files to MESA networkDSC(tick)
Upload source to SourceForge Git repoSN/DJC(tick)

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)

Update the doxygen data (goes on SF)
SN/DJC(tick)SN: DJC updated doxygen data & SN uploaded files
Make SourceForge repository backupDJC(tick)

Follow SourceForge's instructions.

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)

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

Release Day (TBS)

Use "(/)" for the checkmark ((tick)) and "(x)" for the cross ((error))

TaskWhoStatusNotes

Make files visible on SourceForge

SN(tick)

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 R2020a "Release Notes" PDF to send out. 

DSC







DJC

(error)







(tick)

  • Mention GSFC in the announcement
  • Don't include large attachments.
  • Need distribution list from SPH

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(tick)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 GMATcentral.orgDSC(tick)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 JIRASPH/DSC(tick)

R2020a:  Not quite sure what is involved.  Will coordinate with SPH.

8/6/2020:  WIki changed.  SPH to investigate.  Need to find list of releases.

Go to JIRA.  Select "Projects" on LHS menu.  Then select "Releases."  Hit ...

Click on Release of interest.  Move unresolved issues to next Release. 


Update "News" at SourceForgeDSC(tick))Added release announcement text here as well. 

 DJC cannot post to SF

Post-Release

Use "(/)" for the checkmark ((tick)).

TaskWhoStatusNotes
Party!(All)(error)
Conduct postmortem review
(error)This includes gathering feedback, holding the postmortem meeting, and documenting the results.
Submit GSFC Metrics Summary
(error)The link to submit the metrics is invalid.No action is required for this item. It was decided on 09/25/14's GMAT meeting to check tasks that do not require any action or are inactive.
Submit NTR for next release
(error) Per Hughes: The NTR cannot be written until all features are finalized and it is too early to do that.

Notes for postmortem

Please add your notes to the R2020a 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.