Skip to main content

Branching Strategy

Support avatar
Written by Support
Updated over 4 months ago

Tulip’s branching strategy provides a framework for managing security configuration and streamlining deployments using Git. This strategy is designed to support collaboration and simplify the promotion of changes across app connections. Here’s how it works:

  1. Branch Per Application Connection in a Unified Repository:
    Each release pipeline (e.g., Dev → UAT → Prod) is mapped to a single Git repository. Within this repository, every application connection has its own dedicated branch that reflects the latest configuration for that app connection.

  2. Deployment Feature Branches & Pull Requests:
    When deployment pull requests (PRs) are enabled for an app connection, Tulip ensures that each deployment is tied to a corresponding feature branch and PR. Feature branches always originate from the target app connection’s branch. For example, if your deployment targets the UAT app connection, the feature branch will be initiated from the UAT branch.

    This approach ensures that your work takes into consideration any pending changes already in your release pipeline on their way to production, which will be deployed before or along with your changes.

    This has multiple advantages:

    • Your changes are tested and integrated with other changes expected to be in production, making tests more meaningful.

    • Fewer merge conflicts are encountered up the pipeline when attempting to patch your changes on a newer version

    • It aligns with trunk-based software development principles, where developers start from the latest commit on the trunk, even if some of those commits include features that haven't been deployed to production yet.

    • It promotes better alignment between pipeline app connections, encouraging teams to regularly advance (or clean up) features in the pipeline.

  3. Promotion to the Next App Connection:
    Changes deployed to one app connection can be easily promoted to a higher app connection. It is recommended that multiple deployments be promoted together. This allows teams to set a release process that pushes all recent features to production. A Tulip promotion behaves like any other deployment from the branching and PR aspects of it, meaning:

    • Tulip will create a feature branch from the app connection branch

    • Translates the promoted deployment changes to commits and push them to this feature branch.

    • Create a pull request which will be merged into the app connection branch upon deployment

  4. Conflict Resolution:
    Conflicts may occur during deployments or promotions. Tulip’s conflict resolution tool helps resolve these efficiently. Learn more

Did this answer your question?