# Feature Branches

A feature branch is a Git branch dedicated to development of a single new feature. Read this article first (opens new window) for a detailed explanation of feature branches.

As they relate to this project, feature branches should:

  1. Be cloned from staging.
  2. Be named per the DNL standard format (opens new window): feature/{tw-task-id-or-jira-task-id}/brief-description (ex. feature/12345/sponsorship-popups).

Both of the above can be accomplished with a command like git flow feature start 12345/sponsorship-popups.

# GitFlow

GitFlow workflow (opens new window) is used to create and manage feature branches. Install GitFlow (opens new window) package on your machine that's runs Git to help expedite the feature branch creation.

# Luminate Modifications for Feature Branches

Much of the application's content is stored in Luminate PageBuilder reusables. While multiple feature branches might be in active development at any time, only one Luminate Test environment exists on which to view them. Due to this, modifications to PageBuilder reusables must be wrapped in a conditional which prevents those modifications from being displayed unless the page is currently being viewed using the dynamic feature branch method. This will prevent collisions between feature branches.

See Conditionalizing Feature Branch Content for examples.