From 09402a32e6df8e35ae9f5a8f0f3bb09330df15c5 Mon Sep 17 00:00:00 2001 From: RahulGautamSingh <rahultesnik@gmail.com> Date: Mon, 13 Feb 2023 13:24:20 +0530 Subject: [PATCH] fix(datasource): rename `adoptium-java` to `java-version` (#20245) --- .../custom/datasource-migration.spec.ts | 13 ++++++++++++- .../migrations/custom/datasource-migration.ts | 10 +++++++++- .../custom/match-datasources-migration.spec.ts | 4 ++-- .../custom/match-datasources-migration.ts | 15 ++++++++++----- lib/config/migrations/migrations-service.ts | 1 + lib/config/presets/internal/workarounds.ts | 2 +- lib/modules/datasource/api.ts | 4 ++-- .../__fixtures__/jre.json | 0 .../__fixtures__/page.json | 0 .../__snapshots__/index.spec.ts.snap | 6 +++--- .../{adoptium-java => java-version}/common.ts | 2 +- .../{adoptium-java => java-version}/index.spec.ts | 2 +- .../{adoptium-java => java-version}/index.ts | 8 +++----- .../{adoptium-java => java-version}/readme.md | 0 .../{adoptium-java => java-version}/types.ts | 0 lib/modules/datasource/readme.md | 2 +- lib/modules/manager/asdf/extract.spec.ts | 6 +++--- lib/modules/manager/asdf/index.ts | 4 ++-- lib/modules/manager/asdf/upgradeable-tooling.ts | 6 +++--- lib/util/exec/containerbase.ts | 2 +- 20 files changed, 55 insertions(+), 32 deletions(-) rename lib/modules/datasource/{adoptium-java => java-version}/__fixtures__/jre.json (100%) rename lib/modules/datasource/{adoptium-java => java-version}/__fixtures__/page.json (100%) rename lib/modules/datasource/{adoptium-java => java-version}/__snapshots__/index.spec.ts.snap (90%) rename lib/modules/datasource/{adoptium-java => java-version}/common.ts (86%) rename lib/modules/datasource/{adoptium-java => java-version}/index.spec.ts (98%) rename lib/modules/datasource/{adoptium-java => java-version}/index.ts (85%) rename lib/modules/datasource/{adoptium-java => java-version}/readme.md (100%) rename lib/modules/datasource/{adoptium-java => java-version}/types.ts (100%) diff --git a/lib/config/migrations/custom/datasource-migration.spec.ts b/lib/config/migrations/custom/datasource-migration.spec.ts index 08d768de89..10eda1e06a 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 2f74293056..b20445935a 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 9c8187380e..1a8c8ac579 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 af9a043839..5d87e57d45 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 ca09438bd3..fc23f576e3 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 3223d41c76..03d13ce0da 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 915f18e6b9..c61d696bfa 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 d04abec922..77d3898dab 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 d65c51704f..1da35d036b 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 ee00651bd8..d660e43a8f 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 4e532ab704..9dda77f541 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 bb797f9e4d..ab2db82cb2 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 7c0771678e..4db8ccc25a 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 feaa1b6ee5..b8e647affd 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 62bad259df..3d85626c9f 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 e884728d04..178f6b2944 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, }, -- GitLab