-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Making Releases
- Bump the version number in
src/tiled/Info.plist,tiled.qbsandtiled.pri - Update the
NEWS.mdfile with the main changes since the last release
- Make sure copyright year in About Dialog is up-to-date
- Update the translation files (by running
make tsin thetranslationsfolder) - Announce the string freeze to the translators
First, make sure you can compile Tiled. See Contributing to Tiled for instructions on setting up and building.
Open the Terminal, and cd into the base folder of your Tiled checkout.
Run qmake to set up the release configuration. The following command will set it up to build in release mode:
qmake -r CONFIG+=release
To include the auto-updater feature based on Sparkle, add CONFIG+=sparkle. This requires the Sparkle.framework to be installed in /Library/Frameworks.
Use make to build it. Just in case, you can use make clean to make sure any old build files don't interfere with anything.
make clean
make
If it builds, you should have a Tiled.app in the bin folder. You should open it and make sure it works properly.
open bin/Tiled.app
If everything is running smoothly, invoke the distribution script from the Terminal with the version number of the release. This bundles Qt within the app (so end users don't need Qt installed to run it), and it makes a .dmg file containing the app and related READMEs and examples.
./dist/make-dist-mac.rb
The dmg will be placed in the current folder. Make sure you mount and test it in case the distribution script broke. If it works, the dmg is ready to be distributed.
For the Sparkle auto-updater to work, the release needs to be signed. The signature should be included in the AppCast file as the sparkle:dsaSignature attribute. It is created from the release as follows:
openssl dgst -sha1 -binary tiled-0.16.2.dmg | openssl dgst -dss1 -sign $TILED_PRIVATE_KEY_FILE | openssl enc -base64
The process of making a Windows release is entirely automated on AppVeyor. It is triggered when a tag is pushed. The following steps are required for manual creation of an installer:
- Install Qt. Releases can be made based on either MinGW 4.9 (32-bit) or Visual Studio 2013 (32-bit or 64-bit).
- Install the WiX toolset.
- Set either the
TILED_SNAPSHOTorTILED_RELEASEenvironment variable totrue. - Build Tiled using Qbs (
tiled.qbs), with the propertyTiled.windowsInstaller:trueto enable building of the installer (when building from Qt Creator, put this in the Properties field in the Qbs build step).
If the build succeeds, you should find a tiled-...-winXX.msi file in the build directory.
Since Linux is very fragmented, I'm relying on others to package Tiled for various distributions. I'm personally releasing an AppImage on GitHub and itch.io, which should run on most Linux systems.
The Tiled AppImage is built on Travis CI and uploaded to GitHub releases. You can find the commands in the .travis.yml file in the repository.
Remember to flag the Arch Linux package as Out-of-Date.
While snapshot builds are pushed to itch.io automatically, releases are done manually as follows:
mkdir windows-64bit
mkdir windows-32bit
mkdir macos
mkdir linux-64bit
mv Tiled-$TILED_VERSION-win64.msi windows-64bit
mv Tiled-$TILED_VERSION-win32.msi windows-32bit
mv Tiled-$TILED_VERSION.dmg macos
mv Tiled-$TILED_VERSION-x86_64.AppImage linux-64bit
butler push --userversion=$TILED_VERSION windows-64bit thorbjorn/tiled:windows-64bit
butler push --userversion=$TILED_VERSION windows-32bit thorbjorn/tiled:windows-32bit
butler push --userversion=$TILED_VERSION macos thorbjorn/tiled:macos
butler push --userversion=$TILED_VERSION linux-64bit thorbjorn/tiled:linux-64bit
On https://update.mapeditor.org/ I'm hosting the AppCast files that Tiled uses to check for updates on MacOS and Windows. For snapshot builds these files are updated automatically from their respective CI system, but for releases they need to be updated manually.
The manual updates are based on AppCast files generated as part of GitHub pages:
- http://www.mapeditor.org/appcast-win64.xml
- http://www.mapeditor.org/appcast-win32.xml
- http://www.mapeditor.org/appcast-osx.xml
The macOS AppCast is extended with the DSA signature described above.
Quick Links: Download on itch.io • Tiled Manual • Support Tiled Development