(NSI script also contains the version) |
m (Small updates and encoding fixes) |
||
(6 intermediate revisions by 5 users not shown) | |||
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>CMakeLists.txt</code> | * <code>CMakeLists.txt</code> - version | ||
* <code>INSTALL</code> - dependencies and their versions | |||
* <code>INSTALL</code> | * <code>NEWS</code> - version, release date and changes | ||
* <code>NEWS</code> | * <code>data/help/changes.txt</code> - version, release date and changes | ||
* <code>data/help/header.txt</code> - version and release date | |||
* <code>data/help/changes.txt</code> | * <code>src/main.h</code> - version | ||
* <code>data/help/header.txt</code> | * <code>src/winver.h</code> - version | ||
* <code>src/main.h</code> | |||
* <code>src/winver.h</code> | |||
* <code>packaging/windows/setup.nsi</code> - version | * <code>packaging/windows/setup.nsi</code> - version | ||
=== Making a clean tarball === | === 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 | 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 <code>make dist</code>, with automake. | ||
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=== | === 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" | First time setup: | ||
# [[Git repository|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://nsis.sourceforge.net Nullsoft Scriptable Install System] | ||
# Install [http://upx.sourceforge.net/ UPX] (the script expects upx to be in a "upx" subdirectory) | # Install [http://upx.sourceforge.net/ UPX] (the script expects upx to be in a "upx" subdirectory) | ||
Line 28: | Line 28: | ||
# Check if the dlls were compressed (SDL.dll, SDL_Image.dll, SDL_Mixer.dll) | # Check if the dlls were compressed (SDL.dll, SDL_Image.dll, SDL_Mixer.dll) | ||
# Get [http://gnuwin32.sourceforge.net/packages/gettext.htm Gettext for windows] | # Get [http://gnuwin32.sourceforge.net/packages/gettext.htm Gettext for windows] | ||
# | # Copy msgfmt.exe and all DLL files from the directory "bin" of your gettext installation to <code>TMW/packaging/windows</code> | ||
For each release: | |||
# Open <code>TMW/tmw.cbp</code> with Code::Blocks and compile the project | # Open <code>TMW/tmw.cbp</code> with Code::Blocks and compile the project | ||
# Run the visual basic script <code>TMW/packaging/windows/make-translations.vbs</code> to compile the gettext translation files | # Run the visual basic script <code>TMW/packaging/windows/make-translations.vbs</code> to compile the gettext translation files | ||
# Make sure setup.nsi mentions the right TMW version | # Make sure <code>setup.nsi</code> mentions the right TMW version | ||
# Run the script <code>TMW/packaging/windows/setup.nsi</code> using NSIS | # Run the script <code>TMW/packaging/windows/setup.nsi</code> using NSIS | ||
# Test the installer with a fresh installation (uninstall and delete installations). Test also uninstall process to check if removes all the files. | # Test the installer with a fresh installation (uninstall and delete installations). Test also uninstall process to check if removes all the files. | ||
Line 40: | Line 42: | ||
=== Notifying the package maintainers and websites === | === 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 | 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 repository|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 their packages: | ||
* '''Debian''' | * '''Debian''' - [[User:the-me|the-me]] | ||
* '''Slackware''' | * '''Slackware''' - [[User:Platyna|Platyna]] | ||
* '''MacOS X''' | * '''MacOS X''' - [[User:Trapdoor|trapdoor]] | ||
* '''Arch Linux''' | * '''Arch Linux''' - [http://aur.archlinux.org/packages.php?ID=9447 Package details (mark out of date)] | ||
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] | * [http://freshmeat.net/projects/tmw/ Freshmeat] - [[User:Bjørn|Bjørn Lindeijer]] | ||
* [http://games.linux.sk/index.php?id=141 Games for Linux] | * [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] | * [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] | * [http://rpgdx.net/showgame.php?project_id=297 RPGDX] - [[User:Bjørn|Bjørn Lindeijer]] | ||
=== Updating the wiki === | === Updating the wiki === | ||
Line 61: | Line 63: | ||
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. | 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. | ||
* [[Config settings]] | * [[Archive:Config settings|Config settings]] - default options and option names | ||
* [ | * [http://doc.manasource.org/dependencies Dependencies] - dependencies and version | ||
* [[Screenshots]] | * [[Screenshots]] - a new and fresh screenshot showing off a new feature (and new content) | ||
* [[Walkthrough]] | * [[Walkthrough]] - default controls |
Latest revision as of 07:56, 5 March 2024
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
- versionINSTALL
- dependencies and their versionsNEWS
- version, release date and changesdata/help/changes.txt
- version, release date and changesdata/help/header.txt
- version and release datesrc/main.h
- versionsrc/winver.h
- versionpackaging/windows/setup.nsi
- 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
First time setup:
- Clone the Git repository of the eAthena client. The directory where you have the cloned repository will now be referred to as "TMW"
- Get Nullsoft Scriptable Install System
- Install UPX (the script expects upx to be in a "upx" subdirectory)
- Get Code::Blocks and all libraries.
- Check if the dlls were compressed (SDL.dll, SDL_Image.dll, SDL_Mixer.dll)
- Get Gettext for windows
- Copy msgfmt.exe and all DLL files from the directory "bin" of your gettext installation to
TMW/packaging/windows
For each release:
- Open
TMW/tmw.cbp
with Code::Blocks and compile the project - Run the visual basic script
TMW/packaging/windows/make-translations.vbs
to compile the gettext translation files - Make sure
setup.nsi
mentions the right TMW version - Run the script
TMW/packaging/windows/setup.nsi
using NSIS - Test the installer with a fresh installation (uninstall and delete installations). Test also uninstall process to check if removes all the files.
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:
- Debian - the-me
- Slackware - Platyna
- MacOS X - trapdoor
- Arch Linux - Package details (mark out of date)
The following people are responsible for updating the respective websites:
- Freshmeat - Bjørn Lindeijer
- Games for Linux - Bjørn Lindeijer
- Gentoo Packages - Bjørn Lindeijer emails Games herd
- The Linux Game Tome - ?
- RPGDX - Bjørn Lindeijer
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.
- 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