How To: Release
The update release is most frequent kind of release. Its purpose is to simply actualize previous release in sense of bug fixing or new features being introduced.
Required steps:
- Edit
WPFSKillTree/WPFSKillTree.csproj
and setVersionPrefix
and/orVersionSuffix
to reflect the new version. - Run
dist-release.bat
fromWPFSKillTree
project directory to create release package (Setup package will be created inWPFSKillTree\dist
directory).- script can be added to External Tools... of Visual Studio with Command set to
$(SolutionDir)WPFSkillTree\dist-release.bat
, Initial Directory set to$(SolutionDir)WPFSkillTree
and Use Output window checked.
- script can be added to External Tools... of Visual Studio with Command set to
- In Team Explorer use Commit and Sync to push source code of release to GitHub repository.
- On GitHub site create Release with same tag as
VersionPrefix
andVersionSuffix
are set to (see below for more information on versioning).- Attach released package from
WPFSKillTree\dist
directory.
- Attach released package from
- Run
dist-clean.bat
fromWPFSKillTree
project directory to clean updist
work directory and Release build files.
The new product release is required when compatibility with previous release is broken and new release is supposed to be installed alongside previous release. Its purpose is to provide new mechanics introduced by huge changes in game itself, while still leaving access to the previous release.
Required steps:
- Edit
WPFSKillTree/WPFSKillTree.csproj
and setProduct
to new product name (e.g. PoESkillTree 2, PoESkillTree - The Awakening, etc.).- Don't use already released product name.
- Don't use invalid characters for file or folder name. The
Product
is being used also as folder name. - Product name must contain "PoESkillTree" string (case-insensitive) for "Check for Updates" function to work.
- Continue with steps required for Update release.
The product version is a combination of VersionPrefix
and VersionSuffix
. If VersionSuffix
is empty, VersionPrefix
is used. Otherwise, both are concatenated with a hyphen (-
) in between. This combined version has to be used for git tags.
The version format used for VersionPrefix
and VersionSuffix
(and therefore also git tags) must follow semantic versioning, i.e. VersionPrefix
must consist of Major, Minor and Patch version. For pre-releases, set VersionSuffix
to the pre-release type (any string not containing .
or -
) and optionally a dot and the pre-release version index, e.g. alpha or alpha.1 (this is a bit restricted compared to semantic versioning to simplify parsing). If the release is not a pre-release, keep VersionSuffix
empty.