Prepare a release - gerhardol/gitextensions GitHub Wiki
GitExtensions uses semantic versioning for its releases. The basic workflow proceeds as follows.
- General development work is performed on the master branch. During this time, new features may be added to the product.
- In preparation for a release, a new branch is created with the name release/major.minor. For example, the branch release/<latest version> was created in preparation for the <latest version> release. These release branches are feature frozen; only small bug fixes are allowed to be added to one of these branches.
- Work on the new version takes place in the
master
branch - Merge all PR that ready for new version
- Create milestone for new version
- Assign bugs (especially all regressions), features to that milestone
- Update 3rd party tools (PuTTY remains - to be removed)
- Update copyright year if needed
- Fix all issues in milestone or move them to milestone 'Next version' if necessary
- Freeze
master
branch for all PR's that add/change localized strings - that means do not accept any PRs that modify strings. - Bump up the version in the master branch
- Create branch
release/3.x
in GitExtensions - Announce on Transifex that new version is ready to ship in two(?) weeks. Remind that only the language in which the "User Interface (master)" translated 95% or more will be added in the installer.
- Create branch
release/3.x
in GitExtensionsDoc - To pull latest translations from Transifex website run the following:
cd <project root> && .\setup\transifex\DownloadTransifexTranslations.ps1
- Do a high level review of the updated translations
- Review changes in
Setup\Product.wxs
- Create documentation version on Read the Docs site. See wiki
- Commit and tag it as annotated tag
v3.x.0-RC[number]
- Update
src/app/GitUI/Resources/ChangeLog.md
with the local file generated usingcd <project root>\setup\installer && .\Prepare-Release.ps1 -milestone <number>
- Check the installer
- Set
ARTIFACT_SIGNING_ENABLED
totrue
at https://ci.appveyor.com/project/gitextensions/gitextensions/settings/environment - Rebuild the commit
- Set
ARTIFACT_SIGNING_ENABLED
back tofalse
- Approve the signing request on https://app.signpath.io/Web/7c19b2cf-90f7-4d15-9b12-1b615f7c18c4/Home/Dashboard
- Download the signed archive (The name of the Zip does not change.)
- Create a pre-release and upload the signed binaries (using the annotated tag created above)
- Give users the release candidate to test it
- Update version date in
src/app/GitUI/Resources/ChangeLog.md
and port it to master branch - Commit and tag it as annotated tag
v3.x.0
- Upload it with changelog to GitHub releases
- Update the 'latest' branch for GitExtensionsDoc to point to the release documentation. See wiki
- If after week no critical error reported update version and link in
configdata
branch for autoupdater - Update
README.md
on master branch- version number in section
Downloads
- version number in section