public inbox for [email protected]  
help / color / mirror / Atom feed
From: Andrew Dunstan <[email protected]>
To: PostgreSQL Hackers <[email protected]>
Subject: Keeping track of buildfarm animals' personality
Date: Tue, 11 Jun 2024 12:13:30 -0400
Message-ID: <[email protected]> (raw)

Way back in 2004 there was discussion of how we wanted to differentiate 
buildfarm animals. We were flying blind to a large extent, as we didn't 
have many similar things to compare to. We settled on {OS-name, 
OS-version, Compiler-name, Compiler-version}. The idea was that the 
names would be invariant but we would allow for OS and compiler upgrades.

There are two problems with this system, and have been since the get-go. 
First, owners forget to run the upgrade-personalty.pl script when the 
upgrade the OS and./or compiler. Second, there is no standardization of 
the names. Complaints about these surfaced (again) at the Vancouver 
unconference session about the buildfarm's future.

It was suggested that we should have the buildfarm client collect 
information and report it in a piece of JSON which the server would then 
use to update the personality table automatically. However, there are 
some issues.

First there are issues of the source of information. And second there is 
what information to extract from the source.

Let's take the simple case. On Linux this is fairly straightforward in 
most cases. We can extract the "ID" and "VERSION_ID" attributes from 
/etc/os-release, and we can get the compiler version with  gcc--version 
or clang --version, and get the version number out of the first line. I 
think I'd strip out the vendor string, so it would just be something 
like "13.2.1".

On windows, systeminfo gives you this sort of information:

OS Name: Microsoft Windows Server 2019 Datacenter

I guess by analogy with Linux we'd say that the OS Name is "Windows 
Server" and the version just "2019".

cl /? shows you a version line we could similarly parse to get something 
like 19.40.33808. We might want a way to tie that back to a particular 
version of VS, but it would do for now.

For msys2 and cygwin we can get the version by calling "cygcheck 
--version". These two are complicated by the fact that they are virtual 
environments.

I don't have information about other OSs or compilers.

For now I'm intending just to collect the information and see what gaps 
we have, before I start automating personality update.

If you have information about an OS or Compiler that's used in the 
buildfarm that I haven't listed, please let me know.


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com







view thread (2+ messages)

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: Keeping track of buildfarm animals' personality
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox