Branches, Tags and Releases

OpenXT uses the git master branch as an unstable general development branch.

For the purpose of stabilizing and releasing, stabilization branches named stable-<major> are created.

Once stabilization branches are considered stable, a release is created using git tags.

There is a 1:1 relationship between tags and releases.

Note: as no release can come out of master, tagging always happens in a stabilization branch.

Submitting pull requests against release branches

If the change pertains to master too

  • Do a pull request against master
  • Cherry-pick the change into the stable branch (or rewrite the commit if needed)
  • Do a pull request against the stable branch

Example:

  • git clone https://github.com/OpenXT/<repo>.git
  • (make changes)

  • git commit -sa
  • git remote add <you> git@github.com:<you>/<repo>.git
  • git push <you> master:master-PR
  • (do pull request of master-PR against master)

  • git checkout -b stable-<x> origin/stable-<x>
  • git cherry-pick -s -x master
  • git push <you> stable-<x>:stable-<x>-PR
  • (do a pull request of stable-<x>-PR against stable-<x>)

Do NOT do a "git merge master" into the stable branch, even if the only difference between the two branches is your new commit.

If the change only makes sense in the release branch

This is usually the case for workarounds, or fixes to old components that don't exist in master anymore.

In that case, just do a regular pull request, making sure to set the remote to the stable branch instead of the default (master).

Current OpenXT branches and tags

  • branch: master
  • branch: legacy-ioemu
  • branch: stable-4
    • tag: 4.0.0
  • branch stable-5
    • tag: 5.0.0
  • branch stable-6

The legacy-ioemu branch

No release ever came out of that branch.

That branch was created just before switching from ioemu to qemu 1.4.

4.0.0 release contents

stable-4 was branched before starting to make big changes to master to support Intel Broadwell platforms.

4.0.0 was released soon after branching.

Main components in 4.0.0:

  • Xen 4.3.4
  • Linux 3.11
  • Qemu 1.4

Target Hardware:  Intel Haswell and Ivy Bridge platforms

Example Devices:  

  • Intel vPro device with TPM 1.2 and legacy BIOS support
  • Haswell
    • Dell T20 Xeon E3 Desktop
  • Ivy Bridge 
    • Lenovo X230 Laptop

Builds:  http://openxt.ainfosec.com/builds/old_builds/builds/stable-4/

5.0.0 release contents

stable-5 was branched before "the Jethro merge", which is a big update of the OpenXT build system: OpenEmbedded.

5.0.0 was released soon after branching.

Main components in 5.0.0:

  • Xen 4.3.4
  • Linux 3.18
  • Qemu 1.4

Target Hardware:  Intel Broadwell, Haswell and Ivy Bridge Platforms

Example Devices:

  • Intel vPro device with TPM 1.2 and legacy BIOS support

Builds:  http://openxt.ainfosec.com/builds/stable-5/