diff --git a/lib/datasource/crate/index.ts b/lib/datasource/crate/index.ts index 807a28c0f0196d99c07f01f8fa99040e4adf822e..19d55fcc2d058731208f909b162bf3c13252af94 100644 --- a/lib/datasource/crate/index.ts +++ b/lib/datasource/crate/index.ts @@ -7,10 +7,12 @@ import * as memCache from '../../util/cache/memory'; import * as packageCache from '../../util/cache/package'; import { privateCacheDir, readFile } from '../../util/fs'; import { Http } from '../../util/http'; +import * as cargoVersioning from '../../versioning/cargo'; import { GetReleasesConfig, Release, ReleaseResult } from '../common'; export const id = 'crate'; export const defaultRegistryUrls = ['https://crates.io']; +export const defaultVersioning = cargoVersioning.id; export const registryStrategy = 'first'; const http = new Http(id); diff --git a/lib/datasource/docker/index.ts b/lib/datasource/docker/index.ts index a0b85421e7ada061e4e05db99cfdf2be9e8e13ed..5f77fc0fc924f20ffedf177201ba1ad258e333c9 100644 --- a/lib/datasource/docker/index.ts +++ b/lib/datasource/docker/index.ts @@ -11,6 +11,7 @@ import { ExternalHostError } from '../../types/errors/external-host-error'; import * as packageCache from '../../util/cache/package'; import * as hostRules from '../../util/host-rules'; import { Http, HttpResponse } from '../../util/http'; +import * as dockerVersioning from '../../versioning/docker'; import { GetReleasesConfig, ReleaseResult } from '../common'; // TODO: add got typings when available @@ -18,6 +19,7 @@ import { GetReleasesConfig, ReleaseResult } from '../common'; export const id = 'docker'; export const defaultRegistryUrls = ['https://index.docker.io']; +export const defaultVersioning = dockerVersioning.id; export const registryStrategy = 'first'; export const defaultConfig = { diff --git a/lib/datasource/gradle-version/index.ts b/lib/datasource/gradle-version/index.ts index 2492dbf3486ed7bacee92f9d4199f33da5f71ece..346231f12cb2ae8c22d547fd2c40e7ec8307c2f8 100644 --- a/lib/datasource/gradle-version/index.ts +++ b/lib/datasource/gradle-version/index.ts @@ -1,10 +1,12 @@ import { ExternalHostError } from '../../types/errors/external-host-error'; import { Http } from '../../util/http'; import { regEx } from '../../util/regex'; +import * as gradleVersioning from '../../versioning/gradle'; import { GetReleasesConfig, ReleaseResult } from '../common'; export const id = 'gradle-version'; export const defaultRegistryUrls = ['https://services.gradle.org/versions/all']; +export const defaultVersioning = gradleVersioning.id; export const registryStrategy = 'merge'; const http = new Http(id); diff --git a/lib/datasource/hex/index.ts b/lib/datasource/hex/index.ts index 530740f49cab932bf9541cc9b309c8554458758a..55f102fa4e7a5ff19f94ba0859ce3789bb843aad 100644 --- a/lib/datasource/hex/index.ts +++ b/lib/datasource/hex/index.ts @@ -1,9 +1,11 @@ import { logger } from '../../logger'; import { ExternalHostError } from '../../types/errors/external-host-error'; import { Http } from '../../util/http'; +import * as hexVersioning from '../../versioning/hex'; import { GetReleasesConfig, ReleaseResult } from '../common'; export const id = 'hex'; +export const defaultVersioning = hexVersioning.id; const http = new Http(id); diff --git a/lib/datasource/maven/index.ts b/lib/datasource/maven/index.ts index 9ef3ea4c20a6926c42ea25a878ae9482e6cfd510..ff97ff8d33557dbc1f20f0f8eea19975a33543a1 100644 --- a/lib/datasource/maven/index.ts +++ b/lib/datasource/maven/index.ts @@ -5,6 +5,7 @@ import { XmlDocument } from 'xmldoc'; import { logger } from '../../logger'; import * as packageCache from '../../util/cache/package'; import mavenVersion from '../../versioning/maven'; +import * as mavenVersioning from '../../versioning/maven'; import { compare } from '../../versioning/maven/compare'; import { GetReleasesConfig, Release, ReleaseResult } from '../common'; import { MAVEN_REPO } from './common'; @@ -13,6 +14,7 @@ import { downloadHttpProtocol, isHttpResourceExists } from './util'; export { id } from './common'; export const defaultRegistryUrls = [MAVEN_REPO]; +export const defaultVersioning = mavenVersioning.id; export const registryStrategy = 'merge'; function containsPlaceholder(str: string): boolean { diff --git a/lib/datasource/npm/index.ts b/lib/datasource/npm/index.ts index d0c7d10a70fed9698f6e18f90a5c3897b244d956..673b2843cd445d8255bc7b1cda8d7d498072a7d3 100644 --- a/lib/datasource/npm/index.ts +++ b/lib/datasource/npm/index.ts @@ -1,4 +1,7 @@ +import * as npmVersioning from '../../versioning/npm'; + export { resetMemCache, resetCache } from './get'; export { getReleases } from './releases'; export { getNpmrc, setNpmrc } from './npmrc'; export { id } from './common'; +export const defaultVersioning = npmVersioning.id; diff --git a/lib/datasource/nuget/index.ts b/lib/datasource/nuget/index.ts index 3d90c560ca5cd84c1eb291dd8504865420ed504d..ce6dbed0e29affbfc4e5930a18a7b67ef73c046e 100644 --- a/lib/datasource/nuget/index.ts +++ b/lib/datasource/nuget/index.ts @@ -1,5 +1,6 @@ import urlApi from 'url'; import { logger } from '../../logger'; +import * as nugetVersioning from '../../versioning/nuget'; import { GetReleasesConfig, ReleaseResult } from '../common'; import * as v2 from './v2'; import * as v3 from './v3'; @@ -7,6 +8,7 @@ import * as v3 from './v3'; export { id } from './common'; export const defaultRegistryUrls = [v3.getDefaultFeed()]; +export const defaultVersioning = nugetVersioning.id; export const registryStrategy = 'merge'; function parseRegistryUrl( diff --git a/lib/datasource/packagist/index.ts b/lib/datasource/packagist/index.ts index 175914a9c69d180288f1f7f3b9f3c7899acf514d..b673ac994b44f14ce6466da383520976cfaefe50 100644 --- a/lib/datasource/packagist/index.ts +++ b/lib/datasource/packagist/index.ts @@ -7,10 +7,12 @@ import * as memCache from '../../util/cache/memory'; import * as packageCache from '../../util/cache/package'; import * as hostRules from '../../util/host-rules'; import { Http, HttpOptions } from '../../util/http'; +import * as composerVersioning from '../../versioning/composer'; import { GetReleasesConfig, ReleaseResult } from '../common'; export const id = 'packagist'; export const defaultRegistryUrls = ['https://packagist.org']; +export const defaultVersioning = composerVersioning.id; export const registryStrategy = 'hunt'; const http = new Http(id); diff --git a/lib/datasource/pypi/index.ts b/lib/datasource/pypi/index.ts index 19bee498cf3445b956f88a81cafe29a05a2aef80..4e60a1b72026f2854c06f9fd0ca1e22030818e2b 100644 --- a/lib/datasource/pypi/index.ts +++ b/lib/datasource/pypi/index.ts @@ -4,7 +4,6 @@ import { logger } from '../../logger'; import { parse } from '../../util/html'; import { Http } from '../../util/http'; import { ensureTrailingSlash } from '../../util/url'; -import { matches } from '../../versioning/pep440'; import * as pep440 from '../../versioning/pep440'; import { GetReleasesConfig, Release, ReleaseResult } from '../common'; @@ -12,6 +11,7 @@ export const id = 'pypi'; export const defaultRegistryUrls = [ process.env.PIP_INDEX_URL || 'https://pypi.org/pypi/', ]; +export const defaultVersioning = pep440.id; export const registryStrategy = 'merge'; const githubRepoPattern = /^https?:\/\/github\.com\/[^\\/]+\/[^\\/]+$/; @@ -50,7 +50,7 @@ function compatibleVersions( if (!release.requires_python) { return true; } - return matches(constraints.python, release.requires_python); + return pep440.matches(constraints.python, release.requires_python); }) ); } diff --git a/lib/datasource/ruby-version/__snapshots__/index.spec.ts.snap b/lib/datasource/ruby-version/__snapshots__/index.spec.ts.snap index 892c5e38502a825ee52889a9fc084c1e62527dea..7ee07cfb1b4fdc37762a3bbc0cd29393dd9baa50 100644 --- a/lib/datasource/ruby-version/__snapshots__/index.spec.ts.snap +++ b/lib/datasource/ruby-version/__snapshots__/index.spec.ts.snap @@ -74,6 +74,11 @@ Object { "releaseTimestamp": "2007-03-12", "version": "1.8.6", }, + Object { + "changelogUrl": "https://www.ruby-lang.org/en/news/2008/08/11/ruby-1-8-7-p72-and-1-8-6-p287-released/", + "releaseTimestamp": "2008-08-11", + "version": "1.8.7-p72", + }, Object { "changelogUrl": "https://www.ruby-lang.org/en/news/2009/04/18/ruby-1-8-7-p160-and-1-8-6-p368-released/", "releaseTimestamp": "2009-04-18", @@ -114,11 +119,6 @@ Object { "releaseTimestamp": "2013-06-27", "version": "1.8.7-p374", }, - Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2008/08/11/ruby-1-8-7-p72-and-1-8-6-p287-released/", - "releaseTimestamp": "2008-08-11", - "version": "1.8.7-p72", - }, Object { "changelogUrl": "https://www.ruby-lang.org/en/news/2008/05/31/ruby-1-8-7-has-been-released/", "releaseTimestamp": "2008-05-31", diff --git a/lib/datasource/ruby-version/index.ts b/lib/datasource/ruby-version/index.ts index 8f14c5054e1d26bebf3b4b219a98f136b58b3772..53852ebd4d4ff1dfbecc7b43d98b50ffbafc16e0 100644 --- a/lib/datasource/ruby-version/index.ts +++ b/lib/datasource/ruby-version/index.ts @@ -2,10 +2,11 @@ import { ExternalHostError } from '../../types/errors/external-host-error'; import * as packageCache from '../../util/cache/package'; import { parse } from '../../util/html'; import { Http } from '../../util/http'; -import { isVersion } from '../../versioning/ruby'; +import { isVersion, id as rubyVersioningId } from '../../versioning/ruby'; import { GetReleasesConfig, ReleaseResult } from '../common'; export const id = 'ruby-version'; +export const defaultVersioning = rubyVersioningId; const http = new Http(id); diff --git a/lib/datasource/rubygems/index.ts b/lib/datasource/rubygems/index.ts index 336ffdae7c8a1e263b26595ab00704b49d2851cc..f0af4c8b625e4ff09c99612c44bd7dea57294931 100644 --- a/lib/datasource/rubygems/index.ts +++ b/lib/datasource/rubygems/index.ts @@ -1,4 +1,7 @@ +import * as rubyVersioning from '../../versioning/ruby'; + export { getReleases } from './releases'; export { id } from './common'; export const defaultRegistryUrls = ['https://rubygems.org']; +export const defaultVersioning = rubyVersioning.id; export const registryStrategy = 'hunt'; diff --git a/lib/datasource/sbt-package/index.ts b/lib/datasource/sbt-package/index.ts index 37f0144404afdc70ac137b1d330c5ec33eaa9f6c..eaf84a511ebfc304ba2cb9475e5637914d05e48e 100644 --- a/lib/datasource/sbt-package/index.ts +++ b/lib/datasource/sbt-package/index.ts @@ -1,5 +1,6 @@ import { XmlDocument } from 'xmldoc'; import { logger } from '../../logger'; +import * as ivyVersioning from '../../versioning/ivy'; import { compare } from '../../versioning/maven/compare'; import { GetReleasesConfig, ReleaseResult } from '../common'; import { MAVEN_REPO } from '../maven/common'; @@ -7,8 +8,8 @@ import { downloadHttpProtocol } from '../maven/util'; import { parseIndexDir } from '../sbt-plugin/util'; export const id = 'sbt-package'; - export const defaultRegistryUrls = [MAVEN_REPO]; +export const defaultVersioning = ivyVersioning.id; export const registryStrategy = 'hunt'; const ensureTrailingSlash = (str: string): string => str.replace(/\/?$/, '/'); diff --git a/lib/datasource/sbt-plugin/index.ts b/lib/datasource/sbt-plugin/index.ts index ac2b4579877c9906fa3b450ae0cd0796392e678e..e7920f037d28f59263e7e3751dd61f98e737a2e4 100644 --- a/lib/datasource/sbt-plugin/index.ts +++ b/lib/datasource/sbt-plugin/index.ts @@ -1,4 +1,5 @@ import { logger } from '../../logger'; +import * as ivyVersioning from '../../versioning/ivy'; import { compare } from '../../versioning/maven/compare'; import { GetReleasesConfig, ReleaseResult } from '../common'; import { downloadHttpProtocol } from '../maven/util'; @@ -11,8 +12,8 @@ import { import { SBT_PLUGINS_REPO, parseIndexDir } from './util'; export const id = 'sbt-plugin'; - export const defaultRegistryUrls = [SBT_PLUGINS_REPO]; +export const defaultVersioning = ivyVersioning.id; export const registryStrategy = 'hunt'; const ensureTrailingSlash = (str: string): string => str.replace(/\/?$/, '/'); diff --git a/lib/datasource/terraform-module/index.ts b/lib/datasource/terraform-module/index.ts index c4a866a686cea60687b57b08dd1e71f54c2ddc59..df7e5c5d3cea09f5ce2ce12c52cc180ab9ef05b0 100644 --- a/lib/datasource/terraform-module/index.ts +++ b/lib/datasource/terraform-module/index.ts @@ -2,10 +2,12 @@ import { logger } from '../../logger'; import { ExternalHostError } from '../../types/errors/external-host-error'; import * as packageCache from '../../util/cache/package'; import { Http } from '../../util/http'; +import * as hashicorpVersioning from '../../versioning/hashicorp'; import { GetReleasesConfig, ReleaseResult } from '../common'; export const id = 'terraform-module'; export const defaultRegistryUrls = ['https://registry.terraform.io']; +export const defaultVersioning = hashicorpVersioning.id; export const registryStrategy = 'first'; const http = new Http(id); diff --git a/lib/datasource/terraform-provider/index.ts b/lib/datasource/terraform-provider/index.ts index 5a9b7fe1b2cc4691972f749e4a7b95456684b45b..c41de0dfef43a9386d94ecf202ccdf19060c3a13 100644 --- a/lib/datasource/terraform-provider/index.ts +++ b/lib/datasource/terraform-provider/index.ts @@ -2,6 +2,7 @@ import URL from 'url'; import { logger } from '../../logger'; import * as packageCache from '../../util/cache/package'; import { Http } from '../../util/http'; +import * as hashicorpVersioning from '../../versioning/hashicorp'; import { GetReleasesConfig, ReleaseResult } from '../common'; import { getTerraformServiceDiscoveryResult } from '../terraform-module'; @@ -10,6 +11,7 @@ export const defaultRegistryUrls = [ 'https://registry.terraform.io', 'https://releases.hashicorp.com', ]; +export const defaultVersioning = hashicorpVersioning.id; export const registryStrategy = 'hunt'; const http = new Http(id);