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/