diff --git a/docs/deprecations.md b/docs/deprecations.md index 7b936a7c2..0f40fa2f1 100644 --- a/docs/deprecations.md +++ b/docs/deprecations.md @@ -38,6 +38,16 @@ Note: - The `serverless.yml` setting is ineffective for deprecations reported before the configuration is read. - `SLS_DEPRECATION_DISABLE` and `disabledDeprecations` remain respected, and no errors will be thrown for mentioned deprecation codes. +
 
+ +## New way to define packaging patterns + +Deprecation code: `PACKAGE_PATTERNS` + +Support for `package.include` and `package.exclude` will be removed with v4.0.0. Instead please use `package.patterns` with which both _include_ and _exclude_ (prefixed with `!`) rules can be configured. + +Check [Packaging Patterns](/framework/docs/providers/aws/guide/packaging/#patterns) documentation for more info. +
 
## CLI `--function`/`-f` option for `deploy` command diff --git a/lib/plugins/package/package.js b/lib/plugins/package/package.js index 20ad625d1..327533cd2 100644 --- a/lib/plugins/package/package.js +++ b/lib/plugins/package/package.js @@ -33,6 +33,26 @@ class Package { }; this.hooks = { + 'initialize': () => { + const usesIncludeOrExclude = (packageConfig = {}) => + packageConfig.include || packageConfig.exclude; + + if ( + usesIncludeOrExclude(this.serverless.service.package || {}) || + Object.values(this.serverless.service.functions).some((func) => + usesIncludeOrExclude(func.package) + ) || + Object.values(this.serverless.service.layers || {}).some((func) => + usesIncludeOrExclude(func.package) + ) + ) { + this.serverless._logDeprecation( + 'PACKAGE_PATTERNS', + 'Support for "package.include" and "package.exclude" will be removed in the next' + + ' major release. Please use "package.patterns" instead' + ); + } + }, 'package:createDeploymentArtifacts': async () => BbPromise.bind(this).then(this.packageService),