From The Mana World
(Wiki pages and a little moving around)
Line 3: Line 3:
The program version and release date are mentioned in several places. Some other places are also important to check before making a release.
The program version and release date are mentioned in several places. Some other places are also important to check before making a release.


* <code>configure.ac</code> (version)
* <code>CMakeLists.txt</code> – version
* <code>CMakeLists.txt</code> (version)
* <code>configure.ac</code> – version
* <code>src/main.h</code> (version)
* <code>INSTALL</code> – dependencies and their versions
* <code>src/winver.h</code> (version)
* <code>NEWS</code> – version, release date and changes
* <code>README</code> (version and release date)
* <code>README</code> – version and release date
* <code>INSTALL</code> (dependencies and their versions)
* <code>data/help/changes.txt</code> – version, release date and changes
* <code>NEWS</code> (version, release date and changes)
* <code>data/help/header.txt</code> – version and release date
* <code>data/help/header.txt</code> (version and release date)
* <code>src/main.h</code> – version
* <code>data/help/changes.txt</code> (version, release date and changes)
* <code>src/winver.h</code> – version


=== Making a clean tarball ===
=== Making a clean tarball ===
Line 18: Line 18:


To test that the distribution compiles and installs with just the files included in the release, <code>make distcheck</code> can be used. However, you should also make sure that it actually runs.
To test that the distribution compiles and installs with just the files included in the release, <code>make distcheck</code> can be used. However, you should also make sure that it actually runs.
=== Creating a windows installer===
# [[Git|Clone the Git repository of the eAthena client]]. The directory where you have the cloned repository will now be referred to as "TMW"
# Get [http://nsis.sourceforge.net Nullsoft Scriptable Install System]
# Get [http://www.codeblocks.org/ Code::Blocks] and all [[Dependencies#Installing_the_dependencies_on_Windows|libraries]].
# Get [http://gnuwin32.sourceforge.net/packages/gettext.htm Gettext for windows]
# Get the [http://sourceforge.net/project/showfiles.php?group_id=106790&package_id=199743 music package] and put it into the TMW/data directory (so you have TMW/data/music/*.ogg)
# Open TMW/tmw.cbp with Code::Blocks and compile the project
# Copy msgfmt.exe and all DLL files from the directory "bin" of your gettext installation to TMW/packaging/windows
# Run the visual basic script TMW/packaging/windows/make-translations.vbs to compile the gettext translation files
# Run the NSIS script TMW/packaging/windows/setup.nsi using NSIS
You will now have a distributable installer in TMW/packaging/windows/


=== Notifying the package maintainers and websites ===
=== Notifying the package maintainers and websites ===
Line 25: Line 39:
The following people are responsible for updating their packages:
The following people are responsible for updating their packages:


* '''Debian''' - [[User:the-me|the-me]]
* '''Debian''' – [[User:the-me|the-me]]
* '''Slackware''' - [[User:Platyna|Platyna]]
* '''Slackware''' – [[User:Platyna|Platyna]]
* '''MacOS X''' - [[User:Trapdoor|trapdoor]]
* '''MacOS X''' – [[User:Trapdoor|trapdoor]]
* '''Arch Linux''' - [[User:Bjørn|Bjørn Lindeijer]]
* '''Arch Linux''' – [[User:Bjørn|Bjørn Lindeijer]]


The following people are responsible for updating the respective websites:
The following people are responsible for updating the respective websites:


