diff --git a/lib/modules/datasource/dart-version/__fixtures__/beta.json b/lib/modules/datasource/dart-version/__fixtures__/beta.json index 8e2c28bc7e9d8ea175cacc1f363c7c1cdbc876f7..a1b6d6d6ef70fe031ab302735e862106cb967a91 100644 --- a/lib/modules/datasource/dart-version/__fixtures__/beta.json +++ b/lib/modules/datasource/dart-version/__fixtures__/beta.json @@ -10,6 +10,8 @@ "channels/beta/release/2.19.0-255.2.beta/", "channels/beta/release/2.19.0-374.1.beta/", "channels/beta/release/2.19.0-374.2.beta/", + "channels/dev/release/30039/", + "channels/dev/release/30104/", "channels/beta/release/latest/" ] } diff --git a/lib/modules/datasource/dart-version/__fixtures__/stable.json b/lib/modules/datasource/dart-version/__fixtures__/stable.json index f5bb8cab7e838d9af9b18857baf0c1bfaccb4331..35409a3ab72a08c4234199413d173112e765f411 100644 --- a/lib/modules/datasource/dart-version/__fixtures__/stable.json +++ b/lib/modules/datasource/dart-version/__fixtures__/stable.json @@ -7,6 +7,8 @@ "channels/stable/release/2.18.0/", "channels/stable/release/2.18.4/", "channels/stable/release/2.18.5/", + "channels/stable/release/30036/", + "channels/stable/release/30107/", "channels/stable/release/latest/" ] } diff --git a/lib/modules/datasource/dart-version/index.ts b/lib/modules/datasource/dart-version/index.ts index 06b5440f8fbb7d2be66f90d095842373c79465bb..5db78cbfc8202f1ffa5ae66e4e30c92ed7283e62 100644 --- a/lib/modules/datasource/dart-version/index.ts +++ b/lib/modules/datasource/dart-version/index.ts @@ -5,6 +5,12 @@ import type { GetReleasesConfig, Release, ReleaseResult } from '../types'; import type { DartResponse } from './types'; export const stableVersionRegex = regEx(/^\d+\.\d+\.\d+$/); +/** + * The server returns old svn versions which would need mapping to a version. + * They are very old, so we skip them instead. + * https://github.com/dart-lang/site-www/blob/7d4409c87bb6570b2d8870b20283f81f2b7e08fc/tool/get-dart/dart_sdk_archive/lib/src/svn_versions.dart#L2 + */ +export const svnVersionRegex = regEx(/^\d+$/); export class DartVersionDatasource extends Datasource { static readonly id = 'dart-version'; @@ -65,6 +71,8 @@ export class DartVersionDatasource extends Datasource { .filter((version) => { if ( version === 'latest' || + // skip old svn versions + svnVersionRegex.test(version) || // The API response contains a stable version being released as a non-stable // release. So we filter out these releases here. (channel !== 'stable' && stableVersionRegex.test(version))