How do I use the continuous integration for the bzr project to land merge proposals into a series.

Asked by Richard Wilbur

As the GNU maintainer for bzr, I have some code waiting to be merged. I don't know what procedure or credentials are involved.

Background:

After the release of bzr v2.7.0, Vincent Ladueil was working on the launchpad.net infrastructure that supported bazaar development. I took a break from pushing changes till he got it operational. His last status update before he left let me know that the new continuous integration seemed good enough from his testing but he asked me to contact him if I needed to approve MPs (merge proposals). He still needed to be involved to merge anything.

When he left he said the continuous integration was up and running but hosted by Canonical and requiring Canonical credentials at

https://jenkins.ubuntu.com/bazaar/

He suggested I try to log in, but I never had credentials. I asked him how I should land merge points and whom I should contact at Canonical. He said he had no idea.

Questions:

Can someone please fill me in on the current situation for landing merge proposals in launchpad under the bzr version control system?

What is the situation with continuous integration infrastructure available to projects? I understood the procedure under hydrazine but I don't even know what the new system is called.

Question information

Language:
English Edit question
Status:
Answered
For:
Launchpad itself Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Guruprasad (lgp171188) said :
#1

Hi Richard, thanks for reaching out to us. Launchpad does not have any built-in infrastructure that allows landing merge proposals. Afaics, there is no instance of Jenkins at https://jenkins.ubuntu.com/bazaar/ that can be used for this either. I have seen projects have their own external jobs/landing bots (Launchpad has one for itself) to solve this problem.

We have some basic CI functionality available in Launchpad with lpci (lpci.readthedocs.io) but that doesn't support landing merge proposals either. And we do not have any plans at the moment to add new functionality to lpci.

Regarding the bzr development, Launchpad has switched to using breezy (bzr hasn't had a new commit since 2017) as the bzr replacement.

Please let us know if you have any additional questions.

Revision history for this message
Richard Wilbur (richard-wilbur) said (last edit ):
#2

Thank you for your response.

> bzr hasn't had a new commit since 2017

This is indeed the case and stems from the fact that the events I described in the "Background" of my initial question took place in 2017. I made some subsequent attempts to contact folks I had interacted with at Canonical, but without response. Thus no commits of any kind to the launchpad-hosted repository because we had a procedure of testing the merged code and only committing if the test passed. This, previous to 2017, was handled automatically on the server side.

How does a project set up a "landing bot" under launchpad?

Is lpci available to be configured as a commit hook for a project?

Revision history for this message
Guruprasad (lgp171188) said :
#3

Hi Richard,

> Is lpci available to be configured as a commit hook for a project?

lpci jobs on Launchpad run when a merge proposal is submitted or a change is merged to a branch of a repository that has the .launchpad.yaml configuration file. Unfortunately, lpci only works with git repositories and not bzr branches and we do not have any plans to change that. I'm sorry about that.

> How does a project set up a "landing bot" under launchpad?

There might be multiple ways to do this but one way could be to have an external (to Launchpad) periodic job that uses the Launchpad API to check the 'landing_candidates' of a branch (https://api.launchpad.net/devel.html#branch) and then iterates over each merge proposal and checks their status. If there are approved merge proposals, the job can merge locally and push to the target branch. For the push, you will have to set up a bot account with the appropriate SSH public key with the permission to push or use an existing user's SSH keys to do so.

This suggestion is based on what we do for Launchpad itself, for the Launchpad git repository.

Please let us know if you have any more questions.

Can you help with this problem?

Provide an answer of your own, or ask Richard Wilbur for more information if necessary.

To post a message you must log in.