Skip to content

Commit

Permalink
fix(manager/gradle): ignore catalog deps without version (#11621)
Browse files Browse the repository at this point in the history
* fix(manager/gradle): support catalog modules without version

* fix: more ignorable deps

* chore: fix type

Co-authored-by: Rhys Arkins <rhys@arkins.net>
  • Loading branch information
viceice and rarkins committed Sep 7, 2021
1 parent 1150b8d commit 87d2647
Show file tree
Hide file tree
Showing 6 changed files with 217 additions and 68 deletions.
3 changes: 3 additions & 0 deletions lib/manager/gradle/shallow/__fixtures__/2/libs.versions.toml
Expand Up @@ -7,6 +7,9 @@ okHttp = "com.squareup.okhttp3:okhttp:4.9.0"
okio = { module = "com.squareup.okio:okio", version = "2.8.0" }
picasso = { group = "com.squareup.picasso", name = "picasso", version = "2.5.1" }
retrofit2-retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }
google-firebase-analytics = { module = "com.google.firebase:firebase-analytics" }
google-firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics" }
google-firebase-messaging = "com.google.firebase:firebase-messaging"

[plugins]
kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version = "1.5.21" }
Expand Down
57 changes: 47 additions & 10 deletions lib/manager/gradle/shallow/extract.spec.ts
@@ -1,5 +1,6 @@
import { extractAllPackageFiles } from '..';
import { fs, loadFixture } from '../../../../test/util';
import type { ExtractConfig } from '../../types';

jest.mock('../../../util/fs');

Expand All @@ -24,7 +25,7 @@ describe('manager/gradle/shallow/extract', () => {
'build.gradle': '',
});

const res = await extractAllPackageFiles({} as never, [
const res = await extractAllPackageFiles({} as ExtractConfig, [
'build.gradle',
'gradle.properties',
]);
Expand All @@ -39,7 +40,7 @@ describe('manager/gradle/shallow/extract', () => {
'settings.gradle': null,
});

const res = await extractAllPackageFiles({} as never, [
const res = await extractAllPackageFiles({} as ExtractConfig, [
'build.gradle',
'gradle.properties',
'settings.gradle',
Expand Down Expand Up @@ -75,7 +76,7 @@ describe('manager/gradle/shallow/extract', () => {
'settings.gradle': null,
});

const res = await extractAllPackageFiles({} as never, [
const res = await extractAllPackageFiles({} as ExtractConfig, [
'build.gradle',
'gradle.properties',
'settings.gradle',
Expand Down Expand Up @@ -114,7 +115,7 @@ describe('manager/gradle/shallow/extract', () => {
'settings.gradle': null,
});

const res = await extractAllPackageFiles({} as never, [
const res = await extractAllPackageFiles({} as ExtractConfig, [
'build.gradle',
'gradle.properties',
'settings.gradle',
Expand Down Expand Up @@ -156,7 +157,10 @@ describe('manager/gradle/shallow/extract', () => {

mockFs(fsMock);

const res = await extractAllPackageFiles({} as never, Object.keys(fsMock));
const res = await extractAllPackageFiles(
{} as ExtractConfig,
Object.keys(fsMock)
);

expect(res).toMatchObject([
{ packageFile: 'gradle.properties', deps: [] },
Expand Down Expand Up @@ -187,7 +191,10 @@ describe('manager/gradle/shallow/extract', () => {

mockFs(fsMock);

const res = await extractAllPackageFiles({} as never, Object.keys(fsMock));
const res = await extractAllPackageFiles(
{} as ExtractConfig,
Object.keys(fsMock)
);

expect(res).toMatchObject([
{
Expand Down Expand Up @@ -218,7 +225,10 @@ describe('manager/gradle/shallow/extract', () => {
'gradle/libs.versions.toml': tomlFile,
};
mockFs(fsMock);
const res = await extractAllPackageFiles({} as never, Object.keys(fsMock));
const res = await extractAllPackageFiles(
{} as ExtractConfig,
Object.keys(fsMock)
);
expect(res).toMatchObject([
{
packageFile: 'gradle/libs.versions.toml',
Expand Down Expand Up @@ -302,7 +312,10 @@ describe('manager/gradle/shallow/extract', () => {
'gradle/libs.versions.toml': tomlFile,
};
mockFs(fsMock);
const res = await extractAllPackageFiles({} as never, Object.keys(fsMock));
const res = await extractAllPackageFiles(
{} as ExtractConfig,
Object.keys(fsMock)
);
expect(res).toMatchObject([
{
packageFile: 'gradle/libs.versions.toml',
Expand Down Expand Up @@ -343,6 +356,27 @@ describe('manager/gradle/shallow/extract', () => {
packageFile: 'gradle/libs.versions.toml',
},
},
{
depName: 'google-firebase-analytics',
managerData: {
packageFile: 'gradle/libs.versions.toml',
},
skipReason: 'no-version',
},
{
depName: 'google-firebase-crashlytics',
managerData: {
packageFile: 'gradle/libs.versions.toml',
},
skipReason: 'no-version',
},
{
depName: 'google-firebase-messaging',
managerData: {
packageFile: 'gradle/libs.versions.toml',
},
skipReason: 'no-version',
},
{
depName: 'org.jetbrains.kotlin.jvm',
depType: 'plugin',
Expand All @@ -351,7 +385,7 @@ describe('manager/gradle/shallow/extract', () => {
lookupName:
'org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin',
managerData: {
fileReplacePosition: 415,
fileReplacePosition: 661,
packageFile: 'gradle/libs.versions.toml',
},
registryUrls: [
Expand Down Expand Up @@ -386,7 +420,10 @@ describe('manager/gradle/shallow/extract', () => {
'gradle/libs.versions.toml': tomlFile,
};
mockFs(fsMock);
const res = await extractAllPackageFiles({} as never, Object.keys(fsMock));
const res = await extractAllPackageFiles(
{} as ExtractConfig,
Object.keys(fsMock)
);
expect(res).toBeNull();
});
});
12 changes: 4 additions & 8 deletions lib/manager/gradle/shallow/extract.ts
Expand Up @@ -67,12 +67,8 @@ export async function extractAllPackageFiles(
updateVars(vars);
extractedDeps.push(...deps);
} else if (isTOMLFile(packageFile)) {
try {
const updatesFromCatalog = parseCatalog(packageFile, content);
extractedDeps.push(...updatesFromCatalog);
} catch (error) {
logger.warn({ error }, 'TOML parsing error');
}
const updatesFromCatalog = parseCatalog(packageFile, content);
extractedDeps.push(...updatesFromCatalog);
} else if (isGradleFile(packageFile)) {
const vars = getVars(registry, dir);
const {
Expand All @@ -89,9 +85,9 @@ export async function extractAllPackageFiles(
updateVars(gradleVars);
extractedDeps.push(...deps);
}
} catch (e) {
} catch (err) {
logger.warn(
{ config, packageFile },
{ err, config, packageFile },
`Failed to process Gradle file: ${packageFile}`
);
}
Expand Down

0 comments on commit 87d2647

Please sign in to comment.