Skip to content

Commit

Permalink
refactor: artifactUpdateApproach -> skipInstalls
Browse files Browse the repository at this point in the history
Roll back the previous refactor.
  • Loading branch information
rarkins committed Apr 22, 2021
1 parent 5e3806f commit 572749a
Show file tree
Hide file tree
Showing 14 changed files with 64 additions and 64 deletions.
14 changes: 7 additions & 7 deletions docs/usage/self-hosted-configuration.md
Expand Up @@ -28,7 +28,7 @@ module.exports = {

In the `renovate.json` file, define the commands and files to be included in the final commit.

The command to install dependencies (`npm ci --ignore-scripts`) is necessary because, by default, the installation of dependencies is skipped (see the `artifactUpdateApproach` admin option).
The command to install dependencies (`npm ci --ignore-scripts`) is necessary because, by default, the installation of dependencies is skipped (see the `skipInstalls` admin option).

```json
{
Expand Down Expand Up @@ -69,12 +69,6 @@ e.g.
}
```

## artifactUpdateApproach

By default, Renovate will use the most efficient approach to updating package files and lock files, which in most cases skips the need to perform a full module install by the bot.
If this is set to 'deep', then a full install of modules will be done.
This is currently applicable to `npm` and `yarn` only, and automatically set to `deep` when a full install is detected as necessary.

## autodiscover

When you enable `autodiscover`, by default, Renovate will run on _every_ repository that the bot account can access.
Expand Down Expand Up @@ -372,6 +366,12 @@ It could then be used in a repository config or preset like so:

Secret names must start with a upper or lower case character and can contain only characters, digits, or underscores.

## skipInstalls

By default, Renovate will use the most efficient approach to updating package files and lock files, which in most cases skips the need to perform a full module install by the bot.
If this is set to false, then a full install of modules will be done.
This is currently applicable to `npm` and `lerna`/`npm` only, and only used in cases where bugs in `npm` result in incorrect lock files being updated.

## token

## username
2 changes: 0 additions & 2 deletions lib/config/__snapshots__/migration.spec.ts.snap
Expand Up @@ -80,7 +80,6 @@ Object {
"additionalBranchPrefix": "{{parentDir}}-",
"allowCustomCrateRegistries": true,
"allowScripts": true,
"artifactUpdateApproach": "shallow",
"autodiscover": true,
"automerge": false,
"automergeType": "branch",
Expand Down Expand Up @@ -175,7 +174,6 @@ Object {
"versioning": "maven",
},
Object {
"artifactUpdateApproach": "deep",
"matchDepTypes": Array [
"peerDependencies",
],
Expand Down
9 changes: 4 additions & 5 deletions lib/config/definitions.ts
Expand Up @@ -556,12 +556,11 @@ const options: RenovateOptions[] = [
type: 'boolean',
},
{
name: 'artifactUpdateApproach',
name: 'skipInstalls',
description:
'Whether to employ a deep or shallow approach to artifact updating.',
type: 'string',
allowedValues: ['auto', 'deep', 'shallow'],
default: 'auto',
'Skip installing modules/dependencies if lock file updating is possible alone.',
type: 'boolean',
default: null,
admin: true,
},
{
Expand Down
2 changes: 0 additions & 2 deletions lib/config/migration.spec.ts
Expand Up @@ -53,7 +53,6 @@ describe(getName(__filename), () => {
binarySource: 'auto',
automergeMinor: true,
automergePatch: true,
skipInstalls: true,
masterIssue: 'true',
masterIssueTitle: 'foo',
gomodTidy: true,
Expand Down Expand Up @@ -97,7 +96,6 @@ describe(getName(__filename), () => {
],
peerDependencies: {
versionStrategy: 'widen',
skipInstalls: false,
},
packageRules: [
{
Expand Down
7 changes: 0 additions & 7 deletions lib/config/migration.ts
Expand Up @@ -172,13 +172,6 @@ export function migrateConfig(
migratedConfig[key] = val.replace(/{{depNameShort}}/g, '{{depName}}');
} else if (key === 'gitFs') {
delete migratedConfig.gitFs;
} else if (key === 'skipInstalls') {
delete migratedConfig.skipInstalls;
if (val) {
migratedConfig.artifactUpdateApproach = 'shallow';
} else {
migratedConfig.artifactUpdateApproach = 'deep';
}
} else if (key === 'rebaseStalePrs') {
delete migratedConfig.rebaseStalePrs;
if (!migratedConfig.rebaseWhen) {
Expand Down
28 changes: 14 additions & 14 deletions lib/manager/npm/extract/__snapshots__/index.spec.ts.snap
Expand Up @@ -14,7 +14,6 @@ Object {
"lernaClient": undefined,
"lernaPackages": undefined,
"managerData": Object {
"hasFileRefs": false,
"lernaJsonFile": undefined,
},
"npmLock": undefined,
Expand All @@ -23,6 +22,7 @@ Object {
"packageJsonName": undefined,
"packageJsonType": "app",
"pnpmShrinkwrap": undefined,
"skipInstalls": true,
"yarnLock": undefined,
"yarnWorkspacesPackages": undefined,
"yarnrc": undefined,
Expand Down Expand Up @@ -137,7 +137,6 @@ Object {
"lernaClient": undefined,
"lernaPackages": undefined,
"managerData": Object {
"hasFileRefs": true,
"lernaJsonFile": undefined,
},
"npmLock": undefined,
Expand All @@ -146,6 +145,7 @@ Object {
"packageJsonName": undefined,
"packageJsonType": "library",
"pnpmShrinkwrap": undefined,
"skipInstalls": false,
"yarnLock": undefined,
"yarnWorkspacesPackages": undefined,
"yarnrc": undefined,
Expand Down Expand Up @@ -300,7 +300,6 @@ Object {
"lernaClient": undefined,
"lernaPackages": undefined,
"managerData": Object {
"hasFileRefs": false,
"lernaJsonFile": undefined,
},
"npmLock": undefined,
Expand All @@ -309,6 +308,7 @@ Object {
"packageJsonName": undefined,
"packageJsonType": "app",
"pnpmShrinkwrap": undefined,
"skipInstalls": true,
"yarnLock": undefined,
"yarnWorkspacesPackages": undefined,
"yarnrc": undefined,
Expand Down Expand Up @@ -349,7 +349,6 @@ Object {
"lernaClient": undefined,
"lernaPackages": undefined,
"managerData": Object {
"hasFileRefs": false,
"lernaJsonFile": undefined,
},
"npmLock": undefined,
Expand All @@ -358,6 +357,7 @@ Object {
"packageJsonName": undefined,
"packageJsonType": "app",
"pnpmShrinkwrap": undefined,
"skipInstalls": true,
"yarnLock": undefined,
"yarnWorkspacesPackages": undefined,
"yarnrc": undefined,
Expand Down Expand Up @@ -409,7 +409,6 @@ Object {
"lernaClient": undefined,
"lernaPackages": undefined,
"managerData": Object {
"hasFileRefs": false,
"lernaJsonFile": undefined,
},
"npmLock": undefined,
Expand All @@ -418,6 +417,7 @@ Object {
"packageJsonName": undefined,
"packageJsonType": "library",
"pnpmShrinkwrap": undefined,
"skipInstalls": true,
"yarnLock": undefined,
"yarnWorkspacesPackages": undefined,
"yarnrc": undefined,
Expand Down Expand Up @@ -463,7 +463,6 @@ Object {
"lernaClient": undefined,
"lernaPackages": undefined,
"managerData": Object {
"hasFileRefs": false,
"lernaJsonFile": undefined,
},
"npmLock": undefined,
Expand All @@ -472,6 +471,7 @@ Object {
"packageJsonName": undefined,
"packageJsonType": "library",
"pnpmShrinkwrap": undefined,
"skipInstalls": true,
"yarnLock": undefined,
"yarnWorkspacesPackages": undefined,
"yarnrc": undefined,
Expand Down Expand Up @@ -599,7 +599,6 @@ Object {
"lernaClient": "npm",
"lernaPackages": undefined,
"managerData": Object {
"hasFileRefs": false,
"lernaJsonFile": "lerna.json",
},
"npmLock": undefined,
Expand All @@ -608,6 +607,7 @@ Object {
"packageJsonName": "renovate",
"packageJsonType": "app",
"pnpmShrinkwrap": undefined,
"skipInstalls": true,
"yarnLock": undefined,
"yarnWorkspacesPackages": undefined,
"yarnrc": undefined,
Expand Down Expand Up @@ -735,7 +735,6 @@ Object {
"lernaClient": "yarn",
"lernaPackages": undefined,
"managerData": Object {
"hasFileRefs": false,
"lernaJsonFile": "lerna.json",
},
"npmLock": undefined,
Expand All @@ -744,6 +743,7 @@ Object {
"packageJsonName": "renovate",
"packageJsonType": "app",
"pnpmShrinkwrap": undefined,
"skipInstalls": true,
"yarnLock": undefined,
"yarnWorkspacesPackages": undefined,
"yarnrc": undefined,
Expand Down Expand Up @@ -871,7 +871,6 @@ Object {
"lernaClient": undefined,
"lernaPackages": undefined,
"managerData": Object {
"hasFileRefs": false,
"lernaJsonFile": undefined,
},
"npmLock": undefined,
Expand All @@ -880,6 +879,7 @@ Object {
"packageJsonName": "renovate",
"packageJsonType": "app",
"pnpmShrinkwrap": undefined,
"skipInstalls": true,
"yarnLock": "yarn.lock",
"yarnWorkspacesPackages": undefined,
"yarnrc": undefined,
Expand All @@ -893,7 +893,6 @@ Object {
"lernaClient": "npm",
"lernaPackages": undefined,
"managerData": Object {
"hasFileRefs": false,
"lernaJsonFile": "lerna.json",
},
"npmLock": undefined,
Expand All @@ -902,6 +901,7 @@ Object {
"packageJsonName": "@a/b",
"packageJsonType": "app",
"pnpmShrinkwrap": undefined,
"skipInstalls": true,
"yarnLock": undefined,
"yarnWorkspacesPackages": Array [
"packages/*",
Expand Down Expand Up @@ -1031,7 +1031,6 @@ Object {
"lernaClient": "npm",
"lernaPackages": undefined,
"managerData": Object {
"hasFileRefs": false,
"lernaJsonFile": "lerna.json",
},
"npmLock": undefined,
Expand All @@ -1040,6 +1039,7 @@ Object {
"packageJsonName": "renovate",
"packageJsonType": "app",
"pnpmShrinkwrap": undefined,
"skipInstalls": true,
"yarnLock": undefined,
"yarnWorkspacesPackages": undefined,
"yarnrc": undefined,
Expand All @@ -1053,7 +1053,6 @@ Object {
"lernaClient": "npm",
"lernaPackages": undefined,
"managerData": Object {
"hasFileRefs": false,
"lernaJsonFile": "lerna.json",
},
"npmLock": undefined,
Expand All @@ -1062,6 +1061,7 @@ Object {
"packageJsonName": "@a/b",
"packageJsonType": "app",
"pnpmShrinkwrap": undefined,
"skipInstalls": true,
"yarnLock": undefined,
"yarnWorkspacesPackages": Array [
"packages/*",
Expand All @@ -1077,7 +1077,6 @@ Object {
"lernaClient": undefined,
"lernaPackages": undefined,
"managerData": Object {
"hasFileRefs": false,
"lernaJsonFile": undefined,
},
"npmLock": undefined,
Expand All @@ -1086,6 +1085,7 @@ Object {
"packageJsonName": "@a/b",
"packageJsonType": "app",
"pnpmShrinkwrap": undefined,
"skipInstalls": true,
"yarnLock": undefined,
"yarnWorkspacesPackages": Array [
"packages/*",
Expand Down Expand Up @@ -1215,7 +1215,6 @@ Object {
"lernaClient": undefined,
"lernaPackages": undefined,
"managerData": Object {
"hasFileRefs": false,
"lernaJsonFile": undefined,
},
"npmLock": undefined,
Expand All @@ -1224,6 +1223,7 @@ Object {
"packageJsonName": "renovate",
"packageJsonType": "app",
"pnpmShrinkwrap": undefined,
"skipInstalls": true,
"yarnLock": undefined,
"yarnWorkspacesPackages": undefined,
"yarnrc": undefined,
Expand Down
19 changes: 14 additions & 5 deletions lib/manager/npm/extract/index.ts
Expand Up @@ -237,10 +237,6 @@ export async function extractPackageFile(
}
if (dep.currentValue.startsWith('file:')) {
dep.skipReason = SkipReason.File;
// https://github.com/npm/cli/issues/1432
// Explanation:
// - npm install --package-lock-only is buggy for transitive deps in file: references
// - So we set artifactUpdateApproach to false if file: refs are found *and* the user hasn't explicitly set the value already
hasFileRefs = true;
return dep;
}
Expand Down Expand Up @@ -347,6 +343,19 @@ export async function extractPackageFile(
return null;
}
}
let skipInstalls = config.skipInstalls;
if (skipInstalls === null) {
if (hasFileRefs) {
// https://github.com/npm/cli/issues/1432
// Explanation:
// - npm install --package-lock-only is buggy for transitive deps in file: references
// - So we set skipInstalls to false if file: refs are found *and* the user hasn't explicitly set the value already
logger.debug('Automatically setting skipInstalls to false');
skipInstalls = false;
} else {
skipInstalls = true;
}
}

return {
deps,
Expand All @@ -357,11 +366,11 @@ export async function extractPackageFile(
yarnrc,
...lockFiles,
managerData: {
hasFileRefs,
lernaJsonFile,
},
lernaClient,
lernaPackages,
skipInstalls,
yarnWorkspacesPackages,
constraints,
};
Expand Down
8 changes: 4 additions & 4 deletions lib/manager/npm/post-update/lerna.spec.ts
Expand Up @@ -47,26 +47,26 @@ describe(getName(__filename), () => {
});
it('generates package-lock.json files', async () => {
const execSnapshots = mockExecAll(exec);
const artifactUpdateApproach = 'shallow';
const skipInstalls = true;
const res = await lernaHelper.generateLockFiles(
lernaPkgFile('npm'),
'some-dir',
{},
{},
artifactUpdateApproach
skipInstalls
);
expect(res.error).toBe(false);
expect(execSnapshots).toMatchSnapshot();
});
it('performs full npm install', async () => {
const execSnapshots = mockExecAll(exec);
const artifactUpdateApproach = 'deep';
const skipInstalls = false;
const res = await lernaHelper.generateLockFiles(
lernaPkgFile('npm'),
'some-dir',
{},
{},
artifactUpdateApproach
skipInstalls
);
expect(res.error).toBe(false);
expect(execSnapshots).toMatchSnapshot();
Expand Down

0 comments on commit 572749a

Please sign in to comment.