Release Procedure - UA-ScriptEase/scriptease GitHub Wiki
There are three targets in the ant file that make your life easy fore each different kind of release that will come up. There are public releases, private releases to the project team, and individual jars.
Tip: If you're editing these procedures, you can change the mailing lists to just have your email to avoid spamming everyone in the universe while testing!
###Prior to Release Before releasing consider whether your release will break stories that were released in a previous release. ScriptEase II does not have good backwards compatibility support. Generally anything that changes the translator's API dictionary will do it. Be careful when doing updates.
Each public release (more below) should have a different version number to prevent users from running into these complications. They won't be able to open a old story in the new version (That is good, because things will break). We haven't considered increased backwards compatibility support because our audience is small - primarily it is only released to CMPUT250 students every semester, chances are good that they won't care about opening older ScriptEase II story files.
Nonetheless, this is something that we should look into in the future.
###Public release
Public releases only happen when the project lead gives it a green light. The release procedure is:
- Tag the commit. See http://gitready.com/beginner/2009/02/03/tagging.html for what this looks like. Our version numbers are of the format:
<major scriptease number>.<public release number>
(ex: the first SE2 public release would be 2.0).
- Using terminal/PuTTY, run
ant release
in the ScriptEase source root folder (the one with build.xml in it). - This will create a jar, copy it to the
script
account (where the website can get to it), and email the public release list in themailingLists.properties
file of your great success.
- High five someone
- Find a partner. If alone, this can be accomplished by oneself, though it is usually called clapping.
- Both participants lift a hand, palm towards your partner
- Strike hands together with moderate force. Tip: Look at your partner's elbow when moving hands
###Private (Project Team) Release Private releases should happen when you want to share a jar to be tested.
- Tag the commit as above in public, but add an internal version number to the end of the tag.
- As above, but run
ant share
instead. - This will create a jar, copy it to the
script
account (where only the team can get to it), and email the private release list in themailingLists.properties
file.
- Hunker down for bug reports. Duane is especially efficient at finding them. You think you tested it? No you didn't. Not enough. Never enough.
###Individual release Individual zips should be made only when you need to make one for yourself for testing. It's tempting to just use this all the time and to email the jar to everyone, but why do that when that's automated above?
- In a terminal, navigate to the ScriptEase directory of the branch on which you are currently working
- Using terminal/PuTTY, run
ant zip
in the ScriptEase source root folder (the one with build.xml in it). - This will create a zip file in that directory that, when extracted, will be a full installation of ScriptEase.
- Once the jar is built, you will find it in the same ScriptEase directory
Testing a Jar in Eclipse
- Create a new run configuration. Tag the end of the name with a (JAR) to make it obvious what it's for.
- In the 'Main' tab, leave Project blank and put the fully qualified name of the main class (eg. scriptease.ScriptEase) in the 'Main class' field.
- In the Arguments tab, set your working directory to where the jar is located.
- In the 'Classpath' tab, click on User Entries, then Add External Jars and select the jar file to debug (eg. ScriptEase2.jar)
- In the 'Source' tab, add the project as source (eg. ScriptEase2 project)
- Run using this run configuration.
Remember to compile the jar with debugMode="true" otherwise you won't get very far in your debugging.
###Rolling back released jars
If you ever need to fix the wiki or website jar because it's horribly broken (which should never happen except by accidentally using the wrong target), then follow this guide.
- Navigate to the wiki docs folder
- Type
rm -f ScriptEase.jar; ln -s /absolute/path/to/desired/jar/ScriptEase.jar
- Only remove a jar from this folder if it will NEVER be used again
###Versioning
As mentioned in the public release section, the versioning system is of the format: <major scriptease number>.<public release number>
. The major ScriptEase number is always 2 in the case of ScriptEase II.
The public release number is automatically incremented with each major public release by running ant release
. If there are backwards incompatible changes before a public release, the public release number can also be incremented using ant incrementBuildNumber
. (Although this will probably defeat the purpose of it being the public release number ... plans to change it to 3 digits in the future?)
Story files are tied to the version of ScriptEase II that they were created in. Incrementing the version of ScriptEase II will cause all story files created in previous versions to not open. The current version of ScriptEase II is recorded in the .ini
file and the version of the story file is marked in the .ses
xml.
This page contains information on how to create a Windows Installer for ScriptEase. The Installer can set up menus and desktop shortcuts customized to each computer's file structure, and automatically set ini files to the correct NWN location by reading Windows registry.
Download and install Inno compiler ( http://www.jrsoftware.org/isinfo.php ), the latest file is attached (as of Dec 2012).
- Open the Inno script file for SE II, located in
installer
- Unzip the SE II zip file to get the required files.
- Open translator.ini for NwN, remove the lines with COMPILER_PATH and GAME_DIRECTORY. These will be generated by the installer based on the location of NWN on the machine.
- Run the script file in a folder that also contains ScriptEase2.jar, ScriptEase.url, and all other files and folders (all the files required to be installed)
- After the Inno compiler finishes, a new setup.exe file should appear in the same folder.
- Test the new setup.exe file on a machine without SE II installed.
- Running the installer with option /VERYSILENT will make the installer silent.