Open jcushenan opened 1 year ago
Confirmed here as well just now:
The version of GoogleChrome Stable x64 msi reported by Get-EvergreenApp is 119.0.6045.59 but the downloadeded .msi is version 118.0.5993.118 (which the Chrome download site reports as the correct stable channel version).
PS > Get-EvergreenApp googlechrome
Version : 119.0.6045.59 Architecture : x86 Channel : beta Type : msi URI : https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise.msi
Version : 119.0.6045.59 Architecture : x64 Channel : beta Type : msi URI : https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise64.msi
Version : 120.0.6091.0 Architecture : x86 Channel : canary Type : exe URI : https://dl.google.com/update2/installers/ChromeSetup.exe
Version : 120.0.6073.0 Architecture : x64 Channel : dev Type : msi URI : https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise64.msi
Version : 120.0.6073.0 Architecture : x86 Channel : dev Type : msi URI : https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise.msi
Version : 118.0.5993.118 Architecture : x86 Channel : extended Type : msi URI : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi
Version : 118.0.5993.118 Architecture : x64 Channel : extended Type : msi URI : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
Version : 119.0.6045.59 Architecture : x86 Channel : stable Type : msi URI : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi
Version : 119.0.6045.59 Architecture : x64 Channel : stable Type : zip URI : https://dl.google.com/dl/chrome/install/GoogleChromeEnterpriseBundle64.zip
Version : 119.0.6045.59 Architecture : x64 Channel : stable Type : msi URI : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
Me too.
Version : 119.0.6045.105
Architecture : x64
Channel : stable
Type : zip
URI : https://dl.google.com/dl/chrome/install/GoogleChromeEnterpriseBundle64.zip
The issue is that 119
is listed in the stable channel at the moment: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/stable/versions/all/releases. We need to determine whether there are additional properties in the update feed to filter to find the current release version.
Mee too - now the reportet stable version is the 120.0.6099.62
Version Architecture Channel Type URI
120.0.6099.62 x64 beta msi https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise64.msi
120.0.6099.62 x86 beta msi https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise.msi
121.0.6166.0 x86 canary exe https://dl.google.com/update2/installers/ChromeSetup.exe
121.0.6156.3 x64 dev msi https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise64.msi
121.0.6156.3 x86 dev msi https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise.msi
118.0.5993.159 x64 extended msi https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
118.0.5993.159 x86 extended msi https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi
120.0.6099.62 x64 stable msi https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
120.0.6099.62 x64 stable zip https://dl.google.com/dl/chrome/install/GoogleChromeEnterpriseBundle64.zip
120.0.6099.62 x86 stable msi https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi
the file (googlechromestandaloneenterprise64.msi) behind is the correct stable version 119.0.6045.200
The stable and beta version have the same version number. 119.0.6045.200 is the correct version for the stable release.
Version : 120.0.6099.62
Architecture : x64
Channel : beta
Type : msi
URI : https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise64.msi
Version : 121.0.6156.3
Architecture : x64
Channel : dev
Type : msi
URI : https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise64.msi
Version : 118.0.5993.159
Architecture : x64
Channel : extended
Type : msi
URI : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
Version : 120.0.6099.62
Architecture : x64
Channel : stable
Type : msi
URI : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
IMHO I think Evergreen is working exactly as it should in this case. What we are seeing is the fact that Google have released "Chrome 120.0.6099.56 Early Stable Update" - Note the 'Early' in the name. (Previously raised in Issue 562) https://chromereleases.googleblog.com/2023/11/early-stable-update-for-desktop.html I think it should be considered that Google are 'Beta testing' their 'Early release stable channels' on a very small number of users (randomly chosen), so I suspect the URL that the software is downloaded from may either serve the Stable Release (at time of writing v119.0.6045.200) to the majority of users or 'Early' Stable Release (at time of writing v120.0.6099.62). As Google decide by an algorithm which file is served from the Download URI, I'd have to assume the versions detailed in the JSON that Google supplies is at times inaccurate.
My other bug bear is that Google often decide to release two different version numbers at the same time - most recent example: https://chromereleases.googleblog.com/2023/11/stable-channel-update-for-desktop_28.html So... Evergreen can not be expected to know accurately which version will be served by the Google algorithm
I have found today that the stable version is 120.0.6099.109 (or .110) where as the extended version is 120.0.6099.110, (https://chromereleases.googleblog.com/2023/12/stable-channel-update-for-desktop_12.html)
The problem is both versions are served from exactly the same URI:
https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
N.B. This location is defined (the same for both) in the Evergreen manifest file "C:\Program Files\WindowsPowerShell\Modules\Evergreen\<version>\Manifests\GoogleChrome.json"
file
Evergreen is currently showing Stable is .109 and extended is .110
Get-EvergreenApp Googlechrome -verbose | Where-Object {$_.Architecture -eq "x64" -and $_.Type -eq "msi" -and ($_.Channel -eq "stable" -or $_.Channel -eq "extended")} | Sort-Object Version
VERBOSE: Function path: C:\Program Files\WindowsPowerShell\Modules\Evergreen\2312.878\Apps\Get-Googlechrome.ps1
VERBOSE: Function exists: C:\Program Files\WindowsPowerShell\Modules\Evergreen\2312.878\Apps\Get-Googlechrome.ps1.
VERBOSE: Dot sourcing: C:\Program Files\WindowsPowerShell\Modules\Evergreen\2312.878\Apps\Get-Googlechrome.ps1.
VERBOSE: Get-FunctionResource: read application resource strings from [C:\Program Files\WindowsPowerShell\Modules\Evergreen\2312.878\Manifests\Googlechrome.json]
VERBOSE: Calling: Get-Googlechrome.
VERBOSE: Get-GoogleChrome: Channel: extended.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19045; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/extended/versions/all/releases.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Requested HTTP/1.1 GET with 0-byte payload
VERBOSE: Received HTTP/1.1 response of content type application/json of unknown size
VERBOSE: Content encoding: utf-8
VERBOSE: Get-GoogleChrome: Version: 120.0.6099.110
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-Architecture: Architecture not found in https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi, defaulting to x86.
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-GoogleChrome: Channel: stable.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19045; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/stable/versions/all/releases.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Requested HTTP/1.1 GET with 0-byte payload
VERBOSE: Received HTTP/1.1 response of content type application/json of unknown size
VERBOSE: Content encoding: utf-8
VERBOSE: Get-GoogleChrome: Version: 120.0.6099.109
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-FileType: found extension: [zip]
VERBOSE: Get-Architecture: Architecture not found in https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi, defaulting to x86.
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-GoogleChrome: Channel: beta.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19045; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/beta/versions/all/releases.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Requested HTTP/1.1 GET with 0-byte payload
VERBOSE: Received HTTP/1.1 response of content type application/json of unknown size
VERBOSE: Content encoding: utf-8
VERBOSE: Get-GoogleChrome: Version: 121.0.6167.16
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-Architecture: Architecture not found in https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise.msi, defaulting to x86.
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-GoogleChrome: Channel: dev.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19045; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/dev/versions/all/releases.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Requested HTTP/1.1 GET with 0-byte payload
VERBOSE: Received HTTP/1.1 response of content type application/json of unknown size
VERBOSE: Content encoding: utf-8
VERBOSE: Get-GoogleChrome: Version: 122.0.6170.5
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-Architecture: Architecture not found in https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise.msi, defaulting to x86.
VERBOSE: Get-FileType: found extension: [msi]
VERBOSE: Get-GoogleChrome: Channel: canary.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UserAgent: Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19045; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Uri: https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/canary/versions/all/releases.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: ContentType: application/json; charset=utf-8.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: MaximumRedirection: 2.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: Method: Default.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: DisableKeepAlive: True.
VERBOSE: Invoke-EvergreenRestMethod: Invoke-RestMethod parameter: UseBasicParsing: True.
VERBOSE: Requested HTTP/1.1 GET with 0-byte payload
VERBOSE: Received HTTP/1.1 response of content type application/json of unknown size
VERBOSE: Content encoding: utf-8
VERBOSE: Get-GoogleChrome: Version: 122.0.6184.0
VERBOSE: Get-Architecture: Architecture not found in https://dl.google.com/update2/installers/ChromeSetup.exe, defaulting to x86.
VERBOSE: Get-FileType: found extension: [exe]
Version : 120.0.6099.109
Architecture : x64
Channel : stable
Type : msi
URI : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
Version : 120.0.6099.110
Architecture : x64
Channel : extended
Type : msi
URI : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
Unsure if this helps anyone else, But in my case I don't really care whether it's the stable or extended channel - I just want the latest version of either. So I have a workaround - I can always grab the latest version number, by returning both extended and stable, then sorting by Version and finally grabbing the last (or highest) version number with the following PowerShell :
Get-EvergreenApp Googlechrome | Where-Object {$_.Architecture -eq "x64" -and $_.Type -eq "msi" -and ($_.Channel -eq "stable" -or $_.Channel -eq "extended")} | Sort-Object Version | Select-Object -Last 1
Version : 120.0.6099.110
Architecture : x64
Channel : extended
Type : msi
URI : https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
If this still doesn't solve the version number reliability, I may resort to a sanity check of the downloaded msi file using Get-FileMetaData e.g.
((Get-FileMetaData -Folder "<Folder where MSI resides>\file.msi" | Select-Object Comments -ExpandProperty Comments)-split(" "))[0]
I just hit this issue today also... Stable/Extended showing as 122.0.6261.69 and 122.0.6261.70 respectively, but both from the same URL (which downloads the Extended one ending in .70).
I guess I could just switch to using the Extended channel if this is always the version that gets served up by the fixed URL, but I will have to test that over a time period to see if it's viable.
Stable says .105, but in MSI is .106, looks like Google's update meta data is wrong
Unfortunately for us where we need consistency - The manner in which Google publish their meta data will always be wrong, especially when they release multiple 'Stable Release' versions at the same time. I'm sure Google have their reasons (??!?), but it just seems madness where we need some consistency. The current release notes state "The Stable channel has been updated to 123.0.6312.105/.106/.107 for Windows" Seems like a game of roulette... Am I going to get v.105, v.106 or v.107?
Not nice
Not nice
Yep - Entirely expected The Release Notes for this Early Stable update state: "The Stable channel has been updated to 124.0.6367.60 for Windows and Mac as part of our early stable release to a small percentage of users...." Google use some sort of magic to restrict how many users get this early version - the rest will continue to recieve the last stable release until the next stable release is fully available.
These updated queries might work for providing the required version data:
Time stamp data
From here: https://chromiumdash.appspot.com/releases?platform=Windows
These updated URLs though, won't change the status of this issue - there is no Extended installer and there doesn't appear to be a way to return a URL with a specific version of the installer.
Evergreen is returning a URL to a download similar to the official download page here: https://chromeenterprise.google/browser/download/#windows-tab
I've removed the bug label from this issue, because this isn't a bug.
The API for self-updating or downloading the installer used by the downloader on https://www.google.com/chrome/ returns the correct version. Even if the API is not for the enterprise MSI installer, both of them are updated to the same version almost at the same time according to my automation records.
$Object1 = Invoke-RestMethod -Uri 'https://update.googleapis.com/service/update2' -Method Post -Body @'
<?xml version="1.0" encoding="UTF-8"?>
<request protocol="3.0">
<os platform="win" version="10.0.22000" arch="x64" />
<app appid="{8A69D345-D564-463C-AFF1-A69D9E530F96}" version="" ap="x64">
<updatecheck />
</app>
</request>
'@
Here's an update to GoogleChrome
that includes the start date for that channel that can be used as an additional data point for version compare, particularly for the Extended channel
Version StartDate Architecture Channel Type URI
------- --------- ------------ ------- ---- ---
125.0.6422.14 24/4/2024 x64 Beta msi https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise64.msi
125.0.6422.14 24/4/2024 x86 Beta msi https://dl.google.com/dl/chrome/install/beta/googlechromebetastandaloneenterprise.msi
126.0.6449.0 30/4/2024 x86 Canary exe https://dl.google.com/update2/installers/ChromeSetup.exe
126.0.6439.0 26/4/2024 x64 Dev msi https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise64.msi
126.0.6439.0 26/4/2024 x86 Dev msi https://dl.google.com/dl/chrome/install/dev/googlechromedevstandaloneenterprise.msi
124.0.6367.118 30/4/2024 x64 Extended msi https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
124.0.6367.118 30/4/2024 x86 Extended msi https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi
124.0.6367.118 30/4/2024 x64 Stable msi https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
124.0.6367.118 30/4/2024 x64 Stable zip https://dl.google.com/dl/chrome/install/GoogleChromeEnterpriseBundle64.zip
124.0.6367.118 30/4/2024 x86 Stable msi https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi
I've removed the bug label from this issue, because this isn't a bug.
Maybe the issue subject could also be amended to remove the '[Bug]: ' prefix?
What happened?
The Evergreen module lists the latest Stable x64 msi version as 118.0.5993.117 but when it downloads and I check the properties, it is listed as 118.0.5993.118
Version
2310.868
What PowerShell edition/s are you running Evergreen on?
Windows PowerShell
Which operating system/s are you running Evergreen on?
Windows 10+
Have you reviewed the documentation?
Verbose output