Software developers typically use version control systems to coordinate work in a codebase. This enables multiple engineers to contribute to the same code safely.
In the Palantir platform, you can think about data and change management the way software developers think about code: you need a way to allow many people to make changes and interact with the same data without interfering with someone else's work. Foundry Branching takes the best practices from software development and applies them to the Palantir platform, harnessing a common feature of version control systems called branching.
At a high level, branching allows you to take a fork in the road and work on components of your end to end workflow in your own branch. Then, once you are satisfied with your changes, you can deploy your changes out of your branch back to the main road.
The diagram below shows you can use a branching workflow to make changes to data pipeline code, Ontology, and Workshop applications in the Palantir platform.
To follow a branching workflow:
main
branch refers to the primary assets in production that are used by application builders, such as data pipelines, Ontology, and Workshop applications. When you want to work on your own changes, you create your own branch, which creates an environment for you to experiment and test out ideas without worrying about affecting the main
branch.main
branch. A proposal contains metadata such as reviews, name, and descriptions of the changes being deployed into the main branch. Proposals serve as a mechanism for reviewing and approving changes made in a separate branch before they are integrated into the main
branch. Creating a proposal through the Foundry Branching interface provides a unified experience to create proposals for all the changed assets.A proposal is analogous to a pull request in a version control system, specifically tailored for Foundry branches. A proposal can be created for a branch and contains metadata such as reviews, name, the tracked changes, and descriptions of the changes being deployed into the main branch. Proposals serve as a mechanism for reviewing and approving changes made in a separate branch before they are integrated into the main branch. A single proposal can contain a single or multiple changes.