port buildapi to relengapi



Release Engineering
General Automation
3 years ago
3 months ago


(Reporter: dustin, Unassigned)


(Depends on: 1 bug, Blocks: 2 bugs)

Firefox Tracking Flags

(Not tracked)


(Whiteboard: [lang=python])



3 years ago
This will be a big chunk to move, but should give relengapi a nice workout.

Most likely, the agents will stay roughly the same, so this is really just about the web service.


3 years ago
Assignee: nobody → dustin


3 years ago
Blocks: 980086
Adding nthomas as a potential resource here for reviews, etc. since his name is all over the buildapi repo.
Blocks: 1104283
Whiteboard: [good first bug][lang=python][mentor=pmoore]
Both BuildAPI and RelengAPI are well documented, so this could be a good bug for a new contributor.

BuildAPI: https://wiki.mozilla.org/ReleaseEngineering/BuildAPI
RelengAPI: https://wiki.mozilla.org/ReleaseEngineering/Applications/RelengAPI

BuildAPI was written before RelengAPI was conceived, now we are keen to move services across to the new platform. This would be a great starting point for a keen python developer.

I'm happy to provide assistance.


Comment 3

3 years ago
Hey man! Regarding this issue.I read those wiki links thoroughly, I have configured my environment accordingly. Now how to proceed, please guide me a little. What I understood from the topic was, that buildapi were the first one to be wriiten, now it is required to port those apis to releng api. Am I on the right path?
That is a good start. I would recommend also getting a copy of buildapi, and seeing if you can run it locally, following the setup instructions.

Once you have an understanding of how it works, and what API it provides, the next step will be to understand how the same service can be implemented in RelEngAPI. So you should have a copy of both on your system, working, then try to move parts across or reimplement in the new framework. If there are already tests written, this is great, because you can use them to test your new implementation.

Comment 5

3 years ago
Good advice.  As you've seen, there are a few parts to BuildAPI, and it may make sense to work on them one at a time.  The easiest will be the GET bits of https://secure.pub.build.mozilla.org/buildapi/self-serve

So, although it won't *complete* this bug, I think that's a good first milestone to reach: a RelengAPI blueprint that serves all of the GET URLs correctly but doesn't yet support the POST and DELETE URLs.  After that, we can start adding some UIs to display that data, start implementing the POST and DELETE URLs, start work on self-serve, and start work on some of the reports.

Note that RelengAPI has nearly 98% test coverage, so this will need to be covered by some exhaustive tests.  Those tests, alone, should be enough to convince a reader that your new buildapi behaves the same as the old BuildAPI.

Once you've got BuildAPI installed and working locally, your next step should be cloning https://github.com/mozilla/build-relengapi-skeleton and getting that to do something really basic like return "hello world" from /self-serve/branches (with tests).

Comment 6

3 years ago
We weren't able to get a DB dump for Tanuj, and without that working on this was going to be pretty difficult.  So we switched over to bug 1135818, where I can supply a DB dump.


3 years ago
Assignee: dustin → nobody


2 years ago
Mentor: pmoore@mozilla.com
Whiteboard: [good first bug][lang=python][mentor=pmoore] → [good first bug][lang=python]
Whiteboard: [good first bug][lang=python] → [good first bug][lang=python][mentor=Callek]
Mentor: bugspam.Callek@gmail.com
Whiteboard: [good first bug][lang=python][mentor=Callek] → [good first bug][lang=python]

Comment 7

2 years ago
Hey Callek,
I'm a new contributor. I would like to try fixing this bug. I'm prepared to spend as much time and energy necessary to complete it. Could you help me get started?
Flags: needinfo?(bugspam.Callek)
(In reply to Sreekar from comment #7)
> Hey Callek,
> I'm a new contributor. I would like to try fixing this bug. I'm prepared to
> spend as much time and energy necessary to complete it. Could you help me
> get started?

Unfortunately (partly explained in comment #6) this bug is not good fodder for a volunteer since its not easy at all to get a DB dump out for testing.

However a good candidate along the same lines as this is Bug 1135818, which I am happy to assist with.
Mentor: bugspam.Callek@gmail.com, pmoore@mozilla.com
Flags: needinfo?(bugspam.Callek)
Whiteboard: [good first bug][lang=python] → [lang=python]


3 months ago
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.