serverless/serverless-python-requirements

Pipenv `--keep-outdated` flag no longer supported

CJTurpie opened this issue · 1 comments

Are you certain it's a bug?

  • Yes, it looks like a bug

Are you using the latest plugin release?

  • Yes, I'm using the latest plugin release

Is there an existing issue for this?

  • I have searched existing issues, it hasn't been reported yet

Issue description

In v2023.7.9 of Pipenv they have removed the --keep-outdated flag. serverless-python-requirements uses this flag to generate the requirements.txt so using the latest vrsion of pipenv to do this now fails.

Service configuration (serverless.yml) content

service: bug

frameworkVersion: ">=3.12.0"

custom:
  pythonRequirements:
    dockerizePip: true
    slim: true
    zip: false

provider:
  name: aws
  region: eu-west-2
  runtime: python3.10
  stage: staging
  deploymentMethod: direct
  timeout: 900
  versionFunctions: true

package:
  excludeDevDependencies: true
  individually: true

functions:
  test:
    description: "test"
    handler: test.lambda_handler
    maximumRetryAttempts: 1
    name: test

plugins:
  - serverless-python-requirements

Command name and used flags

sls deploy --stage staging --verbose

Command output

> serverless "deploy" "--stage" "staging" "--verbose"


Deploying bug to stage staging (eu-west-2)

Generating requirements.txt from Pipfile

× Stack bug failed to deploy (0s)
Environment: linux, node 16.14.2, framework 3.32.2 (local), plugin 6.2.3, SDK 4.3.2
Credentials: Local, "default" profile
Docs:        docs.serverless.com
Support:     forum.serverless.com
Bugs:        github.com/serverless/serverless/issues

Error:
Error: `pipenv lock --keep-outdated` Exited with code 2
    at ChildProcess.<anonymous> (/home/runner/work/platform/platform/lambdas/platform_cli/node_modules/child-process-ext/spawn.js:38:8)
    at ChildProcess.emit (node:events:526:28)
    at ChildProcess.emit (node:domain:475:12)
    at maybeClose (node:internal/child_process:1092:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5)
make: *** [Makefile:5: deploy-staging] Error 1
Error: Process completed with exit code 2.

Environment information

Framework Core: 3.32.2
Plugin: 6.2.3
SDK: 4.3.2
serverless-python-requirements: 6.0.0
McKean commented

Stumbled over the same issue, downgrading to pipenv 2023.7.4 helps for now.

fwiw here's a more informative deprecation notice:

The flag --keep-outdated has been deprecated for removal.  The flag does not respect package resolver results and leads to inconsistent lock files.  Consider using the new `pipenv upgrade` command to selectively upgrade packages.