diff --git a/lib/config/definitions.js b/lib/config/definitions.js
index 57d7560816a77b2bc1b8c88a93f1cea5ce898c50..7600539e494ce4c14881c4a5b154a76ad27daf9d 100644
--- a/lib/config/definitions.js
+++ b/lib/config/definitions.js
@@ -30,6 +30,7 @@ const options = [
     name: 'description',
     description: 'Plain text description for a config or preset',
     type: 'list',
+    stage: 'repository',
     allowString: true,
     mergeable: true,
     cli: false,
@@ -221,7 +222,7 @@ const options = [
   {
     name: 'ignoreNpmrcFile',
     description: 'Whether to ignore any .npmrc file found in repository',
-    stage: 'packageFile',
+    stage: 'package',
     type: 'boolean',
     default: false,
   },
@@ -244,6 +245,7 @@ const options = [
     description:
       'An array of one or more custom base branches to be renovated. If left empty, the default branch will be renovate',
     type: 'list',
+    stage: 'package',
     cli: false,
     env: false,
   },
@@ -293,7 +295,7 @@ const options = [
   {
     name: 'engines',
     description: 'Configuration specifically for `package.json`>`engines`',
-    stage: 'packageFile',
+    stage: 'package',
     type: 'json',
     default: {},
     mergeable: true,
@@ -304,14 +306,14 @@ const options = [
     name: 'ignoreDeps',
     description: 'Dependencies to ignore',
     type: 'list',
-    stage: 'depType',
+    stage: 'package',
     mergeable: true,
   },
   {
     name: 'packageRules',
     description: 'Rules for matching package names',
     type: 'list',
-    stage: 'depType',
+    stage: 'package',
     mergeable: true,
     cli: false,
     env: false,
@@ -322,8 +324,8 @@ const options = [
       'List of depTypes to match (e.g. [`peerDependencies`]). Valid only within `packageRules` object',
     type: 'list',
     allowString: true,
-    stage: 'depType',
     parent: 'packageRules',
+    stage: 'package',
     mergeable: true,
     cli: false,
     env: false,
@@ -334,7 +336,7 @@ const options = [
       'Package names to match. Valid only within `packageRules` object',
     type: 'list',
     allowString: true,
-    stage: 'depType',
+    stage: 'package',
     parent: 'packageRules',
     mergeable: true,
     cli: false,
@@ -346,7 +348,7 @@ const options = [
       'Package names to exclude. Valid only within `packageRules` object',
     type: 'list',
     allowString: true,
-    stage: 'depType',
+    stage: 'package',
     parent: 'packageRules',
     mergeable: true,
     cli: false,
@@ -358,7 +360,7 @@ const options = [
       'Package name patterns to match. Valid only within `packageRules` object.',
     type: 'list',
     allowString: true,
-    stage: 'depType',
+    stage: 'package',
     parent: 'packageRules',
     mergeable: true,
     cli: false,
@@ -370,7 +372,7 @@ const options = [
       'Package name patterns to exclude. Valid only within `packageRules` object.',
     type: 'list',
     allowString: true,
-    stage: 'depType',
+    stage: 'package',
     parent: 'packageRules',
     mergeable: true,
     cli: false,
@@ -381,7 +383,7 @@ const options = [
     description:
       'A version or version range to match against the current version of a package. Valid only within `packageRules` object',
     type: 'string',
-    stage: 'depType',
+    stage: 'package',
     parent: 'packageRules',
     mergeable: true,
     cli: false,
@@ -739,7 +741,7 @@ const options = [
   {
     name: 'lockFileMaintenance',
     description: 'Configuration for lock file maintenance',
-    stage: 'packageFile',
+    stage: 'branch',
     type: 'json',
     default: {
       enabled: false,
@@ -813,6 +815,7 @@ const options = [
     name: 'fileMatch',
     description: 'JS RegExp pattern for matching manager files',
     type: 'list',
+    stage: 'repository',
     allowString: true,
     mergeable: true,
     cli: false,
@@ -821,7 +824,7 @@ const options = [
   {
     name: 'npm',
     description: 'Configuration object for npm package.json renovation',
-    stage: 'repository',
+    stage: 'package',
     type: 'json',
     default: {
       fileMatch: ['(^|/)package.json$'],
@@ -831,7 +834,7 @@ const options = [
   {
     name: 'meteor',
     description: 'Configuration object for meteor package.js renovation',
-    stage: 'repository',
+    stage: 'package',
     type: 'json',
     default: {
       fileMatch: ['(^|/)package.js$'],
@@ -841,7 +844,7 @@ const options = [
   {
     name: 'bazel',
     description: 'Configuration object for bazel WORKSPACE renovation',
-    stage: 'repository',
+    stage: 'package',
     type: 'json',
     default: {
       fileMatch: ['(^|/)WORKSPACE$'],
@@ -851,7 +854,7 @@ const options = [
   {
     name: 'buildkite',
     description: 'Configuration object for buildkite pipeline renovation',
-    stage: 'repository',
+    stage: 'package',
     type: 'json',
     default: {
       fileMatch: ['\\.buildkite/.+\\.yml$'],
@@ -867,12 +870,13 @@ const options = [
     description:
       'Dependency support policy, e.g. used for LTS vs non-LTS etc (node-only)',
     type: 'list',
+    stage: 'package',
     allowString: true,
   },
   {
     name: 'node',
     description: 'Configuration object for node version renovation',
-    stage: 'repository',
+    stage: 'package',
     type: 'json',
     default: {
       groupName: 'Node.js',
@@ -887,7 +891,7 @@ const options = [
   {
     name: 'travis',
     description: 'Configuration object for .travis.yml node version renovation',
-    stage: 'repository',
+    stage: 'package',
     type: 'json',
     default: {
       enabled: false,
@@ -899,7 +903,7 @@ const options = [
   {
     name: 'nvm',
     description: 'Configuration object for .nvmrc files',
-    state: 'repository',
+    stage: 'package',
     type: 'json',
     default: {
       fileMatch: ['^.nvmrc$'],
@@ -910,7 +914,7 @@ const options = [
   {
     name: 'docker',
     description: 'Configuration object for Dockerfile renovation',
-    stage: 'repository',
+    stage: 'package',
     type: 'json',
     default: {
       fileMatch: ['(^|/)Dockerfile$'],
@@ -950,7 +954,7 @@ const options = [
     name: 'docker-compose',
     description:
       'Configuration object for Docker Compose renovation. Also inherits settings from `docker` object.',
-    stage: 'repository',
+    stage: 'package',
     type: 'json',
     default: {
       fileMatch: ['(^|/)docker-compose[^/]*\\.ya?ml$'],
@@ -962,7 +966,7 @@ const options = [
     name: 'circleci',
     description:
       'Configuration object for CircleCI yml renovation. Also inherits settings from `docker` object.',
-    stage: 'repository',
+    stage: 'package',
     type: 'json',
     default: {
       fileMatch: ['^.circleci/config.yml$'],
@@ -973,7 +977,7 @@ const options = [
   {
     name: 'pip_requirements',
     description: 'Configuration object for requirements.txt files',
-    state: 'repository',
+    stage: 'package',
     type: 'json',
     default: {
       enabled: false,
@@ -985,7 +989,7 @@ const options = [
   {
     name: 'python',
     description: 'Configuration object for python',
-    state: 'repository',
+    stage: 'package',
     type: 'json',
     default: {},
     mergeable: true,
diff --git a/lib/config/index.js b/lib/config/index.js
index 8193d1d920122cb048bab19bcb5afa2d55368306..af3d4e7eb26764a91d7cd16b1342da64d7ea9299 100644
--- a/lib/config/index.js
+++ b/lib/config/index.js
@@ -162,15 +162,7 @@ function mergeChildConfig(parent, child) {
 function filterConfig(inputConfig, targetStage) {
   logger.trace({ config: inputConfig }, `filterConfig('${targetStage}')`);
   const outputConfig = { ...inputConfig };
-  const stages = [
-    'global',
-    'repository',
-    'packageFile',
-    'depType',
-    'package',
-    'branch',
-    'pr',
-  ];
+  const stages = ['global', 'repository', 'package', 'branch', 'pr'];
   const targetIndex = stages.indexOf(targetStage);
   for (const option of definitions.getOptions()) {
     const optionIndex = stages.indexOf(option.stage);
diff --git a/test/workers/package-file/dep-type.spec.js b/test/workers/package-file/dep-type.spec.js
index c92bf6dfdfb5acb76a9371efe3f1612a8d0084b6..0130124be01e4cc5884ad0d09f4ad62b0c661c90 100644
--- a/test/workers/package-file/dep-type.spec.js
+++ b/test/workers/package-file/dep-type.spec.js
@@ -156,7 +156,6 @@ describe('lib/workers/package-file/dep-type', () => {
       const res = depTypeWorker.getDepConfig(depTypeConfig, dep);
       expect(res.x).toBe(2);
       expect(res.y).toBe(2);
-      expect(res.packageRules).toBeUndefined();
     });
     it('applies both rules for b', () => {
       const dep = {
@@ -165,7 +164,6 @@ describe('lib/workers/package-file/dep-type', () => {
       const res = depTypeWorker.getDepConfig(depTypeConfig, dep);
       expect(res.x).toBe(2);
       expect(res.y).toBe(2);
-      expect(res.packageRules).toBeUndefined();
     });
     it('applies the second rule', () => {
       const dep = {
@@ -174,7 +172,6 @@ describe('lib/workers/package-file/dep-type', () => {
       const res = depTypeWorker.getDepConfig(depTypeConfig, dep);
       expect(res.x).toBeUndefined();
       expect(res.y).toBe(2);
-      expect(res.packageRules).toBeUndefined();
     });
     it('applies the second second rule', () => {
       const dep = {
@@ -183,7 +180,6 @@ describe('lib/workers/package-file/dep-type', () => {
       const res = depTypeWorker.getDepConfig(depTypeConfig, dep);
       expect(res.x).toBeUndefined();
       expect(res.y).toBe(2);
-      expect(res.packageRules).toBeUndefined();
     });
     it('excludes package name', () => {
       const dep = {
@@ -192,7 +188,6 @@ describe('lib/workers/package-file/dep-type', () => {
       const res = depTypeWorker.getDepConfig(depTypeConfig, dep);
       expect(res.x).toBeUndefined();
       expect(res.y).toBeUndefined();
-      expect(res.packageRules).toBeUndefined();
     });
     it('excludes package pattern', () => {
       const dep = {
@@ -201,7 +196,6 @@ describe('lib/workers/package-file/dep-type', () => {
       const res = depTypeWorker.getDepConfig(depTypeConfig, dep);
       expect(res.x).toBeUndefined();
       expect(res.y).toBeUndefined();
-      expect(res.packageRules).toBeUndefined();
     });
     it('filters depType', () => {
       const config = {
@@ -219,7 +213,6 @@ describe('lib/workers/package-file/dep-type', () => {
       };
       const res = depTypeWorker.getDepConfig(config, dep);
       expect(res.x).toBe(1);
-      expect(res.packageRules).toBeUndefined();
     });
     it('filters naked depType', () => {
       const config = {
@@ -236,7 +229,6 @@ describe('lib/workers/package-file/dep-type', () => {
       };
       const res = depTypeWorker.getDepConfig(config, dep);
       expect(res.x).toBe(1);
-      expect(res.packageRules).toBeUndefined();
     });
     it('filters depType', () => {
       const config = {
@@ -254,7 +246,6 @@ describe('lib/workers/package-file/dep-type', () => {
       };
       const res = depTypeWorker.getDepConfig(config, dep);
       expect(res.x).toBeUndefined();
-      expect(res.packageRules).toBeUndefined();
     });
     it('checks if matchCurrentVersion selector is valid and satisfies the condition on range overlap', () => {
       const config = {