From 8ee3cde3132e50e4cb0838eeef42d12ec289320b Mon Sep 17 00:00:00 2001 From: Andrea Frittoli Date: Mon, 9 Mar 2026 14:53:05 +0000 Subject: [PATCH] RFC-0049-infra-contribution Signed-off-by: Andrea Frittoli --- RFC-0049-assets/process-core.png | Bin 0 -> 44591 bytes RFC-0049-assets/process-slos.png | Bin 0 -> 27896 bytes RFC-0049-infra-contribution.md | 201 +++++++++++++++++++++++++++++++ 3 files changed, 201 insertions(+) create mode 100644 RFC-0049-assets/process-core.png create mode 100644 RFC-0049-assets/process-slos.png create mode 100644 RFC-0049-infra-contribution.md diff --git a/RFC-0049-assets/process-core.png b/RFC-0049-assets/process-core.png new file mode 100644 index 0000000000000000000000000000000000000000..e1e89101f0be39aa34c5402d91d9b0454530a53a GIT binary patch literal 44591 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 literal 0 HcmV?d00001 diff --git a/RFC-0049-assets/process-slos.png b/RFC-0049-assets/process-slos.png new file mode 100644 index 0000000000000000000000000000000000000000..7e8bd4df1e8f5063c8684e7c78f382984b446171 GIT binary patch literal 27896 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 + Process diagram +

+ +The scope of an implementation is defined in tems of the [*role*](#roles) and *frequency* of execution. + +### Roles + +Depending on the type of CI/CD jobs that a runner executes, it may require read and/or write access to various resources, which include: +- S3 buckets +- ECR images/repositories +- Test database (dynamo DB) + +The more access is required to those resources, the higher the bar in terms of requirements for the runners. The following roles are presented in order from the lower to higher bar of requirements: + +- [Tester](#runner-of-type-tester) +- [Builder](#runner-of-type-builder) +- [Publisher](#runner-of-type-publisher) +- [Releaser](#runner-of-type-releaser) + +When a runner produces resources that may be consumed runners from a different pool, the resources should be: +- Either published to a secure local repository, and pulled to a central location by a separate trusted process. The pull process may verify and/or filter the resources to be pulled based on customizable policies +- Or published to a central location, using a dedicated bucket or repository, using credentials scoped only to the dedicated target + +Built artifacts may include attestations, signatures and other features required to achieve SLSA Build Level 3 (https://slsa.dev/spec/v1.2/build-track-basics#build-l3) quality. This is out of scope for this document and should be discussed in a separate setting. + +#### Runner of type "Tester" + +A tester runner executes test jobs which mainly consume artifacts and may produce ephemeral artifacts for other jobs in the same runner pool or data/documentation artifacts such as test reports and benchmark results. + +A tester runner may be used with triggers: on-demand, periodic, PR subet, all PRs. + +| Allowed Resources | Access | Location | Description | +|---|---|---|---| +| Buckets | Read | Local, cached from central | Pre-built artifacts | +| Buckets | Write | Local only | Artifacts consumed by jobs in the same runner pool | +| Buckets | Write | Local, may be pulled centrally | Test reports, Benchmark results (not used by other jobs) | +| Container Registry | Read | Local, pass-through cache | Container images used for tests | +| Container Registry | Write | Local only | Artifacts consumed by jobs in the same runner pool | +| Dynamo DB | Write (inserts only) | Central | Tests and build results/telemetry | + +#### Runner of type “Builder” +A builder runner executes build jobs that create artifacts consumed by other PyTorch CI/CD jobs which may run on runners outside of the vendor pool. Examples are compiler caches, doc previews, prebuilt libraries. + +A builder runner may be used with triggers: Periodic, On-demand. + +| Allowed Resources | Access | Location | Description | +|---|---|---|---| +| Same as Tester, plus: |||| +| Buckets | Write | Local OR Central, dedicated bucket | Build artifacts used by any other jobs, not end-users | +| Container Registry | Write | Local OR Central, dedicated repository | Artifacts consumed by any other jobs, not end-users | + +#### Runner of type “Publisher” +A publisher runner executes build jobs that create artifacts that are consumed by PyTorch end-users, except for full releases. Examples are nightly builds. + +A publisher runner may be used with triggers: Periodic, On-demand. + +| Allowed Resources | Access | Location | Description | +|---|---|---|---| +| Same as Builder, plus: |||| +| Buckets | Write | Local OR Central shared bucket | Build artifacts that may be used by end-users, but not releases | +| Container Registry | Write | Local OR Central shared repository | Artifacts that may be used by end-users, but not releases | + + +#### Runner of type “Releaser” +A releaser runner executes build jobs that create full release artifacts that are consumed by PyTorch end-users. + +A releaser runner may be used with triggers: On-demand. + +| Allowed Resources | Access | Location | Description | +|---|---|---|---| +| Same as Publisher, plus: |||| +| Buckets | Write | Release bucket | May publish any artifacts for end-users | + + +### Proposal Template + +The proposal template depends on the type of integration. +For vendor-managed runner pools, the proposal should include the following sections: + +* **Company or organisation** that will operate the infrastructure +* **Platform being tested** by the runner pool. A platform is a combination of hardware (CPU architecture and Accelerator if any) and software (Operating System) +* **Runner Role, Triggers and Jobs**: this section should describe the entire plan, from the starting point (typically testing through on a fork) to the desired level testing, integration and build +* **Benefits to the Ecosystem**: for example, describe current adoption and availability of the platform to end-users +* **Technical Implementation**: + * Setup of the nodes: type, recipe (Dockerfile or similar), ephemeral vs. long running + * Provisioning: architecture (ARC, ad-hoc scripts, else) + * Security: secret management, security update frequency +* **Communication and SLO**: + * Platform-specific Slack channel + * Enginneers: who and what time-zone + * Expected reponse times + +## **Metrics ** +What are the main metrics to measure the value of this feature? + + +## **Drawbacks** +Are there any reasons why we should not do this? Here we aim to evaluate risk and check ourselves. + +Please consider: +* is it a breaking change? +* Impact on UX +* implementation cost, both in terms of code size and complexity +* integration of this feature with other existing and planned features + + +## **Alternatives** +What other designs have been considered? What is the impact of not doing this? + + +## **Prior Art** +Discuss prior art (both good and bad) in relation to this proposal: +* Does this feature exist in other libraries? What experience has their community had? +* What lessons can be learned from other implementations of this feature? +* Published papers or great posts that discuss this + + +## **How we teach this** +* What names and terminology work best for these concepts and why? How is this idea best presented? +* Would the acceptance of this proposal mean the PyTorch documentation must be re-organized or altered? +* How should this feature be taught to existing PyTorch users? + + +## **Unresolved questions** +* What parts of the design do you expect to resolve through the RFC process before this gets merged? +* What parts of the design do you expect to resolve through the implementation of this feature before stabilization? +* What related issues do you consider out of scope for this RFC that could be addressed in the future independently of the solution that comes out of this RFC? + + \ No newline at end of file