Skip to content

Mesquite Release Protocol

Wayne Maddison edited this page Sep 13, 2017 · 45 revisions

Mesquite Release Protocol

##Lead up to release ###Code

  • add new features/bug fixes to History of New Features page (check Help>List of new modules)
  • test and possibly resave example files
  • check prerelease modules (use Help>List of prerelease modules): check code and switch those deemed safe to isPrerelease = false;
  • search code for Debugg. (should be no instances in release)
  • (major only) test under Windows, Linux, OSX
  • for new modules return current release for getVersionOfFirstRelease; replace constant NEXTRELEASE if that had been used.
  • (major only) headless recompile

##Release process ###Code & Workspace

  • set build numbers and version numbers in MesquiteModule.java
  • set release dates, version, version numbers, prerelease in Mesquite.java
  • change update.xml URL in Installer and Defaults to real ones if needed
  • edit as needed update.xml, install.xml, and notices.xml files
  • save copy of the Eclipse workspace (important to help test behaviour of whole builds/workspaces)

###Package release bundles for macOS, Windows, Linux

  • Make sure jars folder is complete
  • Use the OS-specific base Mesquite_Folders by copying the universal base three times, for OS X, Linux and Windows (at least mesquite/ , perhaps also images, jars).
  • Make the downloaded bundles for each OS:
    • MacOSX: Use Disk Utility to create a disk image from the folder (e.g. Mesquite 3) that contains Mesquite_Folder. HOWEVER you also need to sign the dmgs that are made using codesign --force --sign "Developer ID Application: Username of Developer"
    • Linux: cd into Mesquite_Folder, and strip out hidden files using find . -name ".*" -exec rm -rf {} ; Then use GuiTAR or other program to create .tgz file from Mesquite_Folder
    • Windows: cd into Mesquite_Folder, and strip out hidden files using find . -name ".*" -exec rm -rf {} ; Then zip directory using NOT the standard MacOS X Compress File feature, but instead something like YemuZip that removes the extraneous files etc. made by the Mac.

###GitHub

  • do all needed pull requests. Do this after everything, including notices.xml, is updated.
  • do formal release in repository

###Documentation (Wiki)

  • update Release Dates page
  • update Citing Mesquite page
  • update version number on home page
  • convert wiki to PDF and upload to mesquiteproject.org

###Server files

  • change log file names to nameDATE.log so that new ones will initiate from point of release
  • adjust python files (e.g. mesquiteFeedback.py) if needed
  • (one-time setup) Files on server Mesquiteproject.org are
    • /Library/WebServer/Mesquite/
      • mesquite
        • addenda (ad hoc, not much used)
        • BeanTree (archival)
        • development (archival)
        • images (just in case)
        • notice
          • notices.xml (the main NOTICES file!)
        • pairwise (archival)
        • salticidae (archival)
        • updates
          • updates.xml (the main UPDATES file!)
        • error.html (file not found, indicates documentation now on wikispaces)
        • index.html (indicates documentation now on wikispaces)
        • mesquite.html = index.html
      • Mesquite_Folder
        • docs
          • mesquite
            • manual.html (indicates documentation now on wikispaces)
      • mesquite 0.98 (archival)
      • etc.
      • mesquite 2.75 (archival)
      • packages (the main additional PACKAGES directory)
      • pdap_mesquite
    • /Library/WebServer/mesquite_logs (contains logs of phoning home & error reports)
  • Redirects on mesquiteproject.org are:
Clone this wiki locally