Master, 4.12 or promoted for latest?

Hi guys. Its not easy when looking at commits to know which is the latest to use? Also is promoted still being used as ‘known to work’ branch? Is it down to individual devs to push into each branch?


I think the readme in the repo is fairly clear about it. If you want to get the latest features in a usable state you should get the promoted branch.
I don’t think it’s convenient to use master or 4.12 branches.

Cheers. I get the difference about the master vs promoted. I guess i was confused as to why there are commits to the 4.12 branch as opposed to master.

That has always been odd to me as well… Maybe if you want to get the final release of a client, say, 4.8.3 you would go to the 4.8 branch and fork from there…?? I bet that is it.


Hi everyone,

I just wanted to try to clarify some of the GitHub branches and what they are for. As the Readme mentions, the Release branch is the branch that receives the most testing from us and is the most stable (with the exception of the past few weeks where the 4.11 previews were mistakenly synced to this branch). This is the branch that we recommend that you use for actual project development. The Promoted branch receives only some basic testing, which is intended to try to catch any obvious problems and should only be used for testing new features and fixes that will be coming in future Engine versions. The Master branch is the bleeding edge of our development, and should only be used if you are comfortable with a potentially highly unstable Engine.

So, what about the branches that correspond to Engine versions (4.12, 4.11, 4.10, etc)? These branches are initially created when we have a stable build of the Engine and we are ready to begin work focusing on the next Engine version. For example, shortly after we released version 4.11, the 4.12 branch was created from the Master branch. Once the 4.12 branch has been created, any commits that go into that branch are specifically for the 4.12 version of the Engine. Anything that is intended to go into the Engine after 4.12 (so version 4.13 and on) will be committed into the Master branch. This will continue until that particular version releases. Then, if any hotfixes are needed for 4.12, that work will be committed into the 4.12 branch as well. At some point after 4.12 releases, a new 4.13 branch will be created from the Master branch and any work intended for version 4.13 will go into here.

Also, keep in mind that the version numbered branches on GitHub receive limited testing, so they may potentially be unstable.

Looks like I was off base with what the numbered versions were, thank you for clearing that up.


Thanks for the clarification . So when it comes to going from say 4.12 to 4.13, all of the commits that were made specifically for 4.12 get merged into master before forking master off for 4.13?

That is correct. Once the version currently being worked on (4.12 right now) is stabilized and released, we merge that branch back into the Master branch before creating the branch for the next version. This ensures that fixes and features that go into 4.12 do not disappear in the next version of the Engine. In addition, any work that goes into 4.12 after release for a hotfix will also get merged into the Master branch once the hotfix is available.