How to make a BlueJ release
---------------------------

PART I - BUILDING BLUEJ
-----------------------

 1. Set the right BlueJ version number in bluej/build.xml and run: ant update-version-number
 
    This updates the version number in the Boot class. (The Windows
    README.TXT has its version updated as part of the "windows-dist"
    target).

 2. No longer necessary:
    Make sure to build the submitter extension (using 'buildall' from the
    extension ant build file). This places submitter.jar into bluej/lib/extensions.
    
    NOTE: submitter.jar is now under version control. If changes are made to the submitter
    extension, the submitter.jar file should preferably be re-built and committed to the
    repository at that time.
     
 3. Make sure you have a reasonably clean project folder as almost everything
    will be included in the source bundle.
    
    Do a clean to ensure a clean build:    ant clean
    (Compile and) build the release with:  ant dist
    (make sure the JDK version used for the build is the lowest
     compatible JDK for BlueJ)
    This will create 
        bluej/package/bluej-dist.jar            -- the core jar for building the win release
        bluej/package/BlueJ-generic-VERSION.jar -- the cross platform installer
        bluej/package/BlueJ-mac-VERSION.zip       -- the Mac installer
        bluej/package/BlueJ-source-VERSION.zip    -- the source bundle
    NOTE: for some mysterious reason, distributions are larger when
    built on Windows. Preferably build on Solaris or Mac.
    
 4. Run "ant debian-dist" to build the Debian/Ubuntu ".deb" package. You can only do this
    on a system which has the "dpkg-deb" utility installed, and you should do it as the
    root user. 

 5. See HOWTO.make-win-version for building the Windows release.

 6. Rename (usually by adding a release candidate string like "BlueJ*rc1.???").

 7. Test. When okay, rename to final distribution name.
 

PART II - RELEASING BLUEJ
-------------------------

 8. Move the distribution files and the source to the public 
    server (currently www.bluej.org/download/files/).

 9. Update the BlueJ web site to announce the new version. At least:
     - update the "old downloads" section (add the previous release)
        - download/download-old.html 
     - update the "change history" section - help/changes.html
     - update the "download" section (bluej system, install instructions)
        - download/download.html
        - download/install.html
     - update the source download page
        - download/source-download.html
     - put a notice on the front page

10. Update the file www.bluej.org/version.info
    The real location currently is: dodo:~bluej/www/version.info

11. Update the description and BlueJ distribution files for the Extension Manager
    (Updater) extension:
     - Copy the Mac distribution bluej-XXX.zip to extensions/extupdater/bluej_update_mac.zip
     - Copy the Windows distribution bluejsetup-XXX.exe to extensions/extupdater/bluej_update_win.exe
     - Use "ant bluej-updates" in that directory to build bluej_update_win.jar and bluej_update_mac.jar
     - Copy bluej_update_*.jar to the website in ~bluej/www/update-info
     - Edit ~bluej/www/update-info/bluej-updates.xml for each of the three
       distributions, changing the version, size and description.
        - Change the jarUrl entry for the "pure Java" release to refer to 
          the "all other systems" distribution Jar.

12. In the bugs database (http://bugs.bluej.org/trac/bluej),

   1. Add a future release milestone ("Roadmap", "New Milestone").
   
   2. Make sure that there are no open bugs for the new release milestone (i.e. the milestone
      for the release which is about to happen).
      
      If there are any bugs open, they should be re-assigned to the (newly created) future
      release milestone.
   
   3. Also check that there are no bugs against the current release which are marked as
      FIXED but for which the milestone isn't set. Set the milestone to the new release
      for such bugs.
      
   4. Mark the new release milestone as completed.  
   
13. Also in the bugs database, add the new version so that bugs can be reported against
    it.
    
14. Update the support form at http://www.bluej.org/help/supportform.html - the drop-down
    version field should have the new version added as an option.

15. Send a mail message to bluej-announce@bluej.org, announcing the release.

16. More public announcements. See HOWTO.announce-release.

