Re: Buildbot 1.0

2018-02-21 Thread Mojca Miklavec
On 20 February 2018 at 00:14, Ryan Schmidt wrote:
> On Feb 19, 2018, at 16:49, Mojca Miklavec wrote:
>
>> Are there any thoughts about migration to buildbot 1.0 (from Ryan in
>> particular)?
>>
>> I wanted to seize the opportunity of some hacking during the MacPorts
>> meeting next month to potentially migrate to buildbot version one, but
>> there is one quite severe drawback, and that's the display of
>> waterfall view (https://github.com/buildbot/buildbot/issues/3884).
>>
>> On the other hand we could at the same time fix a number of other
>> problems, like:
>> - random build order
>> - login with OAuth (using GitHub username)
>> - ...
>>
>> Any thoughts about whether or not to migrate now (= soon) and what
>> issues would make most sense to try to address during hacking
>> sessions?
>
> With the old macOS forge buildbot setup, I tended to use the console view. 
> With the rewritten buildbot setup that we now use, the console view has 
> become useless because it only shows one row for each portwatcher task, with 
> no way to see the results of each individual portbuilder that was spawned 
> from a portwatcher. Therefore I now use the waterfall view.
>
> Buildbot 0.9's waterfall view was terrible when it first came out. I have not 
> followed buildbot's development since then but as far as I know 1.0 hasn't 
> fixed that problem. We could consider writing a new waterfall frontend that 
> meets our needs better.
>
> To be honest I found the entire buildbot 0.9 web interface terrible, 
> incomprehensible, unrecognizable. I consider "buildbot 0.9" (and later) to be 
> a new piece of software, unrelated to buildbot 0.8. Maybe I would come to 
> understand it over time, but I don't know. Maybe someone should fork and 
> continue the development of buildbot 0.8.

While I agree that buildbot 0.9 is nearly unrecognisable compared to 0.8 ...

If we had unlimited resources that could of course be an option, but
I'm pretty sure that nobody from the core team is willing to spend any
considerable effort implementing new features in buildbot 0.8, so
someone else would have to step up and I'm not sure this would happen.
It would make more sense to implement the equivalent of the old
functionality on the new platform.

> As far as I know there is no reason why we could not fix the random build 
> order problem while staying on buildbot 0.8.

I agree with that part.

> My understanding is that buildbot 0.9 and later would indeed help us log in 
> with GitHub OAuth, which would be nice. I originally thought we had a way to 
> work around that with 0.8, but it sounded like it would make anonymous 
> viewing of the web interface impossible, and I'd rather not prevent that. It 
> is unfortunate that GitHub login support was never added to 0.8. I wonder how 
> hard it would be to add it.

Probably not *that* hard, in particular not after the code is already
in 0.9, so many parts could probably be copy-pasted, but I find it
more a question of whether it makes sense to do any such effort. If we
do one day migrate to >= 1.0, that will be wasted effort.

> If I were to work on rewriting the buildbot configuration, and I've thought 
> about it, I would focus on merging the portwatcher and portbuilder into a 
> single thing, as I mentioned on the -infra list in October 2017. I also 
> mentioned in that email that I was writing a longer email about the 
> advantages I believe this consolidation will give us, but I never wrote that 
> longer email. I should probably do that to explain what I'm trying to achieve.

Please do.

> If we succeed at merging portwatcher and portbuilder, that might make the 
> console view useful again, so that we might not care about the 0.9+ waterfall 
> view's deficiencies, though there are still all of the other 0.9+ web 
> interface deficiencies to contend with.

Just to explain: when we started writing the current setup we
initially planned to create a huge number of individual steps based on
"port list". That turned out to be much easier with version 0.9 which
we decided not to use (it was still in development phase etc.). The
current setup with port watcher and builder was merely a workaround
because we had troubles creating new build steps on the fly with
version 0.8.

But on a completely different topic. After talking to lead Buildbot
developer ... his opinion is that creating a "custom view" based on
user demands should be a task that should be possible to accomplish in
something like two days. Probably more for more demanding tasks and
for someone who's still learning.

May I suggest to forget about current limitations of
buildbot-version-whatever and try to start brainstorming of what we
really want to achieve and how our perfect set of views should

Re: Buildbot 1.0

2018-02-20 Thread Joshua Root
On 2018-2-21 17:30 , Mojca Miklavec wrote:
> On 20 February 2018 at 04:49, Joshua Root wrote:
>> On 2018-2-20 14:43 , Ryan Schmidt wrote:
>>> On Feb 19, 2018, at 18:14, Joshua Root wrote:
 On 2018-2-20 10:14 , Ryan Schmidt wrote:
>
> Getting the builds to spawn in the *correct* (dependency) order is a more 
> involved task, but we've survived without it for this long already.

 The more involved part is already written though, so once you have the
 ability to start the builds in a particular order, making that order
 dependency order should be straightforward.
>>>
>>> Oh? Where is it already written? Last I heard, Clemens said it was not 
>>> written and would be complicated to write.
>>
>> The old buildbot with MPAB did it.
> 
> I'm afraid this doesn't help us in any way. The current buildbot setup
> is already passing the list of ports to be built in correct order. The
> problem is that the scheduler then picks them up in some random order.
> The missing piece is making sure that the ports are built in correct
> order (which would not even be an issue if all ports were built on the
> same builder like it was the case with the old setup, that is: no
> split between portbuilder and portwatcher).

Yes, we are aware that builds are currently started in random order. The
last few emails in this exchange were simply establishing that
dependency order is not significantly harder to achieve than any other
order.

- Josh


Re: Buildbot 1.0

2018-02-20 Thread Mojca Miklavec
On 20 February 2018 at 04:49, Joshua Root wrote:
> On 2018-2-20 14:43 , Ryan Schmidt wrote:
>> On Feb 19, 2018, at 18:14, Joshua Root wrote:
>>> On 2018-2-20 10:14 , Ryan Schmidt wrote:

 Getting the builds to spawn in the *correct* (dependency) order is a more 
 involved task, but we've survived without it for this long already.
>>>
>>> The more involved part is already written though, so once you have the
>>> ability to start the builds in a particular order, making that order
>>> dependency order should be straightforward.
>>
>> Oh? Where is it already written? Last I heard, Clemens said it was not 
>> written and would be complicated to write.
>
> The old buildbot with MPAB did it.

I'm afraid this doesn't help us in any way. The current buildbot setup
is already passing the list of ports to be built in correct order. The
problem is that the scheduler then picks them up in some random order.
The missing piece is making sure that the ports are built in correct
order (which would not even be an issue if all ports were built on the
same builder like it was the case with the old setup, that is: no
split between portbuilder and portwatcher).

Mojca


Re: Buildbot 1.0

2018-02-19 Thread Joshua Root
On 2018-2-20 14:43 , Ryan Schmidt wrote:
> 
> On Feb 19, 2018, at 18:14, Joshua Root wrote:
> 
>> On 2018-2-20 10:14 , Ryan Schmidt wrote:
>>>
>>> As far as I know there is no reason why we could not fix the random build 
>>> order problem while staying on buildbot 0.8. We would just need to write 
>>> the code to add an "order" integer to each spawned portbuilder, then write 
>>> a function to return the lowest-ordered portbuilder object when deciding 
>>> which one to start next.
>>>
>>> Getting the builds to spawn in the *correct* (dependency) order is a more 
>>> involved task, but we've survived without it for this long already.
>>
>> The more involved part is already written though, so once you have the
>> ability to start the builds in a particular order, making that order
>> dependency order should be straightforward.
> 
> Oh? Where is it already written? Last I heard, Clemens said it was not 
> written and would be complicated to write.

The old buildbot with MPAB did it.

- Josh


Re: Buildbot 1.0

2018-02-19 Thread Ryan Schmidt

On Feb 19, 2018, at 18:14, Joshua Root wrote:

> On 2018-2-20 10:14 , Ryan Schmidt wrote:
>> 
>> As far as I know there is no reason why we could not fix the random build 
>> order problem while staying on buildbot 0.8. We would just need to write the 
>> code to add an "order" integer to each spawned portbuilder, then write a 
>> function to return the lowest-ordered portbuilder object when deciding which 
>> one to start next.
>> 
>> Getting the builds to spawn in the *correct* (dependency) order is a more 
>> involved task, but we've survived without it for this long already.
> 
> The more involved part is already written though, so once you have the
> ability to start the builds in a particular order, making that order
> dependency order should be straightforward.

Oh? Where is it already written? Last I heard, Clemens said it was not written 
and would be complicated to write.




Re: Buildbot 1.0

2018-02-19 Thread Joshua Root
On 2018-2-20 10:14 , Ryan Schmidt wrote:
> 
> As far as I know there is no reason why we could not fix the random build 
> order problem while staying on buildbot 0.8. We would just need to write the 
> code to add an "order" integer to each spawned portbuilder, then write a 
> function to return the lowest-ordered portbuilder object when deciding which 
> one to start next.
> 
> Getting the builds to spawn in the *correct* (dependency) order is a more 
> involved task, but we've survived without it for this long already.

The more involved part is already written though, so once you have the
ability to start the builds in a particular order, making that order
dependency order should be straightforward.

- Josh


Re: Buildbot 1.0

2018-02-19 Thread Ryan Schmidt

On Feb 19, 2018, at 16:49, Mojca Miklavec wrote:

> Are there any thoughts about migration to buildbot 1.0 (from Ryan in
> particular)?
> 
> I wanted to seize the opportunity of some hacking during the MacPorts
> meeting next month to potentially migrate to buildbot version one, but
> there is one quite severe drawback, and that's the display of
> waterfall view (https://github.com/buildbot/buildbot/issues/3884).
> 
> On the other hand we could at the same time fix a number of other
> problems, like:
> - random build order
> - login with OAuth (using GitHub username)
> - ...
> 
> Any thoughts about whether or not to migrate now (= soon) and what
> issues would make most sense to try to address during hacking
> sessions?

With the old macOS forge buildbot setup, I tended to use the console view. With 
the rewritten buildbot setup that we now use, the console view has become 
useless because it only shows one row for each portwatcher task, with no way to 
see the results of each individual portbuilder that was spawned from a 
portwatcher. Therefore I now use the waterfall view.

Buildbot 0.9's waterfall view was terrible when it first came out. I have not 
followed buildbot's development since then but as far as I know 1.0 hasn't 
fixed that problem. We could consider writing a new waterfall frontend that 
meets our needs better.

To be honest I found the entire buildbot 0.9 web interface terrible, 
incomprehensible, unrecognizable. I consider "buildbot 0.9" (and later) to be a 
new piece of software, unrelated to buildbot 0.8. Maybe I would come to 
understand it over time, but I don't know. Maybe someone should fork and 
continue the development of buildbot 0.8.

As far as I know there is no reason why we could not fix the random build order 
problem while staying on buildbot 0.8. We would just need to write the code to 
add an "order" integer to each spawned portbuilder, then write a function to 
return the lowest-ordered portbuilder object when deciding which one to start 
next.

Getting the builds to spawn in the *correct* (dependency) order is a more 
involved task, but we've survived without it for this long already.

My understanding is that buildbot 0.9 and later would indeed help us log in 
with GitHub OAuth, which would be nice. I originally thought we had a way to 
work around that with 0.8, but it sounded like it would make anonymous viewing 
of the web interface impossible, and I'd rather not prevent that. It is 
unfortunate that GitHub login support was never added to 0.8. I wonder how hard 
it would be to add it.

If I were to work on rewriting the buildbot configuration, and I've thought 
about it, I would focus on merging the portwatcher and portbuilder into a 
single thing, as I mentioned on the -infra list in October 2017. I also 
mentioned in that email that I was writing a longer email about the advantages 
I believe this consolidation will give us, but I never wrote that longer email. 
I should probably do that to explain what I'm trying to achieve.

If we succeed at merging portwatcher and portbuilder, that might make the 
console view useful again, so that we might not care about the 0.9+ waterfall 
view's deficiencies, though there are still all of the other 0.9+ web interface 
deficiencies to contend with.



Buildbot 1.0

2018-02-19 Thread Mojca Miklavec
Hi,

Are there any thoughts about migration to buildbot 1.0 (from Ryan in
particular)?

I wanted to seize the opportunity of some hacking during the MacPorts
meeting next month to potentially migrate to buildbot version one, but
there is one quite severe drawback, and that's the display of
waterfall view (https://github.com/buildbot/buildbot/issues/3884).

On the other hand we could at the same time fix a number of other
problems, like:
- random build order
- login with OAuth (using GitHub username)
- ...

Any thoughts about whether or not to migrate now (= soon) and what
issues would make most sense to try to address during hacking
sessions?

Mojca