What is a Pull Request?

In its simplest form, a pull request is a mechanism that allows a developer to notify other developers and stakeholders in the DevOps pipeline that: 

     All the changes needed for a feature have been completed;     
     Changes are ready for testing and validation;
     And, once changes are approved, they will get merged to the destination branch.


A pull request is much more than a change though. 

It is the whole space or a project in which a change resides during its life cycle. Every stakeholder can comment in a pull request. Multiple commits can be done in a pull request with a back and forth feedback loop. Even incomplete code can be committed to a pull request if a developer needs help from another team member.

Every innovation big or small is creative destruction.

Pull requests are also destroying a lot of legacy artifacts and creating space for new ones.

 

Farewell Legacy Processes and Tools

So Long Permanent Branches

Branching for a long-time was considered the Swiss Amy Knife of source-code control systems. They were used in a myriad of ways:

  • Branches for features
  • Branches for developers
  • Branches for different environments
  • Branches for major releases
  • Branches because someone in the development team felt like having a branch

Due to this indiscriminate use, branching became a disaster.

The primary weakness in branching strategy which made branching dangerous was the permanent nature of branches.

However, as soon as branches are made ephemeral, all the negative effects of branching disappear. This is made possible by associating a branch with a pull request.

Pull request is a dynamic artifact that is created for a purpose. As soon as purpose (the successful merge) is served, the pull request life-cycle gets over. If a branch is associated with a pull request, it will have a coincidental life-cycle with the pull request.

Try Roost for 14-days and say farewell to legacy tools.

So long permanent branches.
Good bye static test environments.

Banner Ad_Free Trial-green

Good Bye Legacy Test Environments

The legacy test and staging environments are as static as the legacy branching. With the dynamic nature of pull requests, every pull request has a nuanced definition of the environment it needs. A few examples of the static nature of legacy environments are:

  • A static test environment may be running all the tests but a pull request may actually need a
         subset of those tests and that also specific version of services in it.
  • A static test environment may be running mock services.
  • A static test environment may have data that has significant drift from the production,
         as it's a lot of painstaking manual work to get clean data from production.

 

Ephemeral Environments Revolutionize the Functionality of a Pull Request

In order to maximize the synchronicity and productivity gain of a pull request every artifact in the DevOps pipeline should become ephemeral (Read our white paper to learn more about ephemeral environments).

Clearly, the biggest gap which needed to be filled was on the environment's side and the need to create ephemeral environments that are completely dynamic exactly fit the need of a pull request. 

This gap is now being filled with the Roost.ai Environments-as-a-Service platform. 

Register for a 14-Day Trial

Rishi Yadav

About Rishi Yadav

Rishi is the CEO and Co-Founder of Roost and has over two decades of experience in leading enterprise application teams. He is a published author and active blogger.

Please Share this Blog

You may find these blog posts of interest too.

Gartner Recognizes the Need for Environment Management in New Report
Gartner Recognizes the Need for Environment Management in New Report
April 5, 2022

Gartner’s newly released report, How to Scale DevOps Workflows in Multi-cluster Kubernetes Environments, predicts that b...

Parallel Development Processes Eliminate Wait Times for Testing Sites
Parallel Development Processes Eliminate Wait Times for Testing Sites
April 5, 2022

Avoid sequential processing and long testing queues using ephemeral environments. Because of shared development and test...

How to Avoid QA Bottlenecks Caused by Shared Dev & Test Environments
How to Avoid QA Bottlenecks Caused by Shared Dev & Test Environments
April 5, 2022

Discover how Ephemeral Environments Allow Developers to Run Numerous Pull Requests in Parallel and Eliminate Queues and ...