Skip to content

Mesquite Release Protocol

David Maddison edited this page Jan 1, 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)
  • (major only) examine 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)

###Release packages

  • (Possibly needed only once, for 3.0 release, see following note about OS-specific base folders) Prepare a universal base Mesquite_Folder containing the following. The jars folder is expanded to show you what should be in there. Make sure Mesquite_Folder doesn't contain classpaths.xml.
    • com
    • corejava
    • documentation.html
    • edu
    • examples
    • images
    • jars
      • commons-codec-1.6.jar
      • commons-httpclient-3.1.jar
      • commons-lang-2.3.jar
      • commons-logging-1.1.1.jar
      • dom4j-1.6.1.jar * gson-2.6.2.jar * httpclient-4.3.6.jar
      • iText.jar
      • Jama-1.0.1.zip
      • JSci.zip
      • pal.zip
    • lesser.txt
    • lib
    • mesquite
    • org
    • startingMesquiteAndMemoryAllocation.txt
  • (Possibly needed only once, for 3.0, with subsequent changes being simply copied to each OS-specific base folder). Prepare the OS-specific base Mesquite_Folders by copying the universal base three times, for OS X, Linux and Windows. The OS X-specific base Mesquite_Folder should be within an enclosing folder whose name reflects the current version (e.g. Mesquite 3/Mesquite_Folder). Into each, place the executables for the OS. These are:
    • For OS X:
      • Mesquite [1GB].app
      • Mesquite [2GB].app
      • Mesquite [500MB].app
      • Mesquite_Start_Script.command
    • For Windows:
      • Mesquite [1GB].exe
      • Mesquite [2GB].exe
      • Mesquite [500MB].exe
      • Mesquite_Start_Script.bat
    • For Linux:
      • mesquite.sh
  • For each release, copy the new versions of the changed folders (at least mesquite/ , perhaps also images, jars). into each of the three OS-specific base Mesquite_Folders. By doing this, you need have made the OS-specific base Mesquite_Folders only once, and can simply update them with each new release.
  • 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
    • 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 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

  • last minute: upload update.xml, install.xml, etc., as needed
  • 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