* [http://freshmeat.net/projects/tmw/ Freshmeat] - [[User:Bjørn|Bjørn Lindeijer]]
* [http://freshmeat.net/projects/tmw/ Freshmeat] – [[User:Bjørn|Bjørn Lindeijer]]
* [http://games.linux.sk/index.php?id=141 Games for Linux] - [[User:Bjørn|Bjørn Lindeijer]]
* [http://games.linux.sk/index.php?id=141 Games for Linux] – [[User:Bjørn|Bjørn Lindeijer]]
* [http://packages.gentoo.org/package/games-rpg/tmw Gentoo Packages] - [[User:Bjørn|Bjørn Lindeijer]] emails [mailto:games@gentoo.org Games herd]
* [http://packages.gentoo.org/package/games-rpg/tmw Gentoo Packages] – [[User:Bjørn|Bjørn Lindeijer]] emails [mailto:games@gentoo.org Games herd]
* [http://happypenguin.org/show?The%20Mana%20World The Linux Game Tome] - ?
* [http://happypenguin.org/show?The%20Mana%20World The Linux Game Tome] – ?
* [http://rpgdx.net/showgame.php?project_id=297 RPGDX] - [[User:Bjørn|Bjørn Lindeijer]]
* [http://rpgdx.net/showgame.php?project_id=297 RPGDX] – [[User:Bjørn|Bjørn Lindeijer]]


=== Creating a windows installer===
=== Updating the wiki ===


# [[Git|Clone the git repository of the eAthena client]]. The directory where you have the cloned repository will now be referred to as "TMW"
The following pages may need to be brought up to date with the new release. Anyone may update these pages, and are encouraged to do so.
# Get [http://nsis.sourceforge.net Nullsoft Scriptable Install System]
# Get [http://www.codeblocks.org/ Code::Blocks] and all [[Dependencies#Installing_the_dependencies_on_Windows|libraries]].
# Get [http://gnuwin32.sourceforge.net/packages/gettext.htm Gettext for windows]
# Get the [http://sourceforge.net/project/showfiles.php?group_id=106790&package_id=199743 music package] and put it into the TMW/data directory (so you have TMW/data/music/*.ogg)
# Open TMW/tmw.cbp with Code::Blocks and compile the project
# Copy msgfmt.exe and all DLL files from the directory "bin" of your gettext installation to TMW/packaging/windows
# Run the visual basic script TMW/packaging/windows/make-translations.vbs to compile the gettext translation files
# Run the NSIS script TMW/packaging/windows/setup.nsi using NSIS


You will now have a distributable installer in TMW/packaging/windows/
* [[Config settings]] – default options and option names
* [[Dependencies]] – dependencies and version
* [[Screenshots]] – a new and fresh screenshot showing off a new feature (and new content)
* [[Walkthrough]] – default controls

Revision as of 11:11, 25 February 2009

Updating the version and release date

The program version and release date are mentioned in several places. Some other places are also important to check before making a release.

  • CMakeLists.txt – version
  • configure.ac – version
  • INSTALL – dependencies and their versions
  • NEWS – version, release date and changes
  • README – version and release date
  • data/help/changes.txt – version, release date and changes
  • data/help/header.txt – version and release date
  • src/main.h – version
  • src/winver.h – version

Making a clean tarball

Authors and packagers should work on making a clean tarball, which has no .git folders, no Makefiles, no .deps folders, etc... That kind of clean is needed when uploading sources such as for debian, and can be obtained thanks to make dist, with automake.

To test that the distribution compiles and installs with just the files included in the release, make distcheck can be used. However, you should also make sure that it actually runs.

Creating a windows installer

  1. Clone the Git repository of the eAthena client. The directory where you have the cloned repository will now be referred to as "TMW"
  2. Get Nullsoft Scriptable Install System
  3. Get Code::Blocks and all libraries.
  4. Get Gettext for windows
  5. Get the music package and put it into the TMW/data directory (so you have TMW/data/music/*.ogg)
  6. Open TMW/tmw.cbp with Code::Blocks and compile the project
  7. Copy msgfmt.exe and all DLL files from the directory "bin" of your gettext installation to TMW/packaging/windows
  8. Run the visual basic script TMW/packaging/windows/make-translations.vbs to compile the gettext translation files
  9. Run the NSIS script TMW/packaging/windows/setup.nsi using NSIS

You will now have a distributable installer in TMW/packaging/windows/

Notifying the package maintainers and websites

Normally first the source and Windows releases are made. After verifying everything works with several people for at least a day, the release will be tagged in Git. At that point the release is official and the package maintainers should get started on producing their package.

The following people are responsible for updating their packages:

The following people are responsible for updating the respective websites:

Updating the wiki

The following pages may need to be brought up to date with the new release. Anyone may update these pages, and are encouraged to do so.