Veracity says...
URL removed because Veracity seemed to not want it posted here for anyone to randomly stumble across. -lost
1) Make sure that the data files are up-to-date and accurate. We tend to enter new items into the databases continuously. That's easier, now that we can learn them by simply having them in inventory or seeing them in the mall. But, even assuming we have all the items, the data we have may be inaccurate.
The "checkitems" command fetches the description of every item, parses it, and compares what it learns to what we have in our internal data. That can be a lengthy process, so it caches them in data/itemhtml.txt and only hits the server for descriptions it does not have cached. It generates data/itemdata.txt. This contains tradeitems, itemdescs, equipment, and modifiers for all items, as generated right from the descriptions. Any discrepancy with our built-in data will be marked with a ***.
This is less useful than it used to be, now that we have expressions for modifiers - and "Familiar Effect" modifiers for hats, for example. But incorrect equipment power, autosell price, level requirements for food, and so on, are caught.
Also, the caching means that if KoL changes an item description, we will not notice, if we have the description cached. Caching is useful for repeatedly rerunning the "checkitems" command, after incrementally trying to fix errors, but you should probably start with an empty itemdata.html.
2) Update and check in a new mallprices.txt. I use this script to get the mallprices for every item. This takes a long time:
Code:
void main( int first, int last )
{
foreach it in $items[]
{
if ( to_int( it ) < first )
continue;
if ( to_int( it ) > last )
{
print( "Done!" );
break;
}
if ( !is_tradeable( it ) )
continue;
int price = mall_price( it );
if ( price < 0 )
{
print( "No " + it + " in mall!" );
continue;
}
print( to_string( it ) + " costs " + price );
}
}
When it finishes, copy data/mallprices.txt to your svn tree and check it in.
3) Edit KoLConstants.java and set VERSION_NAME and VERSION_DATA appropriately.
(And if REVISION is not null, make it null. ant edits this file to insert the current revision before a non-dist build and restores it afterwards - unless you ^C the build. I've done that. It's a mistake.)
Edit build.properties and set version, version.date, and svn.revision.base appropriately (although that last one doesn't seem to work as expected/hoped).
Check in KoLConstants.txt and build.properties with comment "Bump version to 14.8", for example
4) Generate the release notes, such as they are. build.xml has a "notes" target which runs src/net/sourceforge/kolmafia/utilities/ReleaseNotes.java. This reads "history.txt" from the ROOT_LOCATION and writes "release.txt" in the same place.
history.txt is the output of "svn log"
release.txt is the "abbreviated revision history" complete with bbcode links to the sourceforge revision.
% svn update
% svn log > ~/Library/Application\ Support/KoLmafia/history.txt
% ant notes
- edit generated release notes (~/Library/Application\ Support/KoLmafia/release.txt) to have only the new revisions in the release
- Prepend holatuwol's release announcement (util/boilerplate.txt)
Voila! You have the text of the announcement to be posted on kolmafia.us, once the release is available.
5) Generate the four files we will upload to souceforge.
% ant clean
% ant dist
The dist directory now has exactly the files you need: KoLmafia-14.0.dmg, KoLmafia-14.0.exe, KoLmafia-14.0.jar, and KoLmafia-14.0.tar.gz.
6) Upload those files to sourceforge.
Every single time I try this, sourceforge has changed something. The following are current as of August 2011.
- log into sourceforge
- on the kolmafia page, goto Files
You will see multiple folders, one for each release,.
- Click on "Add Folder" and name it "14.0" (or whatever).
- Go into the new folder folder.
- Click on "Add File" and upload your four files.
For each uploaded file, the "i" lets you change "info" about the file.
- Make the .dmg file the default for OS X
- Make the .exe file the default for Windows
- Make the .jar file the default for everything else.
7) Make an announcement on KoLmafia.us. Title it "Version 14.0" and include the edited release.txt you made earlier.
You are done!