Skip to content

How To: Release

brather1ng edited this page Dec 7, 2019 · 9 revisions

Update 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 set VersionPrefix and/or VersionSuffix to reflect the new version.
  • Run dist-release.bat from WPFSKillTree project directory to create release package (Setup package will be created in WPFSKillTree\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.
  • 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 and VersionSuffix are set to (see below for more information on versioning).
    • Attach released package from WPFSKillTree\dist directory.
  • Run dist-clean.bat from WPFSKillTree project directory to clean up dist work directory and Release build files.

New product release

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 set Product 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.

Version naming

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.