[OpenAFS-devel] call for windows buildbot contribution

Jason Edgecombe jason@rampaginggeek.com
Thu, 24 Dec 2015 14:44:24 -0500


Hi Kostas,

Ideally, the new windows build slave needs to be online 24/7. If the 
proposed windows build slave is only online for 12 hours/day, then we 
could still have scheduled builds, but gerrit-triggered builds would 
likely be unworkable because gerrit commits might have to wait for 12+ 
hours to receive build status feedback.

I have no experience with building OpenAFS on windows, so I can't speak 
to the software requirements in the build environment. I know that this 
sounds odd because I'm the 'buildbot owner', but each buildslave admin 
sets up the build environment, so that knowledge lies with each 
individual buildslave maintainer. I can provide advice on how to 
install/configure the buildbot software and how to compile on Linux 
platforms.

Here is a quick explanation of our best build slave options (in my 
opinion) and the trade-offs for each:
  * gerrit-triggered, always on  (24x7) - ideal case, builds trigger on 
every gerrit change, build status is pushed into the gerrit system and 
marks a commit as  'Verified'. The gerrit status isn't published until 
all slaves have reported back. builds are queued up if slaves are offline.
  * scheduled - builds are triggered based on time, the build status 
only appears on the buildbot status page.

gerrit-triggered builders have an added requirement of a maximum on the 
build time, but that maximum time is determined by the community of 
developers. How long do you want to wait for feedback?

builbot can also support a 'latent' build slave where the buildbot 
software will start and stop a VM (libvirt) or a cloud VM (AWS) 
on-demand. I have no previous experience with this type of build slave 
and that would require some extra research and testing to pull off, 
along with the added complexity.

The buildbot software is very flexible. Builds can be initiated by a 
variety of triggers (gerrit, scheduled, manual, web hook, git push). 
There are a variety of options for build status updates: email, IRC, 
gerrit, etc.

You can read more about our version of the buildbot software at 
http://docs.buildbot.net/0.8.10/index.html

Sincerely,
Jason

On 12/24/2015 04:02 AM, Kostas Liakakis wrote:
> Ben, Jason
>
> Do you have an estimation of CPU resources required for a Windows
> buildslave? Do they have to be available 24/7 or would a say, 12h window
> suffice? Would a Pentium G3260 cut it or is an i-class CPU required to
> complete the build jobs within a useful timeframe?
>
> How hard is the VS2005 or VS2008 requirement? In the build environment
> instructions link Ben posted, VS2012 is mentioned as an option for
> AFSVER_CL. VS2012 is the oldest I can easily get my hands on through our
> Dreamspark subscription. I think if VS version can be tackled, the rest
> of the build requirements are of a non-issue.
>
> How does one BUILD a buildslave for Windows after setting up the build
> environment? Is there any rundown for this?
>
> Regards,
>
>
> -K.
>
>
> On 12/23/2015 11:47 PM, Benjamin Kaduk wrote:
>> Hi all,
>>
>> The automated buildbot builder for Windows that performs a test build of
>> each code submission to gerrit before that code can be merged into the
>> tree has been disabled; please see the forwarded message below.  That
>> builder was previously donated by Jeffrey Altman and provided tremendous
>> value to the OpenAFS project over the years; thank you Jeffrey for having
>> donated these resources for so long.
>>
>> It is my opinion that in the absence of a gerrit-triggered windows
>> builder, the OpenAFS code for windows will very quickly bitrot and become
>> unusable.  The development environment for Windows imposes constraints not
>> found on Unix systems, and most of our developers are unfamiliar with
>> those constraints, so without a way to automatically enforce them before
>> merging commits, the windows development constraints will quickly be
>> violated.
>>
>> If you are interested in OpenAFS continuing to function on the Windows
>> platforms, I urge you to contribute resources towards a functioning
>> Windows buildbot builder.
>> http://git.openafs.org/?p=openafs.git;a=blob;f=README-WINDOWS;h=4f9af252f51677dd49e32c4af4411bd96eed53c9;hb=HEAD
>> has some (probably somewhat outdated) instructions for setting up a
>> Windows build environment.  Do note that the specific (old) versions of
>> various softwares are important: newer versions will not work in most
>> cases.  I may be able to provide some assistance in setting up a build
>> environment; please post questions encountered while setting up such a
>> development environment to openafs-devel@openafs.org.
>>
>> Thank you,
>>
>> Ben Kaduk
>>
>>
>>
>> ---------- Forwarded message ----------
>> Date: Wed, 23 Dec 2015 16:17:20 -0500
>> From: Jason Edgecombe <jason@rampaginggeek.com>
>> To: openafs-devel@openafs.org
>> Subject: [OpenAFS-devel] Window build slaves are disabled and removed
>>
>> Hi everyone,
>>
>> The only windows build slave has been disabled and removed from the OpenAFS
>> buildbot system. If anyone wants to stand up a replacement, please contact me.
>>
>> You may see the current buildbot status and variety of build slaves at
>> http://buildbot.openafs.org/waterfall
>>
>> Sincerely,
>> Jason
>> _______________________________________________
>> OpenAFS-devel mailing list
>> OpenAFS-devel@openafs.org
>> https://lists.openafs.org/mailman/listinfo/openafs-devel
>> _______________________________________________
>> OpenAFS-devel mailing list
>> OpenAFS-devel@openafs.org
>> https://lists.openafs.org/mailman/listinfo/openafs-devel
>>