Important steps to take before a release:
=========================================

#1 Preparation
- Clean up the repository: Update the pinmame folder, remove sticky tags, commit tested changes.
- check "whatsnew.txt" if nobody was forgotten concerning contributions, bugs fixes, and so on.
- check the date, year and version in all .txt files!
  (bugs.txt, pinmame.text, visual pinmame.txt, whatsnew.txt, whatsnewVPM.txt)
- remove the DEBUG define in the makefile (which is probably not there anyway)!
- edit "src/version.c" for the correct version number
- edit "src/ui/PinMAME32.rc" for the correct version number and copyright years
- edit "src/win32com/VPinMAME.cpp" for the expiration date (=next desired release date) (currently: none)
- edit "src/win32com/VPinMAME.rc" for the correct version number, copyright years and build (MinDependency)
- edit "src/windows/fronthlp.c" for the YEAR_END definition and copyright years
- (Only necessary if the installer has changed)
   - edit "src/instvpm/InstallVPinMAME.rc" for the correct version number and build (Release)
   - build InstallVPinMAME.exe
- commit changes

#2 Build
- export EVERYTHING again in an empty(!) separate folder. Only this way you may ensure nothing was forgotten!
  (use "release_export_current_source.bat X:\Path\To\Empty\Folder" or just drag the empty folder onto it)
- execute "mingw32-make" to build PinMAME.
- Make sure to regenerate gamelist and include it (I believe it's regenerated automatically on a build)
- execute "mingw32-make WINUI=1 SUFFIX=32" to build PinMAME32.
- build VPinMAME.DLL (right now with VC++ .NET 2002)
- optionally: do revision tests for compilation with all supported environments (MinGW/GCC, etc.)

#3 Test
- MAKE SURE STERN GAMES CANNOT WORK, and that TEST_STERN_GAMES FLAG, NO_TIME_LIMIT are not defined!

#4 Tag repository
- Tag the new version
  svn copy https://pinmame.svn.sourceforge.net/svnroot/pinmame/trunk https://pinmame.svn.sourceforge.net/svnroot/pinmame/tags/release_x_y -m "Tag release X.Y"

#5 Create zip packages
- Pack everything together nicely, using max. compression
- Make sure all default folders are included in the VPM zip
  (these are: artwork, cfg, hi, ini, inp, memcard, nvram, roms, samples, snap, sta, wave)
- Make sure MAME license is in all released zips

If anything of the above fails, forget about a release and correct the errors first!
If it worked out ok, however, do a release!

#6 Release
- Upload the zips to pinmame.com and sourceforge.net, update the news & download pages.
- Release it to VPForums' upload page, and tell all the forum people what has happened!
- Shut down your computer! Go and have a drink. You deserve one now!
- 12 hours later, check back the forum for the first terrible errors we forgot to fix!

:)



Revision tests for compilation:
===============================
Test MSVC 6.0 and GCC 3.2.3 first, as MSVC 6 gives the most error messages (e.g.
variable placement at top) and GCC 3.2.3 is quite old.
At last test MSVC 2002 as this is used for the release build.

 * MinGW 2.0 with GCC 3.2.3
   > last trunk revision tested: 3102 = all builds compiled (Maddes)

 * (Optional) MinGW 5 with recent packages and GCC 4.5.0
   > last trunk revision tested: 3102 = all builds compiled (Maddes)
   > known issues:
     (2010-12-20) no sound with WPC pre-DCS ROMs

 * Visual C++ 6.0
   > last trunk revision tested: 3111 = all builds compiled (Maddes)

 * Visual C++ 2002 .NET (RELEASE!!!)
   > last trunk revision tested: 3111 = all builds compiled (Maddes)

 * Visual C++ 2008
Known Issues:
   > known issues:
     (2008) Errors when compiling PinMAME32 VC debug builds
            "CVTRES : fatal error CVT1100: duplicate resource.  type:MANIFEST, name:1, language:0x0409"
   > last trunk revision tested: 3111 = all release builds compiled, but no VC debug builds (Maddes)



Revision tests for emulated hardware platforms:
===============================================
* ...
