Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

...

Update version number in  Obtain
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.
Write draft Release NotesAll(tick)

Needed by App Freeze.

See Writing Release Notes

  1. 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.

...

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

...

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(error)(tick)
  1. Move the zip file to SF
  2. Mark as "staged"Download the     (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(error)(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(error)(tick)Download and run after uploading.Upload executable for WindowsSN(error)  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(error)(tick)
     Upload executable for LinuxSN(error)(tick)
Post README.rst.txt on SourceForgeSN(error)(tick)Update for new release.  For R2020a, the actual file is not a RST file. 
Upload docs to documentation siteSPH(error)

SN




SN/DJC



SN/DJC

(tick)




(tick)



(tick)

TaskWhoStatusNotes

Make files visible on SourceForge

SPH(error)07/21: Made visible at time of posting, as "soft" release.
Send out release announcementSPH(error)
  • Mention GSFC in the announcement
  • Don't include large attachments.
Post release announcement on SourceForgeSN(error)
Post release announcement on GMAT BlogSPH(error)Blog won't load as of 7/21/2017... just get spinning wheel.  Waited for 5-10 minutes several times. -SPH
Mark as released in JIRASPH(error)
  1. Upload using SSH to http://gmat.sourceforge.net/docs/
  2. Update HTML with new section
  3. Move "latest" pointer to new folder

SEE NOTES IN SECTION BELOW

Fixed "latest download" to point to new exe.SPH(error)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 networkSN(error)
Upload source to SourceForge Git repoSPH(error)

Upload public repo to sourceforge

Change new branch to be active branch (what is checked out by default)

Update the doxygen dataSPH(error)
Make SourceForge repository backupDJC(error)

Follow SourceForge's instructions.

Here is the Rsync command for us:

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

* 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))

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

...

Please add your notes to the R2017a R2020a Lessons Learned document.

Compatibility changes

...

  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.

      Code Block
      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" 

...