Skip to content

PEP 694: Amend scanning in staged releases and add legacy API changes to use staged releases - #5070

Open
cjames23 wants to merge 1 commit into
python:mainfrom
cjames23:pep-694-staged-releases-legacy-entry
Open

PEP 694: Amend scanning in staged releases and add legacy API changes to use staged releases#5070
cjames23 wants to merge 1 commit into
python:mainfrom
cjames23:pep-694-staged-releases-legacy-entry

Conversation

@cjames23

@cjames23 cjames23 commented Aug 3, 2026

Copy link
Copy Markdown

Amendments based on DPO discussion https://discuss.python.org/t/pre-pep-staged-releases-separated-from-pep-694/107804/59

@warsaw - here are my proprosed amendments which I would like your sign off on as well.

@cjames23
cjames23 requested review from dstufft and warsaw as code owners August 3, 2026 04:38
@python-cla-bot

python-cla-bot Bot commented Aug 3, 2026

Copy link
Copy Markdown

All commit authors signed the Contributor License Agreement.

CLA signed

@read-the-docs-community

Copy link
Copy Markdown

Documentation build overview

📚 pep-previews | 🛠️ Build #33881802 | 📁 Comparing 1469ee8 against latest (69a447a)

  🔍 Preview build  

6 files changed · ± 6 modified

± Modified

@hugovk hugovk changed the title Add amendments to 694 for scanning in staged releases and add legacy API changes to use staged releases PEP 694: Scanning in staged releases and add legacy API changes to use staged releases Aug 3, 2026
@hugovk hugovk changed the title PEP 694: Scanning in staged releases and add legacy API changes to use staged releases PEP 694: Amend scanning in staged releases and add legacy API changes to use staged releases Aug 3, 2026

@warsaw warsaw left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a great addition to the PEP. I have some comments for a few things that need clarification, but otherwise +1. And welcome aboard as a co-author!

Comment thread peps/pep-0694.rst
so that (for example) a CI job can install-test a staged release without project upload credentials.

As one such stricter policy, an index **MAY** require *additional* authorization, beyond upload permission, to
:ref:`publish <publishing-session-completion>` or :ref:`cancel <publishing-session-cancellation>` a session,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 for publishing, but can you provide some additional scenarios about why cancelation should require additional authorization?

Comment thread peps/pep-0694.rst
**MAY** treat it as though it had completed without an adverse result and publish the session, so that a
backlogged or unavailable review system does not indefinitely prevent publication. If the review produces an
adverse result, the session resolves to ``error`` with the reason reported in the session's ``notices``; the
server **MAY** decline to publish such a session on any subsequent retry, in which case it is eventually

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section (if not covered below), should provide details on what happens if files in the session are deleted and reuploaded. It could be:

  • Continue to await human review
  • Rescan newly uploaded files
  • Reset the entire malware scan state

It probably would also be helpful to say something about denial of service attacks on the scanner. E.g. bad actor starts an upload session, uploads known malware knowing it will get flagged. Bad Actor deletes the files and reuploads them to trigger another scan. Rinse and repeat until the scanning service is overwhelmed.

Comment thread peps/pep-0694.rst

.. _legacy-interop:

Legacy Upload API Interoperability

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if it makes sense to be more explicit about the "control plane" API for managing the session (and file uploads), and/or lump this and the explicit session creation together? Maybe add a top-level "Session Creation" section, putting this and the original session creation request together, then the rest of it would be the same control plane API.

It also occurs to me that we might want to update the state diagrams so that it's obvious that there are two entry points "open" state. However, if I'm reading this section correctly, the index can also auto-publish if the conditions allow (no adverse scan or scan timeout). Maybe that'll make the diagram too cluttered in which case we could skip it or add a second diagram. LMK what you think and I can take a crack at updating the diagram once this PR lands.

The other thing this section should discuss is the interaction between legacy and 2.0 sessions. E.g. what happens if there's an open 2.0 session? Can someone use the legacy API to add a file to that existing session? I would think that would get rejected with a 409. Also vice versa (meaning: do we allow mixing of session creation requests?). We just need to be explicit about how these mix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants