Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Replace the TPA-RFC template with ADR Nygard

Context

As discussed in ADR-101: process, the TPA-RFC process leads to documents that are too long and encourages exhaustiveness which leads to exhaustion.

Decision

We're switching from the TPA-RFC template to an ADR template using a modified Nygard template.

The current TPA-RFC template and TPA-RFC-1 are therefore obsolete. Some of their components will be reused in a "announcement" template that will be defined later.

Existing TPA-RFC are unchanged and will not be converted. Draft RFCs can be published as is without change, but the old template is obsolete and should not be used anymore.

We also suggest using the adr-tools system to manage the directory of proposals, although that is optional.

The deliberation process mechanisms are described in ADR-101: process and ADR-0102: ADR communications, respectively.

Consequences

Tooling in GitLab CI and the wiki will have to be fixed to take the new file naming and numbering into account.

More information

Note that this proposal is part of a set of 3 complementary proposals:

Considered Options

As part of reviewing the process, we stumbled upon the ADR process which is used at Thunderbird. The process is loosely defined but outlines a couple of templates that can be used to write such records:

  1. MADR
  2. Nygard
  3. Y statement

We originally picked the MADR template, but it turned out to be too complicated, and encouraged more detailed and exhaustive documents, which we're explicitly trying to avoid.

Changes from the TPA-RFC template

The following sections are changed like so:

  • Background: essentially becomes "Context"
  • Proposal: "Decision"
  • Goals: generally introduced in "Context"
  • Tasks, Scope, Affected users, Timeline, Costs, Alternatives considered: all optional parts of "More information"

The YAML frontmatter fields are replaced with a section at the end of the template and renamed for clarification:

  • title: moved to the first heading
  • costs: moved to "More information"
  • approval: renamed to "decision-makers"
  • affected users: "informed"
  • deadline: "decision-date"
  • status: "standard" is renamed to "approved", and added "superseded", state transitions are documented in ADR-101: process
  • discussion: "forum-url"

The "consulted" field is added as well.

Metadata

  • status: approved
  • decision-date: 2025-12-01
  • decision-makers: TPA team lead
  • consulted: tpa-team@lists.torproject.org
  • informed: tor-project@lists.torproject.org
  • forum-url: https://gitlab.torproject.org/tpo/tpa/team/-/issues/41428