Skip to content

Development Knowledge Base

Christian Soltenborn edited this page Mar 12, 2017 · 7 revisions

Branching strategy

The GTA project follows a simple branching strategy:

  • Releases are created from master
  • Development is done on develop
  • Bugfixes are done on master and merged into develop
  • Feature branches are based on develop (and only merged into that branch)
    • Naming scheme: #{issue number}_{feature name/description}
    • Finite lifetime (in contrast to masterand develop)
    • For local branches, rebasing is preferred (but not required)
    • Branches are merged without squashing
  • Acceptance testing happens on develop
  • Releases are created by merging develop into master

Generating fused Google Test source

  • Change to directory googletest\googletest\scripts
  • Execute command python fuse_gtest_files.py fused-src

Release steps

Releases are created from master branch. A commit results in a release deployed on GitHub if that commit is tagged in a certain way:

  • The tag needs to be lightweight
  • The tag needs to point at the same commit as the master branch

To produce a release, follow the steps below.

  1. Change version in appveyor.yml, VSPackage.nuspec, and README.md (e.g., 1.0.2)
  2. Add release notes file to VsPackage/Resources/ReleaseNotes if it does not yet exist
  • For the links to work on both GitHub and in our release notes dialog, make sure to only use absolute links (e.g. [#48](https://github.com/csoltenborn/GoogleTestAdapter/issues/48) instead of #48)
  1. Add version and date to VsPackage/ReleaseNotes/History.cs
  2. Commit
  3. Create tag as described above with name v1.0.2
  • SourceTree: Check "Lightweight tag" at advanced tag options
  • Console: git tag v1.0.2
  1. Push master branch with tag
  • SourceTree: Check "Push all tags" at push dialog
  1. Wait for AppVeyor build to finish (which deploys the release to GitHub)
  2. Check release on GitHub, publish release if everything is fine
  3. Download resulting vsix file and upload it to the VS Gallery
  4. If necessary: update description at VS Gallery

After pushing, README.md points to a not yet existing release - make sure to finish the rest of the process asap.

Clone this wiki locally