Jump to content

Branch

From The OpenXP Wiki
Revision as of 06:18, 28 July 2025 by Ashific (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Branch is a development lab, initialized by OpenXP developers for making development more organized and consistent. Branches have different development structure and meaning, therefore their hierarchy is simpler and easier in plan of organization.

Structure

The topmost branch is master, which contains the latest changes and edits, which are mostly stable. Other branches are deriving directly from it, containing up-to-date changes in themselves too.

Compilations derived from branches can be online and offline, with the main difference being the inclusion of developer's username after branch name in online compiles (for example master(ash)), indicating of inclusion of in-development and partially private pieces of code.

Plenty of others are included in following structure:

General

General branches are main development branches, which include new stuff, often not synchronized with master, but fetching stabilized changes from other branches below. They are intended for keeping most groundbreaking changes, which have been tested properly and guarantee stability of their work. Future patch kits and releases of OpenXP are derived from these branches.

Feature branch leverage

Feature branch leverage branches (fbl) are intermediate branches, which are intended for long term development, which will be integrated into the system consequently. e.g. ` implementation of a package manager or rejuvenated Feedback Tool. These branches are serving as a foundation to merge into General branches, and they are not guarantee for stability.

vNext branches are also belong to Feature branch leverage and they contain fundamental changes in kernel, back ports of multiple features and more. Apart of this, vNext branches are logical continuation of new, future releases and are first candidates to be merged into General ones usually.

Funny

This kind of branches contain very sensitive and unstable improvements, with their consequences and developing behavior may seem... funny. Yeah, lots of informal (and maybe even rude) expressions, crappy working programs and etc are here, and if you run build from these branches, never except anything, not talking about even stability.

  • Fundamental branches (fun) are for crucial changes inside build environment and core facilities, leveraging platform changes and behavior. It may break compatibility with older applications, and it is in active development, meaning that core improvements will appear.
  • Funny branches (lol and similar) are for lots of informal descriptions, preliminary naming, graphics, early programs and more. Even internal functionality may differ from that, but don't worry - these branches aren't for retail release, and they mostly exist in private circles of developers.

Legacy mechanism

Before development reset, OpenXP used labs system. master was still in existence, therefore most of branches didn't have any prefixes for their meaning, and used direct naming convention instead: canary was the pre-release improvements branch, and fundamental included all compiler enhancements. However, this branching mechanism was abandoned due to it's unusable and messy behavior.