Appendix: Windows App Release Process

We generally find that automation of software release processes is truly a life-changer. But there are still aspects of the release process for the WWT Windows client that aren't fully automated. Some of them could definitely benefit from automation; others probably aren't worth it.

TODO: it would be really nice to have a way to prototype dataset updates without potentially affecting existing installs, but we don't have the infrastructure to do that yet.

  1. In a wwt-windows-client checkout on master, prepare a Cranko release request, including release notes for both app and datasets.
  2. Upload any new data files to the cloud, updating the data version in wwtfiles:catalog/wwt6_login.txt.
  3. Generate new preloaded data cabinet file using a development build of the app:
    1. Delete ~/AppData/Local/American Astronomical Society/WorldWideTelescope/
    2. Launch the app
      1. Turn on MPC asteroids in Solar System view
      2. Zoom all the way out to SDSS galaxies
      3. Switch to Sky mode
      4. Open Mars folder of Explore ribbon
      5. Click on Tours tab to load up its folder
      6. Switch to Earth mode, spin around
      7. Toggle 8k cloud maps in the Earth cloud layer properties
      8. Right-click Earth in Layer Manager and "Add WMS Layer"
      9. Register the built-in WMS server under the name "NASA"
      10. Open up the "View from Location" selector dialog
      11. Switch to Mars view, spin around
      12. Switch back to Earth mode to pull 8k cloud maps
      13. Open the language settings UI
    3. Exit the app
    4. Run the MakeDataCabinetFile tool
    5. Upload resulting file to wwtfiles:devops/datafiles_release.cabinet
    6. For posterity, clone the blob to one with a name corresponding to its data version, e.g. datafiles_2022-01-20.cabinet.
  4. Push Cranko release request to WWT rc branch. This triggers the main release processing.
  5. Download the release installer from GitHub and duplicate to wwtwebstatic:$web/releases/wwt/.
  6. Update the installer redirection URL:
    1. Update in wwt-nginx-core.
    2. Build local Docker image and test locally.
    3. Submit pull request, merge to master
    4. Verify that production service has updated with curl -I
  7. Update the user website:
    1. Update either content/download/ or content/download/ in wwt-user-website.
    2. Preview changes with Zola.
    3. Submit pull request, merge to master.
    4. Verify that user website has updated.
  8. Re-update the login file to announce the new version:
    1. Pull down the login file
    2. Rename it to wwt6_login.txt
    3. Update the ClientVersion: line
    4. Upload to wwtfiles:catalog/wwt6_login.txt
    5. Check that an older install detects the update.