diff --git a/.github/actions/docs-pr/constants.js b/.github/actions/docs-pr/constants.js index d0dd3d3d7..0482cab4f 100644 --- a/.github/actions/docs-pr/constants.js +++ b/.github/actions/docs-pr/constants.js @@ -15,10 +15,7 @@ export const CHANGELOG_FILE_PATH = path.resolve( CHANGELOG_FILE_NAME ) -export const BROWSER_SUPPORT_LIST_FILE_PATH = path.resolve( - __dirname, - '../../../tools/browsers-lists/browsers-supported.json' -) +export const BROWSER_LASTEST_VERSIONS_FILE_PATH = path.resolve(__dirname, '../../../tools/browsers-lists/lt-desktop-latest-vers.json') +export const MOBILE_VERSIONS_FILE_PATH = path.resolve(__dirname, '../../../tools/browsers-lists/lt-mobile-supported.json') -export const ANDROID_CHROME_VERSION = 100 // for browser target statement; SauceLabs only offers one Android Chrome version export const RELEASE_NOTES_PATH = 'src/content/docs/release-notes/new-relic-browser-release-notes/browser-agent-release-notes' diff --git a/.github/actions/docs-pr/index.js b/.github/actions/docs-pr/index.js index eaa53c900..6755a653d 100644 --- a/.github/actions/docs-pr/index.js +++ b/.github/actions/docs-pr/index.js @@ -10,7 +10,7 @@ import { DOCS_SITE_GITHUB_REPO, DOCS_SITE_REPO_BASE, CHANGELOG_FILE_PATH, - RELEASE_NOTES_PATH, ANDROID_CHROME_VERSION, + RELEASE_NOTES_PATH, } from './constants.js' import { GitCliRunner } from '../shared-utils/git-cli-runner.js' import Handlebars from 'handlebars' @@ -64,8 +64,7 @@ const bodyContent = { bugs: [], security: [], browserVersions: { - ...(await getBrowserVersions()), - androidChromeVersion : ANDROID_CHROME_VERSION + ...(await getBrowserVersions()) } } diff --git a/.github/actions/docs-pr/templates/release-notes.handlebars b/.github/actions/docs-pr/templates/release-notes.handlebars index 27a1ffec4..a7ebfbefd 100644 --- a/.github/actions/docs-pr/templates/release-notes.handlebars +++ b/.github/actions/docs-pr/templates/release-notes.handlebars @@ -44,4 +44,4 @@ New Relic recommends that you upgrade the agent regularly to ensure that you're New browser agent releases are rolled out to customers in small stages over a period of time. Because of this, the date the release becomes accessible to your account may not match the original publish date. Please see this [status dashboard](https://newrelic.github.io/newrelic-browser-agent-release/) for more information. -Consistent with our [browser support policy](https://docs.newrelic.com/docs/browser/new-relic-browser/getting-started/compatibility-requirements-browser-monitoring/#browser-types), {{bodyContent.version}} of the Browser agent was built for and tested against these browsers and version ranges: Chrome {{bodyContent.browserVersions.min.chrome}}-{{bodyContent.browserVersions.max.chrome}}, Edge {{bodyContent.browserVersions.min.edge}}-{{bodyContent.browserVersions.max.edge}}, Safari {{bodyContent.browserVersions.min.safari}}-{{bodyContent.browserVersions.max.safari}}, and Firefox {{bodyContent.browserVersions.min.firefox}}-{{bodyContent.browserVersions.max.firefox}}. For mobile devices, v1.251.1 was built and tested for Android Chrome {{bodyContent.browserVersions.androidChromeVersion}}-{{bodyContent.browserVersions.max.chrome}} and iOS Safari {{bodyContent.browserVersions.min.ios}}-{{bodyContent.browserVersions.max.ios}}. +Consistent with our [browser support policy](https://docs.newrelic.com/docs/browser/new-relic-browser/getting-started/compatibility-requirements-browser-monitoring/#browser-types), {{bodyContent.version}} of the Browser agent was built for and tested against these browsers and version ranges: Chrome {{bodyContent.browserVersions.min.chrome}}-{{bodyContent.browserVersions.max.chrome}}, Edge {{bodyContent.browserVersions.min.edge}}-{{bodyContent.browserVersions.max.edge}}, Safari {{bodyContent.browserVersions.min.safari}}-{{bodyContent.browserVersions.max.safari}}, and Firefox {{bodyContent.browserVersions.min.firefox}}-{{bodyContent.browserVersions.max.firefox}}. For mobile devices, {{bodyContent.version}} was built and tested for Android OS {{bodyContent.browserVersions.min.android}}-{{bodyContent.browserVersions.max.android}} and iOS Safari {{bodyContent.browserVersions.min.ios}}-{{bodyContent.browserVersions.max.ios}}. diff --git a/.github/actions/docs-pr/utils.js b/.github/actions/docs-pr/utils.js index 46c1b7a32..6783c03b7 100644 --- a/.github/actions/docs-pr/utils.js +++ b/.github/actions/docs-pr/utils.js @@ -1,5 +1,5 @@ import fs from 'fs' -import { BROWSER_SUPPORT_LIST_FILE_PATH } from './constants.js' +import { BROWSER_LASTEST_VERSIONS_FILE_PATH, MOBILE_VERSIONS_FILE_PATH } from './constants.js' /** * Strips the conventional commit prefix and Jira issue suffix from a title. @@ -19,20 +19,25 @@ export function cleanTitle (rawTitle) { * @returns {string} The min and max browser versions */ export async function getBrowserVersions () { - const browserData = JSON.parse(await fs.promises.readFile(BROWSER_SUPPORT_LIST_FILE_PATH)) + const lastVersions = JSON.parse(await fs.promises.readFile(BROWSER_LASTEST_VERSIONS_FILE_PATH)) + const mobileVersions = JSON.parse(await fs.promises.readFile(MOBILE_VERSIONS_FILE_PATH)) const min = {} const max = {} - for (let browser in browserData) { - const browserVersions = browserData[browser] - min[browser] = Infinity - max[browser] = -Infinity - for (let browserVersion of browserVersions) { - const versionNumber = Number(browserVersion.version) - min[browser] = min[browser] > versionNumber ? versionNumber : min[browser] - max[browser] = max[browser] < versionNumber ? versionNumber : max[browser] - } + for (let browser in lastVersions) { + if (browser === 'safari_min') continue // only do 'safari' not both + const curVersion = lastVersions[browser] + max[browser] = Number(curVersion) + // chromium & ff follows major versioning releases, while safari doesn't + if (browser === 'safari') min[browser] = Number(lastVersions['safari_min']) + else min[browser] = max[browser] - 10 + } + + for (let mobile in mobileVersions) { + const specsArray = mobileVersions[mobile] + max[mobile] = Number(specsArray[0].version) + min[mobile] = Number(specsArray[1].version) } return { min, max } diff --git a/tools/browsers-lists/lt-desktop-latest-vers.json b/tools/browsers-lists/lt-desktop-latest-vers.json index 8c27e0586..7e9048da4 100644 --- a/tools/browsers-lists/lt-desktop-latest-vers.json +++ b/tools/browsers-lists/lt-desktop-latest-vers.json @@ -2,5 +2,6 @@ "chrome": 125, "edge": 126, "firefox": 126, - "safari": 17 + "safari": 17, + "safari_min": 16 } diff --git a/tools/browsers-lists/lt-update-supported.mjs b/tools/browsers-lists/lt-update-supported.mjs index 9aa5c1e0d..c1909649e 100644 --- a/tools/browsers-lists/lt-update-supported.mjs +++ b/tools/browsers-lists/lt-update-supported.mjs @@ -37,6 +37,7 @@ function updateLatestVersions (deskPlatforms) { const safaris = macOSes.map(p => p.browsers.find(spec => spec.browser_name === 'Safari')) safaris.sort((a, b) => Number(a.version) - Number(b.version)) latestVersionsJson.safari = Number(safaris.pop().version) + latestVersionsJson.safari_min = Math.floor(browserslistMinVersion('last 10 Safari versions')) return latestVersionsJson }