Release tasks

From Post-Apocalyptic RPG wiki

Jump to: navigation, search

Established workflow.png This article covers an established workflow.

Established workflows have been discussed among and agreed upon by the development department(s). They should serve as documentation how these workflows are successfully utilized in the project.

This article contains a list of tasks that should be taken care of whenever we release a new official version of PARPG.

Contents

Moving into packaging stage

  • Inform the team about moving into bugfixing / packaging stage about two weeks prior to the release
  • Ask around for volunteers who could help with packaging early
  • Spread news about the upcoming release at the various places where we advertize as soon as moving in packaging stage

License-related aspects

  • Files that will definately need a license file:
    • game/fonts/*
    • game/gui/icons/*
    • game/gui/inv_images/*
    • game/music/*
    • game/objects/*
  • Follow the templates (*.template) for 3rd party assets, PARPG assets and code that can be found at http://parpg-trac.cvsdude.com/parpg/browser/trunk/game/license
  • One .license file for every (set) of 3rd party assets; one .license file for every directory of PARPG assets
  • Normal .license files do NOT contains full text copies of the used licenses; full text copies of every used license are rather stored in game/license, e.g. game/license/gpl30.license, game/license/cc30_by_sa.license, etc.
  • Remove any assets that have dubious sources from SVN
  • Make sure that all assets that haven't been removed come with a valid LICENSE file; example: http://parpg-trac.cvsdude.com/parpg/browser/trunk/game/dialog/dialog.license

SVN properties

Check for proper SVN properties; important ones to look out for:

  • svn:eol-style: to avoid wrong line endings on the different supported platforms; these files / file types should use svn:eol-style >> native:
    • *.bat
    • *.py
    • *.license (in case we adopt the one .license file per asset approach)
    • *.xml
    • *.yaml
    • LICENSE
    • README
    • TEST
  • svn:executable: all files that you should be able to run directly should have this property set; furthermore all of these files need to have a proper shebang in case of non-Win32 files:
    • game/dialog_demo.py
    • game/log_parpg.bat
    • game/parpg_editor.py
    • game/run.py
    • game/run_tests.py
    • game/tests/*.py (depends on if every test is meant to be supported to be run separetely)
    • Do NOT set svn:executable for tools/map_editor/run.py; the map editor needs to be started via parpg_editor.py to use our custom loaders so running tools/map_editor/run.py directly will cause issues
  • svn:ignore: to avoid unwanted files in the packages:
    • *.db (thumbs.db is a common binary win32 thumbnail file)
    • *.pyc

README

Compile a README that features the following sections and is added to SVN & the release packages as well:

  • Introduction (mentioning release name and the SVN revision that we release is based on)
  • Note about the current status of the project; released as is due the lack of active developers lately
  • Table of contents
  • License (code & assets!)
  • How to run the game & any editing tools that ship with it (editor has to be started via game/parpg_editor.py, not via tools/map_editor/run.py!)
  • Known bugs / problems
  • How to provide feedback (link to the forums)
  • Feel free to get inspired by FIFE's readme (copy & paste ftw!): http://fife.trac.cvsdude.com/engine/browser/trunk/README

Testing

Testing is essential to ensure that no major bugs make it into the release packages. The following aspects should be tested on all supported platforms.

PARPG

  • game/log_parpg.bat on Win32: test if logging actually works (should log to logfile.txt; logfile should be flushed when log_parpg.bat is ran)
  • game/run.py on Mac, Linux, Win32: test if you PARPG is not crashing while doing the following:
    • run around on the map
    • open the inventory menu and move the dagger item to different slots in your backpack
    • toggle/untoggle cordinates via F5
    • take a screenshot via F7 (check if the screenshot has been actually saved into game/screenshots)
    • initiate dialog with different NPCs and walk through their dialog trees
    • open the options menu, switch from fullscreen to windowed mode, save the changed options, restart PARPG (did the change take effect?)
    • open the options menu, change the initial sound volume (is there a noticable difference?)
    • change maps back and forth via the shanty door map object
    • pause/unpause game via PAUSE

Map editor

  • game/parpg_editor.py: test if you can successfully open game/maps/map.xml, save it again right away and try to run game/run.py (does PARPG still run or crash?)

Unit tests

  • game/run_tests: test if all unit tests actually pass

Other tools

  • game/dialog_demo.py: test if you can successfully walk through both example dialogs
  • game/utilities/agentXmlGen.py: test if you can generate valid XML agent files by running it in the root directory of the agent
  • game/utilities/imageslicer.py: test if you can actually split up a larger image into smaller chunks

Packaging

  • Ensure that there are packagers for the targeted platforms Linux, Mac & Win32 who
    1. research how to package PARPG
    2. compile the actual packages for the different platforms
  • Bundle the map editor with the release packages. Proposed directory structure:
  • Package as .tar.gz archive

Release

  • Ensure that all compiled release packages has been tested at least once, prerably twice, by a different developer who runs the same platform
  • Upload the tested release packages at sourceforge.net
  • Make sure that the releases at sourceforge are properly tagged as standard packages for the different supported platforms
  • Tag the trunk version that was used for the release in SVN (e.g. tags/techdemo1)

Spread the word

  • Announce the release at our blog and link to the release packages
  • Send in news about the release at http://indierpgs.com/
  • Promote the release at various places as time permits
  • Submit the release at freshmeat.net
  • Submit the release at happypenguin
  • Close the release milestone in Trac and move the remaining unfixed tickets to upcoming milestone
Personal tools