Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

RFC: how to deal with poetry 1.3's new lockfile format #14857

@DMRobertson

Description

@DMRobertson

I've spent some time on this today and now want to dump context.

Options:

  1. Stop using dependabot.
  2. Ask dependabot authors if there's some way to pin the version of poetry that dependabot uses.
  3. Convert to poetry 1.3.x's lockfile format. Require poetry >= 1.2.2.

I assumed that option (0) was undesirable. Put differently, I contend that dependabot is valuable to us. It does a good job of summarising what's changed in dependencies, and also automatically proposes updates when security advisories are made for our dependencies.

Option (1) seemed like a relatively big ask for a fairly small scenario, so I put that to one side. EDIT: The depdendabot authors seem to be aware of this problem, see dependabot/dependabot-core#1556 (comment) and the discussion following it. In dependabot/dependabot-core#1556 (comment) they point to a poetry issue python-poetry/poetry#3316 for enforcing a minimum poetry issue, which remains open. (Note that we actually want a maximum version here).

Option (2) was my next approach. I started this process in
matrix-org/setup-python-poetry#14 and matrix-org/sytest#1326. But thinking about it, I realised that anyone who wants to edit the lockfile will have to install poetry 1.3.x. This includes some parts of CI (e.g. old deps, twisted trunk); so there's no way of being consistent; option(2) is really

2'. Convert to poetry 1.3.x's lockfile format. Require poetry >= 1.2.2 to read it, and >= 1.3.0 to write it.

but writing this down in our docs/CI sounds like a recipe for future confusion. Instead, I propose the simpler

  1. Convert to poetry 1.3.x's lockfile format. Require poetry >= 1.3 to use it. (1.2.2 will suffice for read-only operations---but we wouldn't advertise this fact.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-PackagingOur Debian packages, docker images; or issues relevant to downstream packagersT-OtherQuestions, user support, anything else.T-TaskRefactoring, removal, replacement, enabling or disabling functionality, other engineering tasks.dependenciesPull requests from dependabot that update a dependency file

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions