feat(datasource)!: default to the central default versioning (#23020)

BREAKING CHANGE: semver-coerced is now the default versioning
This commit is contained in:
Sebastian Poxhofer 2023-06-29 10:37:33 +02:00 committed by Rhys Arkins
parent f9e3e80e0c
commit 8ccb0eaae2
5 changed files with 13 additions and 3 deletions

View file

@ -1,4 +1,5 @@
import { regEx } from '../../../util/regex'; import { regEx } from '../../../util/regex';
import { id as semverId } from '../../versioning/semver';
import { Datasource } from '../datasource'; import { Datasource } from '../datasource';
import type { GetReleasesConfig, ReleaseResult } from '../types'; import type { GetReleasesConfig, ReleaseResult } from '../types';
import type { FlutterResponse } from './types'; import type { FlutterResponse } from './types';
@ -18,6 +19,8 @@ export class FlutterVersionDatasource extends Datasource {
override readonly caching = true; override readonly caching = true;
override readonly defaultVersioning = semverId;
async getReleases({ async getReleases({
registryUrl, registryUrl,
}: GetReleasesConfig): Promise<ReleaseResult | null> { }: GetReleasesConfig): Promise<ReleaseResult | null> {

View file

@ -3,6 +3,7 @@ import { logger } from '../../../logger';
import { ExternalHostError } from '../../../types/errors/external-host-error'; import { ExternalHostError } from '../../../types/errors/external-host-error';
import { cache } from '../../../util/cache/package/decorator'; import { cache } from '../../../util/cache/package/decorator';
import { HttpError } from '../../../util/http'; import { HttpError } from '../../../util/http';
import { id as semverId } from '../../versioning/semver';
import { Datasource } from '../datasource'; import { Datasource } from '../datasource';
import type { GetReleasesConfig, ReleaseResult } from '../types'; import type { GetReleasesConfig, ReleaseResult } from '../types';
import { datasource, defaultRegistryUrl } from './common'; import { datasource, defaultRegistryUrl } from './common';
@ -21,6 +22,8 @@ export class HexpmBobDatasource extends Datasource {
override readonly caching = true; override readonly caching = true;
override readonly defaultVersioning = semverId;
@cache({ @cache({
namespace: `datasource-${datasource}`, namespace: `datasource-${datasource}`,
key: ({ registryUrl, packageName }: GetReleasesConfig) => key: ({ registryUrl, packageName }: GetReleasesConfig) =>

View file

@ -114,7 +114,7 @@ describe('modules/datasource/index', () => {
describe('getDefaultVersioning()', () => { describe('getDefaultVersioning()', () => {
it('returns semver if undefined', () => { it('returns semver if undefined', () => {
expect(getDefaultVersioning(undefined)).toBe('semver'); expect(getDefaultVersioning(undefined)).toBe('semver-coerced');
}); });
}); });

View file

@ -10,6 +10,7 @@ import { regEx } from '../../util/regex';
import { Result } from '../../util/result'; import { Result } from '../../util/result';
import { uniq } from '../../util/uniq'; import { uniq } from '../../util/uniq';
import { trimTrailingSlash } from '../../util/url'; import { trimTrailingSlash } from '../../util/url';
import { defaultVersioning } from '../versioning';
import * as allVersioning from '../versioning'; import * as allVersioning from '../versioning';
import datasources from './api'; import datasources from './api';
import { addMetaData } from './metadata'; import { addMetaData } from './metadata';
@ -241,14 +242,14 @@ export function getDefaultVersioning(
datasourceName: string | undefined datasourceName: string | undefined
): string { ): string {
if (!datasourceName) { if (!datasourceName) {
return 'semver'; return defaultVersioning.id;
} }
const datasource = getDatasourceFor(datasourceName); const datasource = getDatasourceFor(datasourceName);
// istanbul ignore if: wrong regex manager config? // istanbul ignore if: wrong regex manager config?
if (!datasource) { if (!datasource) {
logger.warn({ datasourceName }, 'Missing datasource!'); logger.warn({ datasourceName }, 'Missing datasource!');
} }
return datasource?.defaultVersioning ?? 'semver'; return datasource?.defaultVersioning ?? defaultVersioning.id;
} }
function applyReplacements( function applyReplacements(

View file

@ -1,9 +1,12 @@
import versionings from './api'; import versionings from './api';
import { Versioning } from './schema'; import { Versioning } from './schema';
import * as semverCoerced from './semver-coerced';
import type { VersioningApi, VersioningApiConstructor } from './types'; import type { VersioningApi, VersioningApiConstructor } from './types';
export * from './types'; export * from './types';
export const defaultVersioning = semverCoerced;
export const getVersioningList = (): string[] => Array.from(versionings.keys()); export const getVersioningList = (): string[] => Array.from(versionings.keys());
/** /**
* Get versioning map. Can be used to dynamically add new versioning type * Get versioning map. Can be used to dynamically add new versioning type