Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sH47z-002ip9-2a for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Jun 2024 16:13:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sH47w-007jr8-G4 for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Jun 2024 16:13:41 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sH47w-007jr0-1l for pgsql-hackers@lists.postgresql.org; Tue, 11 Jun 2024 16:13:41 +0000 Received: from mail-qk1-x72b.google.com ([2607:f8b0:4864:20::72b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sH47p-00182W-RZ for pgsql-hackers@lists.postgresql.org; Tue, 11 Jun 2024 16:13:40 +0000 Received: by mail-qk1-x72b.google.com with SMTP id af79cd13be357-795a4fde8bfso69212185a.2 for ; Tue, 11 Jun 2024 09:13:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dunslane-net.20230601.gappssmtp.com; s=20230601; t=1718122412; x=1718727212; darn=lists.postgresql.org; h=content-transfer-encoding:to:autocrypt:subject:content-language :from:user-agent:mime-version:date:message-id:from:to:cc:subject :date:message-id:reply-to; bh=Xlpg470BwT22zGAEc9jBgmPVktixMX4bl9DP3S6+fr4=; b=hR0sJ66y6xZyjFCpvzlW19hK7ZLQ4E7CMHrNUTfQddWY7pmneFtg3NgyhWrPiEMTT4 qlzg0o+VZpSmCz4mJrk47UqdDtVQfXowC5Kpw9lvCLnPWxGJf69hHxBE7hK5N3xTyzPi DVQgk60vn++x6x23699ffZlBM2hkv6n4VOLaHhzN2HvQCuylRxVcXPfBt9yMUpQhFyrC 69CASNZAkz0b9Dgvl4MpUIg1hN2tJ0T8ZnW/76uYp6BVE+o2MNxj3wP3lS/ffYyIuLii j+mMuwsjLHireKEB+tLz9z3dsReQScmzgnCiaVW/7HOzzSnsbadDRFbPJY1pEtN/vGdv o+Aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718122412; x=1718727212; h=content-transfer-encoding:to:autocrypt:subject:content-language :from:user-agent:mime-version:date:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Xlpg470BwT22zGAEc9jBgmPVktixMX4bl9DP3S6+fr4=; b=Y9PC/OPRQZlntyQIkxjJd1+HS980tlSaOY1vNjMGkp3BGgsI8fVJEZuPR7hKB9GUpB ggGNAuf8wswcsa2yfV7byEyjoGDnuiJ78BTgcWXupgXhxSLur8ZyxIg26V+Gjj3PSReC FINSnkKrudOUJigEJ7kh2qWagHIHRFJCiXXsg6YyLG4YQh7KNjkQ9JfcywEyEgj05M6g ts0sX3CYKTEWjqAqPs32m+Y1LSfuWZrxOH/PQG4r7tqewXMnQjoJGnJ1KFKXCrldowZB d3Fgh/2HxRwZr5rWW3arMsPAfCbN4+YdRVTAJkX6t035lNyMy/rSBPQ8mEahRcgjjTzE WQlg== X-Gm-Message-State: AOJu0YxceBP9/ph34vGsPXOpJ24aztwzIfg/kkmLi7W5a4WsH0g1AFu7 XFCJrsv4Ym7HBFsyWMDLWfoFBhn5UADqqk5x7FYg/zZ7EiThvFmpmBDQRGBJs+qAbPI+KtCzujY 1 X-Google-Smtp-Source: AGHT+IF9Wx9dhPglKpZyAogEGN0mo+Cr4KTTuHdC7jln2DH8XpCfu00zqfWRxuUH29W5cwQ5qAXurg== X-Received: by 2002:a05:620a:47b5:b0:792:b921:b08d with SMTP id af79cd13be357-7953c1933ebmr1204222185a.0.1718122411482; Tue, 11 Jun 2024 09:13:31 -0700 (PDT) Received: from ?IPV6:2605:a601:9180:9800::2bb? ([2605:a601:9180:9800::2bb]) by smtp.googlemail.com with ESMTPSA id af79cd13be357-79532813a2dsm527301585a.20.2024.06.11.09.13.30 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 11 Jun 2024 09:13:31 -0700 (PDT) Message-ID: Date: Tue, 11 Jun 2024 12:13:30 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Andrew Dunstan Content-Language: en-US Subject: Keeping track of buildfarm animals' personality Autocrypt: addr=andrew@dunslane.net; keydata= xsBNBE7KWFkBCAClridxur2AIc7eW2AR7izbfp3EnNefie2HbLF0izW5Ik5UjX2HBXBx4syI gY6b0ugohXrr274+baoAlvSbq6cAoQuEVrk5IZFzt20b1Xkx65FwGSEj526yiKLocqkJceSq Xr9xcA5SGY+FZv441chh5SU92v4q6z+6LPpoHOh97ptAVXZYNTtU0LevyvD5lja0TzbvJm6C eFXitJfnm1pLEr0DGJCR/iUOl/N62Kh4855zZC7NHIjQHPOvV5Stz/l5ilDhvGVk+xkXFPys SjZoUr1rXhYLpiyi5sR0X9FHXT0KnGuz1F5ERO7ZTLSSQ6fJwPj6gOk9K+vvoKvoeql5ABEB AAHNJEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PsLAmwQTAQgARQIbAwIX gAIZAQULCQgHAgMiAgEGFQoJCAsCBBYCAwECHgcWIQTkPlhGHfx8v0RpFaWZ+n/LWfw7gQUC ZFlxxwUJGVGAbgAKCRCZ+n/LWfw7gXikB/9ZdcUy6CTBFIIuL/bVsc1eLEW/gJBjJBF6HxNY xgEkAgXAp4Lg4A5U+QB9GouFr7+GYxF0BU4hzoGhNPUWltxnHdMWP8nC/38LAqgMi8L/bbsm HW5YPBdWYaAZAPJQVfOAgjTbRUb26KSprpyrrJKW0ZmrZfjhNPcQ72jpWzoPLQqx2X6B0fru 1jq+cBh8lb6r1mJTim1T3JIn+F/v5VpdQS+EL8xqsHkfzKjIPsW3CIXpkypSk6saA55Rkkbl 26AW8ftPVB0Q6Lnn6FLt9CP0MGNixBQ55yq8r1K+nCBvCCjvQjM8RDm0UUum0WNl+ifQgTLO E8TWEnwVtkBf+3QWzsBNBE7KWFkBCADRnOM0FCzsYW6jtncg+dWIagjUZpvaClmqn/sJluLa Q3v1VXMQJzYs3eC1gh386W+XBwLRpDj3jzH81lX+p73Re3d3oJW7X+ffsxuzu5ZVdMUkqBYo nkAbKxr6gyJ12F/+JkUVzLcoTN+d/7YsQvUVi7NaKH8mJgjz112O4fUe3p9wfAaFa0RXHc5S GPzRTYRRlv/XZBIho4J2tkZOnteZJZ+GbxQVlINt6fd8P6al3MWOvpP/ExJPguEfjOsO6Njy xjo3WfpD4lHMOR/Oc3/8mScEF84rF2jXbsFgelWnbPWAvXY+pD0dXOFRkagGmC/viwBDqq5b 5tk76kKmUbZxABEBAAHCwHwEGAEIACYCGwwWIQTkPlhGHfx8v0RpFaWZ+n/LWfw7gQUCZFlx 5wUJGVGAjgAKCRCZ+n/LWfw7gf+iB/4g8CPY5jihf5r/8EsoIGe2H+dpVmpPF8YGBzTIvCz/ fQoOq8AX/pE76QEuFnFZWfjw+wgBXgCVmkox2Eflkk6z4ND3pcwGZ6CfCxTQCDk/dij+2DQ4 6bmDCy/sBgcbz9mTpoLC11HLoPae6YN9nBNQRZDcEFEu54OaVOqlIdbA6m+POIBCXZdHOFc0 WoDTgxHRzC1jgQNidyd6tKqcsVJs0dzF0oKTmFFmUAqTdJO12LBuNA1rlqrR3EtpYk8B/wtS 5dIMD7Q8hwQpL+4C6GNpb6ZKnPkLi47pDOLhz2qBrqN+rqUEsT3YnExYpzj5yOBi+FlmV1Hw 49QYe1sn2ZPs To: PostgreSQL Hackers Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk 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