Some of you, like me, may be more familiar with git
and thus perennially confused by Launchpad. Fear not, this is for you. Sort of.
A launchpad merge proposal (MP) is similar to a pull request (PR) in git, but there are some differences tied to the specific platform and workflow:
Launchpad merge proposals (MPs)
Platform
Used within Launchpad, a “collaborative development platform for hosting bazaar and git repositories” (though bazaar is older).
Workflow
- A branch containing changes is pushed to your fork of the repo on launchpad.
Note: be sure to use
git push -u mine <branch>
. All hell breaks loose otherwise.
-
A merge proposal is created to propose merging the changes into the target branch (e.g.,
main
ormaster
).- The MP page includes a summary of the changes, links to related bug reports, and CI results.
- Reviewers add comments and approve or reject the merge.
-
MPs are integrated with launchpad bug tracking, so related bugs can automatically update their status when the MP is merged. You have to manually link the MP to the bug in launchpad.
-
MPs typically have custom testing pipelines that are tied into launchpad’s build and CI infrastructure.
Git pull requests (PRs)
Platform
Used in git-based repositories hosted on platforms like github, gitlab, or bitbucket.
Workflow
- A branch is created and pushed to your fork of the the repository.
- A pull request is created to propose merging changes into another branch.
- PRs can include inline comments, code reviews, and automated CI checks.
- Often integrates with CI/CD pipelines, deployment tools, and other project management features.
- Github actions, gitlab CI/CD, or bitbucket pipelines typically manage CI tasks.
Key differences
Scope and usage
- MPs are specific to launchpad projects, often used in ubuntu, canonical, and related ecosystems.
- PRs are general-purpose and widespread across git platforms.
Bug tracking
- MPs integrate directly with launchpad’s bug tracker.
- PRs usually integrate indirectly with external tools (e.g., linking to jira, github issues).
CI/CD integration
- Both have CI integration, but the implementation is specific to the platform.
- Also specific to the project, i.e LP and GH both can use Jenkins, but only GH can use GH actions
Popularity
- MPs are niche and mostly found in projects that are part of the ubuntu ecosystem.
- PRs are the standard in most github-based workflows. gitlab calls them Merge Requests.