diff --git a/lib/config/migrations/custom/datasource-migration.spec.ts b/lib/config/migrations/custom/datasource-migration.spec.ts index 08d768de893c24b1fd11dbe3b2840ec8d448b611..10eda1e06a710952c59a545f9fdad79eb78eff68 100644 --- a/lib/config/migrations/custom/datasource-migration.spec.ts +++ b/lib/config/migrations/custom/datasource-migration.spec.ts @@ -1,7 +1,18 @@ import { DatasourceMigration } from './datasource-migration'; describe('config/migrations/custom/datasource-migration', () => { - it('should migrate properly', () => { + it('should migrate adoptium-java', () => { + expect(DatasourceMigration).toMigrate( + { + datasource: 'adoptium-java', + }, + { + datasource: 'java-version', + } + ); + }); + + it('should migrate donet', () => { expect(DatasourceMigration).toMigrate( { datasource: 'dotnet', diff --git a/lib/config/migrations/custom/datasource-migration.ts b/lib/config/migrations/custom/datasource-migration.ts index 2f742930562a8043dbc72f9a7958a19c9214e79b..b20445935a09d614b425a9e90843887930a8873d 100644 --- a/lib/config/migrations/custom/datasource-migration.ts +++ b/lib/config/migrations/custom/datasource-migration.ts @@ -6,7 +6,15 @@ export class DatasourceMigration extends AbstractMigration { override run(value: unknown): void { if (is.string(value)) { - const newValue = value === 'dotnet' ? 'dotnet-version' : value; + let newValue = value; + switch (newValue) { + case 'adoptium-java': + newValue = 'java-version'; + break; + case 'dotnet': + newValue = 'dotnet-version'; + break; + } this.rewrite(newValue); } diff --git a/lib/config/migrations/custom/match-datasources-migration.spec.ts b/lib/config/migrations/custom/match-datasources-migration.spec.ts index 9c8187380e6cc24384c6bf3a58c81bd0b6b672e9..1a8c8ac579d3c31bce5cd6f46abd81626706fd4c 100644 --- a/lib/config/migrations/custom/match-datasources-migration.spec.ts +++ b/lib/config/migrations/custom/match-datasources-migration.spec.ts @@ -4,10 +4,10 @@ describe('config/migrations/custom/match-datasources-migration', () => { it('should migrate properly', () => { expect(MatchDatasourcesMigration).toMigrate( { - matchDatasources: ['dotnet'], + matchDatasources: ['adoptium-java', 'dotnet', 'npm'], }, { - matchDatasources: ['dotnet-version'], + matchDatasources: ['java-version', 'dotnet-version', 'npm'], } ); }); diff --git a/lib/config/migrations/custom/match-datasources-migration.ts b/lib/config/migrations/custom/match-datasources-migration.ts index af9a043839ccab7580b344e740a1d0bd6bcb4462..5d87e57d453f19289160c7369e22375e3d7c6a9c 100644 --- a/lib/config/migrations/custom/match-datasources-migration.ts +++ b/lib/config/migrations/custom/match-datasources-migration.ts @@ -6,11 +6,16 @@ export class MatchDatasourcesMigration extends AbstractMigration { override run(value: unknown): void { if (Array.isArray(value)) { - const newValue = value - .filter(is.nonEmptyString) - .map((datasource) => - datasource === 'dotnet' ? 'dotnet-version' : datasource - ); + const newValue = value.filter(is.nonEmptyString).map((datasource) => { + switch (datasource) { + case 'adoptium-java': + return 'java-version'; + case 'dotnet': + return 'dotnet-version'; + default: + return datasource; + } + }); this.rewrite(newValue); } diff --git a/lib/config/migrations/migrations-service.ts b/lib/config/migrations/migrations-service.ts index ca09438bd349099a3e754627df9bcb0b2800ef2e..fc23f576e39c9def95fdb9e5c170cc03817c55ae 100644 --- a/lib/config/migrations/migrations-service.ts +++ b/lib/config/migrations/migrations-service.ts @@ -73,6 +73,7 @@ export class MigrationsService { ]); static readonly renamedProperties: ReadonlyMap<string, string> = new Map([ + ['adoptium-java', 'java-version'], ['endpoints', 'hostRules'], ['excludedPackageNames', 'excludePackageNames'], ['exposeEnv', 'exposeAllEnv'], diff --git a/lib/config/presets/internal/workarounds.ts b/lib/config/presets/internal/workarounds.ts index 3223d41c76c38848fd945bb045ac198eb8223990..03d13ce0da3539cd4c4dd13777354f4271a65829 100644 --- a/lib/config/presets/internal/workarounds.ts +++ b/lib/config/presets/internal/workarounds.ts @@ -82,7 +82,7 @@ export const presets: Record<string, Preset> = { allowedVersions: '/^(?:8|11|17)(?:\\.|-|$)/', description: 'Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.', - matchDatasources: ['docker', 'adoptium-java'], + matchDatasources: ['docker', 'java-version'], matchPackageNames: [ 'eclipse-temurin', 'amazoncorretto', diff --git a/lib/modules/datasource/api.ts b/lib/modules/datasource/api.ts index 915f18e6b9b27e6482c2bfafd2508d9715b85cc3..c61d696bfa18ffc40f21b650ca66fed5c86e38a3 100644 --- a/lib/modules/datasource/api.ts +++ b/lib/modules/datasource/api.ts @@ -1,4 +1,3 @@ -import { AdoptiumJavaDatasource } from './adoptium-java'; import { ArtifactoryDatasource } from './artifactory'; import { AwsMachineImageDataSource } from './aws-machine-image'; import { AwsRdsDataSource } from './aws-rds'; @@ -32,6 +31,7 @@ import { HelmDatasource } from './helm'; import { HermitDatasource } from './hermit'; import { HexDatasource } from './hex'; import { HexpmBobDatasource } from './hexpm-bob'; +import { JavaVersionDatasource } from './java-version'; import { JenkinsPluginsDatasource } from './jenkins-plugins'; import { KubernetesApiDatasource } from './kubernetes-api'; import { MavenDatasource } from './maven'; @@ -55,7 +55,6 @@ import type { DatasourceApi } from './types'; const api = new Map<string, DatasourceApi>(); export default api; -api.set(AdoptiumJavaDatasource.id, new AdoptiumJavaDatasource()); api.set(ArtifactoryDatasource.id, new ArtifactoryDatasource()); api.set(AwsMachineImageDataSource.id, new AwsMachineImageDataSource()); api.set(AwsRdsDataSource.id, new AwsRdsDataSource()); @@ -89,6 +88,7 @@ api.set(HelmDatasource.id, new HelmDatasource()); api.set(HermitDatasource.id, new HermitDatasource()); api.set(HexDatasource.id, new HexDatasource()); api.set(HexpmBobDatasource.id, new HexpmBobDatasource()); +api.set(JavaVersionDatasource.id, new JavaVersionDatasource()); api.set(JenkinsPluginsDatasource.id, new JenkinsPluginsDatasource()); api.set(KubernetesApiDatasource.id, new KubernetesApiDatasource()); api.set(MavenDatasource.id, new MavenDatasource()); diff --git a/lib/modules/datasource/adoptium-java/__fixtures__/jre.json b/lib/modules/datasource/java-version/__fixtures__/jre.json similarity index 100% rename from lib/modules/datasource/adoptium-java/__fixtures__/jre.json rename to lib/modules/datasource/java-version/__fixtures__/jre.json diff --git a/lib/modules/datasource/adoptium-java/__fixtures__/page.json b/lib/modules/datasource/java-version/__fixtures__/page.json similarity index 100% rename from lib/modules/datasource/adoptium-java/__fixtures__/page.json rename to lib/modules/datasource/java-version/__fixtures__/page.json diff --git a/lib/modules/datasource/adoptium-java/__snapshots__/index.spec.ts.snap b/lib/modules/datasource/java-version/__snapshots__/index.spec.ts.snap similarity index 90% rename from lib/modules/datasource/adoptium-java/__snapshots__/index.spec.ts.snap rename to lib/modules/datasource/java-version/__snapshots__/index.spec.ts.snap index d04abec922ce771b3978afb0237ab8d944e62e4d..77d3898dab4d9018c1b2279b7f12c70e59cc9f55 100644 --- a/lib/modules/datasource/adoptium-java/__snapshots__/index.spec.ts.snap +++ b/lib/modules/datasource/java-version/__snapshots__/index.spec.ts.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`modules/datasource/adoptium-java/index getReleases pages 1`] = ` +exports[`modules/datasource/java-version/index getReleases pages 1`] = ` { "homepage": "https://adoptium.net", "registryUrl": "https://api.adoptium.net/", @@ -159,7 +159,7 @@ exports[`modules/datasource/adoptium-java/index getReleases pages 1`] = ` } `; -exports[`modules/datasource/adoptium-java/index getReleases processes real data (jre) 1`] = ` +exports[`modules/datasource/java-version/index getReleases processes real data (jre) 1`] = ` { "homepage": "https://adoptium.net", "registryUrl": "https://api.adoptium.net/", @@ -174,7 +174,7 @@ exports[`modules/datasource/adoptium-java/index getReleases processes real data } `; -exports[`modules/datasource/adoptium-java/index getReleases processes real data 1`] = ` +exports[`modules/datasource/java-version/index getReleases processes real data 1`] = ` { "homepage": "https://adoptium.net", "registryUrl": "https://api.adoptium.net/", diff --git a/lib/modules/datasource/adoptium-java/common.ts b/lib/modules/datasource/java-version/common.ts similarity index 86% rename from lib/modules/datasource/adoptium-java/common.ts rename to lib/modules/datasource/java-version/common.ts index d65c51704fea2732f58b56a9d9d2e1e84d4c6d2f..1da35d036be1563994da2c070b480b0fc70bc4c4 100644 --- a/lib/modules/datasource/adoptium-java/common.ts +++ b/lib/modules/datasource/java-version/common.ts @@ -3,7 +3,7 @@ export const pageSize = 50; export const defaultRegistryUrl = 'https://api.adoptium.net/'; -export const datasource = 'adoptium-java'; +export const datasource = 'java-version'; export function getImageType(packageName: string): string { switch (packageName) { diff --git a/lib/modules/datasource/adoptium-java/index.spec.ts b/lib/modules/datasource/java-version/index.spec.ts similarity index 98% rename from lib/modules/datasource/adoptium-java/index.spec.ts rename to lib/modules/datasource/java-version/index.spec.ts index ee00651bd8c222f9c744a754d1839e1960295d15..d660e43a8fb297ea8fbf26f38687800675532a6a 100644 --- a/lib/modules/datasource/adoptium-java/index.spec.ts +++ b/lib/modules/datasource/java-version/index.spec.ts @@ -11,7 +11,7 @@ function getPath(page: number, imageType = 'jdk'): string { const depName = 'java'; -describe('modules/datasource/adoptium-java/index', () => { +describe('modules/datasource/java-version/index', () => { describe('getReleases', () => { it('throws for error', async () => { httpMock diff --git a/lib/modules/datasource/adoptium-java/index.ts b/lib/modules/datasource/java-version/index.ts similarity index 85% rename from lib/modules/datasource/adoptium-java/index.ts rename to lib/modules/datasource/java-version/index.ts index 4e532ab70402955ad4608499254a3a3ebc45b647..9dda77f541866369ef178a82b7a8afe66c6192f6 100644 --- a/lib/modules/datasource/adoptium-java/index.ts +++ b/lib/modules/datasource/java-version/index.ts @@ -12,7 +12,7 @@ import { } from './common'; import type { AdoptiumJavaResponse } from './types'; -export class AdoptiumJavaDatasource extends Datasource { +export class JavaVersionDatasource extends Datasource { static readonly id = datasource; constructor() { @@ -55,8 +55,7 @@ export class AdoptiumJavaDatasource extends Datasource { namespace: `datasource-${datasource}`, key: ({ registryUrl, packageName }: GetReleasesConfig) => // TODO: types (#7154) - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - `${registryUrl}:${getImageType(packageName)}`, + `${registryUrl!}:${getImageType(packageName)}`, }) async getReleases({ registryUrl, @@ -68,8 +67,7 @@ export class AdoptiumJavaDatasource extends Datasource { 'fetching java release' ); // TODO: types (#7154) - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - const url = `${registryUrl}v3/info/release_versions?page_size=${pageSize}&image_type=${imageType}&project=jdk&release_type=ga&sort_method=DATE&sort_order=DESC`; + const url = `${registryUrl!}v3/info/release_versions?page_size=${pageSize}&image_type=${imageType}&project=jdk&release_type=ga&sort_method=DATE&sort_order=DESC`; const result: ReleaseResult = { homepage: 'https://adoptium.net', diff --git a/lib/modules/datasource/adoptium-java/readme.md b/lib/modules/datasource/java-version/readme.md similarity index 100% rename from lib/modules/datasource/adoptium-java/readme.md rename to lib/modules/datasource/java-version/readme.md diff --git a/lib/modules/datasource/adoptium-java/types.ts b/lib/modules/datasource/java-version/types.ts similarity index 100% rename from lib/modules/datasource/adoptium-java/types.ts rename to lib/modules/datasource/java-version/types.ts diff --git a/lib/modules/datasource/readme.md b/lib/modules/datasource/readme.md index bb797f9e4d5011721258955e5cf36694cbeba254..ab2db82cb21e8a932c527d1b7ecfe4cd62505c44 100644 --- a/lib/modules/datasource/readme.md +++ b/lib/modules/datasource/readme.md @@ -5,7 +5,7 @@ Datasources are used in Renovate primarily to fetch released versions of package ## Follow the class-based programming style New datasources _must_ follow the class-based programming style. -Use the `adoptium-java` datasource as a reference. +Use the `java-version` datasource as a reference. Add the datasource to the API in [`api.ts`](api.ts) so that the new datasource is usable. If you find `Pending mocks!` errors in the Jest tests and your mocked URLs are correct, ensure the datasource is correctly registered. diff --git a/lib/modules/manager/asdf/extract.spec.ts b/lib/modules/manager/asdf/extract.spec.ts index 7c0771678e32327c8045efdbe998a6a13b7e76a5..4db8ccc25a6e0c4b02899e2fecbfdbc9234f1ebb 100644 --- a/lib/modules/manager/asdf/extract.spec.ts +++ b/lib/modules/manager/asdf/extract.spec.ts @@ -225,7 +225,7 @@ dummy 1.2.3 }, { currentValue: '16.0.0+36', - datasource: 'adoptium-java', + datasource: 'java-version', packageName: 'java-jdk', depName: 'java', }, @@ -369,7 +369,7 @@ dummy 1.2.3 deps: [ { currentValue: '16.0.0+36', - datasource: 'adoptium-java', + datasource: 'java-version', depName: 'java', packageName: 'java-jdk', }, @@ -380,7 +380,7 @@ dummy 1.2.3 deps: [ { currentValue: '16.0.0+36', - datasource: 'adoptium-java', + datasource: 'java-version', depName: 'java', packageName: 'java-jre', }, diff --git a/lib/modules/manager/asdf/index.ts b/lib/modules/manager/asdf/index.ts index feaa1b6ee5bdcb8f22834e08e1cffaae648c6bb0..b8e647affde26b31c86e58ccee2e5fc19dca2471 100644 --- a/lib/modules/manager/asdf/index.ts +++ b/lib/modules/manager/asdf/index.ts @@ -1,8 +1,8 @@ -import { AdoptiumJavaDatasource } from '../../datasource/adoptium-java'; import { DockerDatasource } from '../../datasource/docker'; import { GithubReleasesDatasource } from '../../datasource/github-releases'; import { GithubTagsDatasource } from '../../datasource/github-tags'; import { HexpmBobDatasource } from '../../datasource/hexpm-bob'; +import { JavaVersionDatasource } from '../../datasource/java-version'; import { NodeDatasource } from '../../datasource/node'; import { RubyVersionDatasource } from '../../datasource/ruby-version'; @@ -15,7 +15,7 @@ export const defaultConfig = { }; export const supportedDatasources = [ - AdoptiumJavaDatasource.id, + JavaVersionDatasource.id, DockerDatasource.id, GithubReleasesDatasource.id, GithubTagsDatasource.id, diff --git a/lib/modules/manager/asdf/upgradeable-tooling.ts b/lib/modules/manager/asdf/upgradeable-tooling.ts index 62bad259df893396b6b004cee32ac5e2375d6a1f..3d85626c9f0039c28375a56d69cd396d574dfd6b 100644 --- a/lib/modules/manager/asdf/upgradeable-tooling.ts +++ b/lib/modules/manager/asdf/upgradeable-tooling.ts @@ -1,8 +1,8 @@ -import { AdoptiumJavaDatasource } from '../../datasource/adoptium-java'; import { DockerDatasource } from '../../datasource/docker'; import { GithubReleasesDatasource } from '../../datasource/github-releases'; import { GithubTagsDatasource } from '../../datasource/github-tags'; import { HexpmBobDatasource } from '../../datasource/hexpm-bob'; +import { JavaVersionDatasource } from '../../datasource/java-version'; import { NodeDatasource } from '../../datasource/node'; import { RubyVersionDatasource } from '../../datasource/ruby-version'; import * as regexVersioning from '../../versioning/regex'; @@ -181,7 +181,7 @@ export const upgradeableTooling: Record<string, ToolingDefinition> = { ); if (adoptOpenJdkMatches) { return { - datasource: AdoptiumJavaDatasource.id, + datasource: JavaVersionDatasource.id, packageName: 'java-jdk', currentValue: adoptOpenJdkMatches.groups!.version, }; @@ -191,7 +191,7 @@ export const upgradeableTooling: Record<string, ToolingDefinition> = { ); if (adoptOpenJreMatches) { return { - datasource: AdoptiumJavaDatasource.id, + datasource: JavaVersionDatasource.id, packageName: 'java-jre', currentValue: adoptOpenJreMatches.groups!.version, }; diff --git a/lib/util/exec/containerbase.ts b/lib/util/exec/containerbase.ts index e884728d042cb6b9a3523a9ac8583f114e45f6da..178f6b2944870294714e537dbeab2661d6b87987 100644 --- a/lib/util/exec/containerbase.ts +++ b/lib/util/exec/containerbase.ts @@ -71,7 +71,7 @@ const allToolConfig: Record<string, ToolConfig> = { versioning: semverVersioningId, }, java: { - datasource: 'adoptium-java', + datasource: 'java-version', depName: 'java', versioning: npmVersioningId, },