Ver código fonte

Adjust md tab width to work better cross-markdown-parser (#124)

We're running into issues with md handlers that expect this kind of 4-space indent. It should be cross-compatible with GH, so switch, even though it feels a little churny.

Manual edits are to:

- .prettierrc.yaml:
    - rename from .prettierrc
    - add tabWidth (primary change)
    - add trailingComma (fix vimPrettier skew)
- contribution_tools.md: Fix remarks about .prettierrc.yaml
- pre-commit-toc.js: indent, bullets
- pre-commit-proposal-list.py: indent of output

The rest is the result of `pre-commit run --all-files`

Unfortunately this'll probably depend on the change being propagated into PR branches, so I wouldn't be surprised if we see regressions for a bit. We'll also need to nudge people to update .vimrc's. Hopefully the pre-commit GH action helps catch issues.
Jon Meow 5 anos atrás
pai
commit
be116a46c9

+ 0 - 5
.prettierrc

@@ -1,5 +0,0 @@
-printWidth: 80
-proseWrap: "always"
-singleQuote: true
-tabWidth: 2
-useTabs: false

+ 10 - 0
.prettierrc.yaml

@@ -0,0 +1,10 @@
+printWidth: 80
+proseWrap: 'always'
+singleQuote: true
+tabWidth: 2
+trailingComma: 'es5'
+useTabs: false
+overrides:
+  - files: '*.md'
+    options:
+      tabWidth: 4

+ 107 - 106
CODE_OF_CONDUCT.md

@@ -11,13 +11,13 @@ commitment to psychological safety, and we want to ensure that doesn’t change
 we grow and evolve. To that end, we have a few ground rules that we ask all
 community members to adhere to:
 
-- be welcoming,
-- be friendly and patient,
-- be considerate,
-- be respectful,
-- be careful in the words that you choose and be kind to others,
-- when we disagree, try to understand why, and
-- recognize when progress has stopped, and take a step back.
+-   be welcoming,
+-   be friendly and patient,
+-   be considerate,
+-   be respectful,
+-   be careful in the words that you choose and be kind to others,
+-   when we disagree, try to understand why, and
+-   recognize when progress has stopped, and take a step back.
 
 This list isn't exhaustive. Rather, take it in the spirit in which it’s intended
 -- a guide to make it easier to communicate and participate in the community.
@@ -40,68 +40,68 @@ violating the code of conduct, please report it to the
 More detailed guidance on how to participate effectively in our community
 spaces:
 
-- **Be welcoming.** We strive to be a community that welcomes and supports
-  people of all backgrounds and identities. This includes, but is not limited
-  to, members of any race, ethnicity, culture, national origin, color,
-  immigration status, social and economic class, educational level, sex, sexual
-  orientation, gender identity and expression, physical appearance, age, size,
-  family status, relationship status, political belief, religion or lack
-  thereof, and mental and physical ability.
-
-- **Be friendly and patient.** We want to encourage people to participate in our
-  community by keeping its atmosphere friendly and positive. This is especially
-  important because many of our communication tools on the Internet are
-  low-fidelity and make it difficult to understand each other. Be patient,
-  assume good intent, and stay supportive so that we can learn how to
-  collaborate effectively as a group.
-
-- **Be considerate.** Your work will be used by other people, and you in turn
-  will depend on the work of others. Any decision you make will affect users and
-  colleagues, and you should take those consequences into account. Remember that
-  we’re a world-wide community, so you might not be communicating in someone
-  else’s primary language.
-
-- **Be respectful.** Not all of us will agree all the time, but disagreement is
-  no excuse for poor behavior and poor manners. We might all experience some
-  frustration now and then, but we cannot allow that frustration to turn into a
-  personal attack. It’s important to remember that a community where people feel
-  uncomfortable or threatened is not a productive one. Members of our community
-  should be respectful when dealing with other members as well as with people
-  outside the Carbon community.
-
-- **Be careful in the words that you choose and be kind to others.** Do not
-  insult or put down other participants. Harassment and other exclusionary
-  behaviors aren’t acceptable. This includes, but is not limited to:
-
-  - Violent threats or language directed against another person.
-  - Discriminatory jokes and language.
-  - Posting sexually explicit or violent material.
-  - Posting, or threatening to post, other people’s personally identifying
-    information ("doxing") without their explicit permission.
-  - Personal insults, especially those using racist or sexist terms.
-  - Unwelcome sexual attention.
-  - Advocating for, or encouraging, any of the above behavior.
-  - In general, if someone asks you to stop, then stop. Persisting after being
-    asked to stop is considered harassment.
-
-- **When we disagree, try to understand why.** Disagreements, both social and
-  technical, happen all the time, and Carbon is no exception. It is important
-  that we resolve disagreements and differing views constructively. Remember
-  that we’re different. The strength of the project comes from its varied
-  community: people from a wide range of backgrounds. Different people have
-  different perspectives on issues. Being unable to understand why someone holds
-  a viewpoint doesn’t mean that they’re wrong. Don’t forget that it is human to
-  err and blaming each other doesn’t get us anywhere. Instead, focus on helping
-  to resolve issues and learning from mistakes.
-
-- **Recognize when progress has stopped, and take a step back.** Regardless of
-  whether you're trying to resolve a disagreement or anything else, think about
-  whether you're making progress. Sometimes messaging doesn't give time to think
-  about a situation fully, and repeating positions can make people defensive.
-  Step back for a few minutes or hours to think through the issue before
-  responding again. Consider pulling in another community member to give a fresh
-  perspective. Maybe meet over VC instead. Switching approaches can help resume
-  progress.
+-   **Be welcoming.** We strive to be a community that welcomes and supports
+    people of all backgrounds and identities. This includes, but is not limited
+    to, members of any race, ethnicity, culture, national origin, color,
+    immigration status, social and economic class, educational level, sex,
+    sexual orientation, gender identity and expression, physical appearance,
+    age, size, family status, relationship status, political belief, religion or
+    lack thereof, and mental and physical ability.
+
+-   **Be friendly and patient.** We want to encourage people to participate in
+    our community by keeping its atmosphere friendly and positive. This is
+    especially important because many of our communication tools on the Internet
+    are low-fidelity and make it difficult to understand each other. Be patient,
+    assume good intent, and stay supportive so that we can learn how to
+    collaborate effectively as a group.
+
+-   **Be considerate.** Your work will be used by other people, and you in turn
+    will depend on the work of others. Any decision you make will affect users
+    and colleagues, and you should take those consequences into account.
+    Remember that we’re a world-wide community, so you might not be
+    communicating in someone else’s primary language.
+
+-   **Be respectful.** Not all of us will agree all the time, but disagreement
+    is no excuse for poor behavior and poor manners. We might all experience
+    some frustration now and then, but we cannot allow that frustration to turn
+    into a personal attack. It’s important to remember that a community where
+    people feel uncomfortable or threatened is not a productive one. Members of
+    our community should be respectful when dealing with other members as well
+    as with people outside the Carbon community.
+
+-   **Be careful in the words that you choose and be kind to others.** Do not
+    insult or put down other participants. Harassment and other exclusionary
+    behaviors aren’t acceptable. This includes, but is not limited to:
+
+    -   Violent threats or language directed against another person.
+    -   Discriminatory jokes and language.
+    -   Posting sexually explicit or violent material.
+    -   Posting, or threatening to post, other people’s personally identifying
+        information ("doxing") without their explicit permission.
+    -   Personal insults, especially those using racist or sexist terms.
+    -   Unwelcome sexual attention.
+    -   Advocating for, or encouraging, any of the above behavior.
+    -   In general, if someone asks you to stop, then stop. Persisting after
+        being asked to stop is considered harassment.
+
+-   **When we disagree, try to understand why.** Disagreements, both social and
+    technical, happen all the time, and Carbon is no exception. It is important
+    that we resolve disagreements and differing views constructively. Remember
+    that we’re different. The strength of the project comes from its varied
+    community: people from a wide range of backgrounds. Different people have
+    different perspectives on issues. Being unable to understand why someone
+    holds a viewpoint doesn’t mean that they’re wrong. Don’t forget that it is
+    human to err and blaming each other doesn’t get us anywhere. Instead, focus
+    on helping to resolve issues and learning from mistakes.
+
+-   **Recognize when progress has stopped, and take a step back.** Regardless of
+    whether you're trying to resolve a disagreement or anything else, think
+    about whether you're making progress. Sometimes messaging doesn't give time
+    to think about a situation fully, and repeating positions can make people
+    defensive. Step back for a few minutes or hours to think through the issue
+    before responding again. Consider pulling in another community member to
+    give a fresh perspective. Maybe meet over VC instead. Switching approaches
+    can help resume progress.
 
 If you have questions, please feel free to ask on our Discourse Forum, Discord
 Chat, or contact any member of the conduct team directly.
@@ -142,15 +142,15 @@ Reports can be as formal or informal as needed for the situation at hand. If
 possible, please include as much information as you can. If you feel
 comfortable, please consider including:
 
-- Your contact info, so we can get in touch with you if we need to follow up.
-- Names -- real, nicknames, or pseudonyms -- of any individuals involved. If
-  there were other witnesses besides you, please try to include them as well.
-- When and where the incident occurred. Please be as specific as possible.
-- Your account of what occurred, including any private chat logs or email.
-- Links for any public records, including Discourse Forum links.
-- Any extra context for the incident.
-- If you believe this incident is ongoing.
-- Any other information you believe we should have.
+-   Your contact info, so we can get in touch with you if we need to follow up.
+-   Names -- real, nicknames, or pseudonyms -- of any individuals involved. If
+    there were other witnesses besides you, please try to include them as well.
+-   When and where the incident occurred. Please be as specific as possible.
+-   Your account of what occurred, including any private chat logs or email.
+-   Links for any public records, including Discourse Forum links.
+-   Any extra context for the incident.
+-   If you believe this incident is ongoing.
+-   Any other information you believe we should have.
 
 ### What happens after contacting the conduct team?
 
@@ -160,10 +160,10 @@ business day, and we will aim to respond much quicker than that.
 The conduct team will review the incident as soon as possible and try to
 determine:
 
-- What happened and who was involved.
-- Whether this event constitutes a code of conduct violation.
-- Whether this is an ongoing situation, or if there is a threat to anyone’s
-  physical safety.
+-   What happened and who was involved.
+-   Whether this event constitutes a code of conduct violation.
+-   Whether this is an ongoing situation, or if there is a threat to anyone’s
+    physical safety.
 
 If this is determined to be an ongoing incident or a threat to physical safety,
 the conduct team's immediate priority will be to protect everyone involved. This
@@ -177,10 +177,10 @@ perspectives.
 Once the conduct team has a complete account of the events they will make a
 decision as to how to respond. Responses may include:
 
-- Nothing, if no violation occurred or it has already been appropriately
-  resolved.
-- One or more [enforcement actions](#enforcement-actions).
-- Involvement of relevant law enforcement if appropriate.
+-   Nothing, if no violation occurred or it has already been appropriately
+    resolved.
+-   One or more [enforcement actions](#enforcement-actions).
+-   Involvement of relevant law enforcement if appropriate.
 
 If the situation is not resolved within one week, we’ll respond to the original
 reporter with an update and explanation.
@@ -223,29 +223,30 @@ violation of this Code of Conduct using these guidelines based on the behavior
 involved:
 
 1.  **Correction**
-    - **Behavior:** Use of inappropriate language or other minor violations the
-      code of conduct.
-    - **Action:** A private, written message providing clarity around the nature
-      of the violation and an explanation of why the behavior was inappropriate.
-      A public apology may be requested.
+    -   **Behavior:** Use of inappropriate language or other minor violations
+        the code of conduct.
+    -   **Action:** A private, written message providing clarity around the
+        nature of the violation and an explanation of why the behavior was
+        inappropriate. A public apology may be requested.
 1.  **Warning**
-    - **Behavior:** A code of conduct violation through a single moderate
-      incident, or a series of minor violations.
-    - **Action:** In addition to the correction action, a temporary restriction
-      barring interaction with the people involved for a specified period of
-      time, including unsolicited interaction with the conduct team. Violating
-      these terms may lead to a ban.
+    -   **Behavior:** A code of conduct violation through a single moderate
+        incident, or a series of minor violations.
+    -   **Action:** In addition to the correction action, a temporary
+        restriction barring interaction with the people involved for a specified
+        period of time, including unsolicited interaction with the conduct team.
+        Violating these terms may lead to a ban.
 1.  **Temporary ban**
-    - **Behavior:** A serious violation of the code of conduct, including
-      sustained inappropriate behavior.
-    - **Action:** In addition to the warning action, a temporary ban from use of
-      Carbon's community spaces for a specified period of time. External
-      channels, such as social media, should not be used to bypass these
-      restrictions during the temporary ban. Violating these terms may lead to a
-      permanent ban.
+    -   **Behavior:** A serious violation of the code of conduct, including
+        sustained inappropriate behavior.
+    -   **Action:** In addition to the warning action, a temporary ban from use
+        of Carbon's community spaces for a specified period of time. External
+        channels, such as social media, should not be used to bypass these
+        restrictions during the temporary ban. Violating these terms may lead to
+        a permanent ban.
 1.  **Permanent ban**
-    - **Behavior:** Demonstrating a pattern of violation of the code of conduct.
-    - **Action:** A permanent ban from use of Carbon's community spaces.
+    -   **Behavior:** Demonstrating a pattern of violation of the code of
+        conduct.
+    -   **Action:** A permanent ban from use of Carbon's community spaces.
 
 ## Acknowledgements
 

+ 101 - 98
CONTRIBUTING.md

@@ -12,11 +12,11 @@ free to ask on our Discourse Forums or Discord Chat.
 
 Everyone contributing to Carbon is expected to:
 
-- Read and follow the [Code of Conduct](CODE_OF_CONDUCT.md). We expect everyone
-  in our community to be welcoming, helpful, and respectful.
-- Ensure you have signed the
-  [Contributor License Agreement (CLA)](https://cla.developers.google.com/). We
-  need this to cover some legal bases.
+-   Read and follow the [Code of Conduct](CODE_OF_CONDUCT.md). We expect
+    everyone in our community to be welcoming, helpful, and respectful.
+-   Ensure you have signed the
+    [Contributor License Agreement (CLA)](https://cla.developers.google.com/).
+    We need this to cover some legal bases.
 
 We also encourage anyone interested in contributing to check out all the
 information here in our contributing guide, especially the
@@ -71,13 +71,13 @@ can accept them, we need you to cover some legal bases.
 
 Please fill out either the individual or corporate CLA.
 
-- If you are an individual contributing to spec discussions or writing original
-  source code and you're sure you own the intellectual property, then you'll
-  need to sign an
-  [individual CLA](https://code.google.com/legal/individual-cla-v1.0.html).
-- If you work for a company that wants to allow you to contribute your work,
-  then you'll need to sign a
-  [corporate CLA](https://code.google.com/legal/corporate-cla-v1.0.html).
+-   If you are an individual contributing to spec discussions or writing
+    original source code and you're sure you own the intellectual property, then
+    you'll need to sign an
+    [individual CLA](https://code.google.com/legal/individual-cla-v1.0.html).
+-   If you work for a company that wants to allow you to contribute your work,
+    then you'll need to sign a
+    [corporate CLA](https://code.google.com/legal/corporate-cla-v1.0.html).
 
 Follow either of the two links above to access the appropriate CLA and
 instructions for how to sign and return it. Once we receive it, we'll be able to
@@ -102,41 +102,42 @@ Membership is currently invite-only.
 Before using these systems, everyone must sign the CLA. They are all governed by
 the Code of Conduct.
 
-- [The GitHub carbon-language organization](https://github.com/orgs/carbon-language)
-  is used for our repositories. **To join:**
-
-  1.  Ask [an admin](docs/project/groups.md#admins) to send an invite, providing
-      your GitHub account.
-  2.  Check your email to accept the invite, or try the standard
-      [accept link](https://github.com/orgs/carbon-language/invitation?via_email=1)
-      if you don't see the email.
-
-- [Discourse Forums](https://forums.carbon-lang.dev) are used for long-form
-  discussions. **To join:**
-
-  1.  Go to [the forums](https://forums.carbon-lang.dev) and register your
-      GitHub account.
-      - You will be able to choose which GitHub email you want the forums to
-        send email to.
-  2.  [An admin](docs/project/groups.md#admins) will need to approve your
-      registration.
-
-- [Discord Chat](https://discord.com/app) is used for short-form chats. **To
-  join:**
-
-  1.  Ask [an admin](docs/project/groups.md#admins) for an invite link.
-      - Please do not re-share the invite links: they're our only way to
-        restrict access.
-  2.  You will be prompted with the Code of Conduct. After reading it, click the
-      check mark reaction icon at the bottom.
-
-- [A shared Google Drive](https://drive.google.com/corp/drive/folders/0ALTu5Y6kc39XUk9PVA)
-  is used for all of our Google Docs, particularly proposal drafts. **To join:**
-  1.  Ask [an admin](docs/project/groups.md#admins) to invite you, providing
-      your Google account email.
-  2.  The admin will add you to the
-      [Google Group](https://groups.google.com/g/carbon-lang-contributors) used
-      for access.
+-   [The GitHub carbon-language organization](https://github.com/orgs/carbon-language)
+    is used for our repositories. **To join:**
+
+    1.  Ask [an admin](docs/project/groups.md#admins) to send an invite,
+        providing your GitHub account.
+    2.  Check your email to accept the invite, or try the standard
+        [accept link](https://github.com/orgs/carbon-language/invitation?via_email=1)
+        if you don't see the email.
+
+-   [Discourse Forums](https://forums.carbon-lang.dev) are used for long-form
+    discussions. **To join:**
+
+    1.  Go to [the forums](https://forums.carbon-lang.dev) and register your
+        GitHub account.
+        -   You will be able to choose which GitHub email you want the forums to
+            send email to.
+    2.  [An admin](docs/project/groups.md#admins) will need to approve your
+        registration.
+
+-   [Discord Chat](https://discord.com/app) is used for short-form chats. **To
+    join:**
+
+    1.  Ask [an admin](docs/project/groups.md#admins) for an invite link.
+        -   Please do not re-share the invite links: they're our only way to
+            restrict access.
+    2.  You will be prompted with the Code of Conduct. After reading it, click
+        the check mark reaction icon at the bottom.
+
+-   [A shared Google Drive](https://drive.google.com/corp/drive/folders/0ALTu5Y6kc39XUk9PVA)
+    is used for all of our Google Docs, particularly proposal drafts. **To
+    join:**
+    1.  Ask [an admin](docs/project/groups.md#admins) to invite you, providing
+        your Google account email.
+    2.  The admin will add you to the
+        [Google Group](https://groups.google.com/g/carbon-lang-contributors)
+        used for access.
 
 ### Contribution guidelines and standards
 
@@ -145,44 +146,46 @@ follow the Carbon documentation and coding styles.
 
 #### Guidelines and philosophy for contributions
 
-- For **both** documentation and code:
-
-  - When the Carbon team accepts new documentation or features, to Carbon, by
-    default they take on the maintenance burden. This means they'll weigh the
-    benefit of each contribution must be weighed against the cost of maintaining
-    it.
-  - The appropriate [style](#style) is applied.
-  - The [license](#license) is present in all contributions.
-
-- For documentation:
-
-  - All documentation is written for clarity and readability. Beyond fixing
-    spelling and grammar, this also means content is worded to be accessible to
-    a broad audience.
-  - Substantive changes to Carbon follow the
-    [evolution process](docs/project/evolution.md). Pull requests are only sent
-    after the documentation changes have been accepted by the reviewing team.
-  - Typos or other minor fixes that don't change the meaning of a document do
-    not need formal review, and are often handled directly as a pull request.
-
-- For code:
-
-  - New features should have a documented design that has been approved through
-    the [evolution process](docs/project/evolution.md). This includes
-    modifications to pre-existing designs.
-  - Bug fixes and mechanical improvements don't need this.
-  - All new features include unit tests, as they help to (a) document and
-    validate concrete usage of the feature and its edge cases, and (b) guard
-    against future breaking changes to lower the maintenance cost.
-  - Bug fixes also generally include unit tests, because the presence of bugs
-    usually indicates insufficient test coverage.
-  - Unit tests must pass with the changes.
-  - If some tests fail for unrelated reasons, we wait until they're fixed. It
-    helps to contribute a fix!
-  - Code changes are made with API compatibility and evolvability in mind.
-    Reviewers will comment on any API compatibility issues.
-  - Keep in mind that code contribution guidelines are incomplete while we start
-    work on Carbon, and may change later.
+-   For **both** documentation and code:
+
+    -   When the Carbon team accepts new documentation or features, to Carbon,
+        by default they take on the maintenance burden. This means they'll weigh
+        the benefit of each contribution must be weighed against the cost of
+        maintaining it.
+    -   The appropriate [style](#style) is applied.
+    -   The [license](#license) is present in all contributions.
+
+-   For documentation:
+
+    -   All documentation is written for clarity and readability. Beyond fixing
+        spelling and grammar, this also means content is worded to be accessible
+        to a broad audience.
+    -   Substantive changes to Carbon follow the
+        [evolution process](docs/project/evolution.md). Pull requests are only
+        sent after the documentation changes have been accepted by the reviewing
+        team.
+    -   Typos or other minor fixes that don't change the meaning of a document
+        do not need formal review, and are often handled directly as a pull
+        request.
+
+-   For code:
+
+    -   New features should have a documented design that has been approved
+        through the [evolution process](docs/project/evolution.md). This
+        includes modifications to pre-existing designs.
+    -   Bug fixes and mechanical improvements don't need this.
+    -   All new features include unit tests, as they help to (a) document and
+        validate concrete usage of the feature and its edge cases, and (b) guard
+        against future breaking changes to lower the maintenance cost.
+    -   Bug fixes also generally include unit tests, because the presence of
+        bugs usually indicates insufficient test coverage.
+    -   Unit tests must pass with the changes.
+    -   If some tests fail for unrelated reasons, we wait until they're fixed.
+        It helps to contribute a fix!
+    -   Code changes are made with API compatibility and evolvability in mind.
+        Reviewers will comment on any API compatibility issues.
+    -   Keep in mind that code contribution guidelines are incomplete while we
+        start work on Carbon, and may change later.
 
 ## pre-commit
 
@@ -204,19 +207,19 @@ Markdown files should additionally use
 
 Other style points to be aware of are:
 
-- Whereas the Google developer documentation style guide
-  [says to use an em dash](https://developers.google.com/style/dashes)
-  (`text—text`), we are using a double-hyphen with surrounding spaces
-  (`text -- text`). We are doing this because we frequently read Markdown with
-  fixed-width fonts where em dashes are not clearly visible.
-- Always say "Discourse Forum" and "Discord Chat" to avoid confusion between
-  systems.
-- Prefer the term "developers" when talking about people who would write Carbon
-  code. We expect the Carbon's community to include people who think of
-  themselves using many titles, including software developers, software
-  engineers, systems engineers, reliability engineers, data scientists, computer
-  scientists, programmers, and coders. We're using "developers" to succinctly
-  cover the variety of titles.
+-   Whereas the Google developer documentation style guide
+    [says to use an em dash](https://developers.google.com/style/dashes)
+    (`text—text`), we are using a double-hyphen with surrounding spaces
+    (`text -- text`). We are doing this because we frequently read Markdown with
+    fixed-width fonts where em dashes are not clearly visible.
+-   Always say "Discourse Forum" and "Discord Chat" to avoid confusion between
+    systems.
+-   Prefer the term "developers" when talking about people who would write
+    Carbon code. We expect the Carbon's community to include people who think of
+    themselves using many titles, including software developers, software
+    engineers, systems engineers, reliability engineers, data scientists,
+    computer scientists, programmers, and coders. We're using "developers" to
+    succinctly cover the variety of titles.
 
 ### Other files
 

+ 38 - 36
README.md

@@ -56,9 +56,9 @@ migration of large existing codebases. They are specifically designed to not
 require complete rewrites, new programming models, or building an entire new
 stack/ecosystem. However, there is no comparable option for C++ today:
 
-- JavaScript → TypeScript
-- Java → Kotlin
-- C++ → **???**
+-   JavaScript → TypeScript
+-   Java → Kotlin
+-   C++ → **???**
 
 Carbon explores what it would look like to fill this gap and align it with the
 above priorities.
@@ -74,12 +74,12 @@ It is important to understand that **this is a science experiment**, not a
 production effort. There are several initial questions that we want to explore
 and answer with this experiment:
 
-- Can we deliver a design and implementation that is familiar and compelling to
-  C++ programmers and supports our goals?
-- How seamless and effective can we make interoperability?
-- How easy and scalable can we make migration?
-- Will a significant segment of the ecosystem and industry adopt Carbon given
-  these tradeoffs?
+-   Can we deliver a design and implementation that is familiar and compelling
+    to C++ programmers and supports our goals?
+-   How seamless and effective can we make interoperability?
+-   How easy and scalable can we make migration?
+-   Will a significant segment of the ecosystem and industry adopt Carbon given
+    these tradeoffs?
 
 We are committed to learning the answers to these questions, but that may well
 not result in a production language. There is a very real chance that this
@@ -99,37 +99,38 @@ We hope that eventually Carbon will provide **significant advantages compared to
 today's C++**. Areas where we think we can most dramatically improve C++ for
 both software systems and developers are:
 
-- A cohesive and principled language design, even when supporting advanced
-  features.
-- Making common coding patterns safe by default whenever practical, with
-  affordable security mitigations available for any unsafety.
-  - We will provide static checks for as many safety issues as we can by
-    default.
-  - We will provide a spectrum of build modes with different trade-offs between
-    dynamic safety and performance. For example:
-    - The default build mode will include as many dynamic safety checks as we
-      can while keeping the software's performance reasonable for normal
-      development, testing, and debugging.
-    - Release builds will favor performance, with opt-in dynamic safety checks
-      and security mitigations for applications with higher security
-      requirements.
-  - Over time, we also expect to both track and drive research into increasing
-    the degree of safety available without compromising our other goals.
-- Keeping our core language implementation simple, fast, and easily extended in
-  ways that will make all of our language tools better.
-- Providing an effective, open, and inclusive language evolution process aligned
-  with our goals and priorities.
+-   A cohesive and principled language design, even when supporting advanced
+    features.
+-   Making common coding patterns safe by default whenever practical, with
+    affordable security mitigations available for any unsafety.
+    -   We will provide static checks for as many safety issues as we can by
+        default.
+    -   We will provide a spectrum of build modes with different trade-offs
+        between dynamic safety and performance. For example:
+        -   The default build mode will include as many dynamic safety checks as
+            we can while keeping the software's performance reasonable for
+            normal development, testing, and debugging.
+        -   Release builds will favor performance, with opt-in dynamic safety
+            checks and security mitigations for applications with higher
+            security requirements.
+    -   Over time, we also expect to both track and drive research into
+        increasing the degree of safety available without compromising our other
+        goals.
+-   Keeping our core language implementation simple, fast, and easily extended
+    in ways that will make all of our language tools better.
+-   Providing an effective, open, and inclusive language evolution process
+    aligned with our goals and priorities.
 
 Carbon will also aim to allow a single layer of a legacy C++ library stack to be
 migrated to Carbon, without migrating the code above or below. This will make it
 easier for developers to start using Carbon. Key features underpin Carbon's
 compatibility and interoperability with C++:
 
-- The memory, execution, and threading model will be compatible with C++.
-- Access to existing C++ types, interfaces, and even templates will be provided
-  as part of the core language.
-- Carbon will be able to export types, interfaces, and templates for consumption
-  by C++.
+-   The memory, execution, and threading model will be compatible with C++.
+-   Access to existing C++ types, interfaces, and even templates will be
+    provided as part of the core language.
+-   Carbon will be able to export types, interfaces, and templates for
+    consumption by C++.
 
 **However, Carbon's approach still requires a nearly complete re-engineering of
 the language as well as large-scale migration for users.** This is extremely
@@ -140,5 +141,6 @@ very high.
 
 Carbon's main repositories are:
 
-- **carbon-lang** - Carbon language specification and documentation.
-- **carbon-toolchain** - Carbon language toolchain and reference implementation.
+-   **carbon-lang** - Carbon language specification and documentation.
+-   **carbon-toolchain** - Carbon language toolchain and reference
+    implementation.

+ 32 - 31
docs/project/commenting_guidelines.md

@@ -13,44 +13,45 @@ always try to keep feedback, even when critical, constructive and supportive.
 
 ## Guidelines
 
-- **Comments should be specific about the issue.** They should include a
-  suggested action, and the expected result from that action. The more specific
-  a comment is, the easier it will be for the proposal author to evaluate.
+-   **Comments should be specific about the issue.** They should include a
+    suggested action, and the expected result from that action. The more
+    specific a comment is, the easier it will be for the proposal author to
+    evaluate.
 
-  - Objections to specific phrasing should suggest alternative phrasing.
+    -   Objections to specific phrasing should suggest alternative phrasing.
 
-- **Prefer GitHub for comments.** When reviewing a proposal, we would like to
-  keep the discussion focused in one place: the GitHub pull request.
+-   **Prefer GitHub for comments.** When reviewing a proposal, we would like to
+    keep the discussion focused in one place: the GitHub pull request.
 
-  - If your comment represents a significant change to the proposal, include a
-    list of pros and cons. Even if the author disagrees with the change, they
-    can use those to document the alternative.
-  - Feel free to extract long side discussions to a Discourse Forum topic, but
-    make sure any important conclusions or outcomes are reflected in either the
-    GitHub comments or the change itself.
+    -   If your comment represents a significant change to the proposal, include
+        a list of pros and cons. Even if the author disagrees with the change,
+        they can use those to document the alternative.
+    -   Feel free to extract long side discussions to a Discourse Forum topic,
+        but make sure any important conclusions or outcomes are reflected in
+        either the GitHub comments or the change itself.
 
-- **Be supportive in your criticism.** The author may be receiving many
-  comments, and we want to keep contributors motivated to respond.
+-   **Be supportive in your criticism.** The author may be receiving many
+    comments, and we want to keep contributors motivated to respond.
 
-- **Be thoughtful about interactions.** Keep the
-  [code of conduct](/CODE_OF_CONDUCT.md) in mind. Try to understand
-  disagreements, and if you can't make progress, step back and think about other
-  possible approaches.
+-   **Be thoughtful about interactions.** Keep the
+    [code of conduct](/CODE_OF_CONDUCT.md) in mind. Try to understand
+    disagreements, and if you can't make progress, step back and think about
+    other possible approaches.
 
-- **Compliment the author when you're happy with a proposal.** Especially on the
-  Discourse Forum topics where others will see the feedback. This helps all of
-  us avoid _only_ focusing on how proposals should improve. We want to balance
-  that important feedback with explicit and positive feedback for all the good
-  aspects.
+-   **Compliment the author when you're happy with a proposal.** Especially on
+    the Discourse Forum topics where others will see the feedback. This helps
+    all of us avoid _only_ focusing on how proposals should improve. We want to
+    balance that important feedback with explicit and positive feedback for all
+    the good aspects.
 
 When commenting on a proposal, some questions community members might want to
 address are:
 
-- What is your evaluation of the proposal?
-- Is the problem being addressed significant enough to warrant a change to
-  Carbon?
-- Does this proposal fit with Carbon's
-  [goals, priorities, and principles](goals.md)?
-- Are there alternative approaches that may be better suited to the problem?
-- If you have used other languages or libraries with a similar feature, how does
-  the proposal compare?
+-   What is your evaluation of the proposal?
+-   Is the problem being addressed significant enough to warrant a change to
+    Carbon?
+-   Does this proposal fit with Carbon's
+    [goals, priorities, and principles](goals.md)?
+-   Are there alternative approaches that may be better suited to the problem?
+-   If you have used other languages or libraries with a similar feature, how
+    does the proposal compare?

+ 26 - 26
docs/project/consensus_decision_making.md

@@ -29,15 +29,15 @@ that may only be noticed by a minority.
 Team members have a fundamentally different role while working towards consensus
 on a decision than at other times on the project. They are expected to:
 
-- Set aside personal advocacy and preferences, and focus on the best decision
-  for the project and community.
-- Critically evaluate whether their concerns are severe enough to warrant
-  blocking.
-- Focus on the information presented in a proposal, rather than adding new
-  information. If new information is needed, the request for it should be the
-  decision.
-- Recognize their own biases and stand aside when unable to form an objective
-  position.
+-   Set aside personal advocacy and preferences, and focus on the best decision
+    for the project and community.
+-   Critically evaluate whether their concerns are severe enough to warrant
+    blocking.
+-   Focus on the information presented in a proposal, rather than adding new
+    information. If new information is needed, the request for it should be the
+    decision.
+-   Recognize their own biases and stand aside when unable to form an objective
+    position.
 
 More about consensus decision making may be found from
 "[On Conflict and Consensus](https://web.archive.org/web/20111026234752/http://www.ic.org/pnp/ocac/)",
@@ -47,24 +47,24 @@ and https://www.consensusdecisionmaking.org/.
 
 A formal decision consists of:
 
-- The decision itself.
-- A summary of the decision rationale.
-- A summary of important discussion points.
+-   The decision itself.
+-   A summary of the decision rationale.
+-   A summary of important discussion points.
 
 Here are some possible decisions with their meanings:
 
-- **accepted**: Yes, we want this now.
-- **declined**: No, we don't think this is the right direction for Carbon.
-- **needs work**:
-  - We need more information or data before we can decide if this is the right
-    direction.
-  - We like the direction, but the proposal needs significant changes before
-    being accepted.
-- **deferred**:
-  - We like the direction, but it isn't our priority right now, so bring the
-    proposal back later.
-  - We aren't sure about the direction, but it isn't our priority right now, so
-    bring it back later.
+-   **accepted**: Yes, we want this now.
+-   **declined**: No, we don't think this is the right direction for Carbon.
+-   **needs work**:
+    -   We need more information or data before we can decide if this is the
+        right direction.
+    -   We like the direction, but the proposal needs significant changes before
+        being accepted.
+-   **deferred**:
+    -   We like the direction, but it isn't our priority right now, so bring the
+        proposal back later.
+    -   We aren't sure about the direction, but it isn't our priority right now,
+        so bring it back later.
 
 When a proposal has open questions, the formal decision must include a decision
 for each open question. That may include filing GitHub issues to revisit the
@@ -116,8 +116,8 @@ and sub-items, with each agenda item resolving with a decision.
 
 As part of organizing a meeting, we will have two roles:
 
-- A **moderator** who is responsible for ensuring discussion stays on track.
-- A **note taker** who will record minutes for each meeting.
+-   A **moderator** who is responsible for ensuring discussion stays on track.
+-   A **note taker** who will record minutes for each meeting.
 
 Roles should be known before each meeting. These may or may not be staffed by
 reviewing team members; anybody taking a role should plan to be less involved in

+ 21 - 25
docs/project/contribution_tools.md

@@ -13,12 +13,12 @@ contributions.
 
 <!-- toc -->
 
-- [pre-commit](#pre-commit)
-- [black](#black)
-- [codespell](#codespell)
-- [markdown-toc](#markdown-toc)
-- [Prettier](#prettier)
-  - [vim-prettier](#vim-prettier)
+-   [pre-commit](#pre-commit)
+-   [black](#black)
+-   [codespell](#codespell)
+-   [markdown-toc](#markdown-toc)
+-   [Prettier](#prettier)
+    -   [vim-prettier](#vim-prettier)
 
 <!-- tocstop -->
 
@@ -30,15 +30,16 @@ important checks, including formatting.
 
 To set up pre-commit:
 
-- Follow the [installation instructions](https://pre-commit.com/#installation).
-- Enable per-repo: `pre-commit install`
-  - We already have `pre-commit` configured for Carbon repos -- do not go
-    through the `Quick start` instructions.
-- pre-commit may be run either automatically with `git commit` or manually with
-  `pre-commit run`.
-  - When files are modified, including by pre-commit failures, `git add` will
-    need to be run to include the modifications in the commit, and the commit
-    re-started.
+-   Follow the
+    [installation instructions](https://pre-commit.com/#installation).
+-   Enable per-repo: `pre-commit install`
+    -   We already have `pre-commit` configured for Carbon repos -- do not go
+        through the `Quick start` instructions.
+-   pre-commit may be run either automatically with `git commit` or manually
+    with `pre-commit run`.
+    -   When files are modified, including by pre-commit failures, `git add`
+        will need to be run to include the modifications in the commit, and the
+        commit re-started.
 
 When modifying or adding pre-commit hooks, please run
 `pre-commit run --all-files` to see what changes.
@@ -77,16 +78,11 @@ always run Prettier after markdown-toc.
 > Installing and running manually is optional, but may be helpful.
 
 We use [Prettier](https://prettier.io/) for formatting. There is an
-[rc file](/.prettierrc) for configuration.
+[rc file](/.prettierrc.yaml) for configuration.
 
 ### vim-prettier
 
-If you use [vim-prettier](https://github.com/prettier/vim-prettier), it may help
-to add to your `.vimrc`:
-
-```
-let g:prettier#config#print_width = '80'
-let g:prettier#config#tab_width = '2'
-let g:prettier#config#use_tabs = 'false'
-let g:prettier#config#prose_wrap = 'always'
-```
+If you use [vim-prettier](https://github.com/prettier/vim-prettier), the
+`.prettierrc.yaml` should still apply as long as `config_precedence` is set to
+the default `file-override`. However, we may need to add additional settings
+where the `vim-prettier` default diverges from `prettier`, as we notice them.

+ 176 - 167
docs/project/evolution.md

@@ -18,14 +18,15 @@ bounded timeframe.
 Our governance structure supports
 [consensus decision-making](consensus_decision_making.md):
 
-- Community members write proposals.
-- [Review managers](#review-managers) escort proposals through our consensus
-  decision process.
-- A [core team](#core-team) makes consensus decisions about Carbon's evolution.
-- Three [arbiters](#arbiters) respond to escalations about lack of consensus,
-  making decisions through majority vote.
-- One [painter](#painter) who, where a consensus exists that multiple competing
-  options are reasonable, decides between the provided options.
+-   Community members write proposals.
+-   [Review managers](#review-managers) escort proposals through our consensus
+    decision process.
+-   A [core team](#core-team) makes consensus decisions about Carbon's
+    evolution.
+-   Three [arbiters](#arbiters) respond to escalations about lack of consensus,
+    making decisions through majority vote.
+-   One [painter](#painter) who, where a consensus exists that multiple
+    competing options are reasonable, decides between the provided options.
 
 ## Evolution process
 
@@ -67,21 +68,22 @@ The process is:
 
 We use several tools to coordinate changes to Carbon:
 
-- **GitHub pull requests** contain the proposals and related discussion.
-  Resolved proposals will be committed with the associated decision. The pull
-  request's description should link all related Discourse Forum topics and other
-  references for easy browsing.
-- **Discourse Forum** topics will be used for the early idea discussion, any
-  deeper discussions, or more high-level and meta points.
-- **Discord Chat** can be used for quick and real-time chats and Q&A.
-  - If there are important technical points raised or addressed, they should get
-    summarized on a relevant Discourse Forum topic.
-- **Google Docs** may be used for early draft proposals. This facilitates
-  collaborative editing and easy commenting about wording issues.
-- **Google Hangouts Meet** will be used for VC meetings, typically for
-  decisions.
-  - Meetings should typically be summarized on a relevant Discourse Forum topic.
-- **Google Calendar** will be used to track team meeting and vacation times.
+-   **GitHub pull requests** contain the proposals and related discussion.
+    Resolved proposals will be committed with the associated decision. The pull
+    request's description should link all related Discourse Forum topics and
+    other references for easy browsing.
+-   **Discourse Forum** topics will be used for the early idea discussion, any
+    deeper discussions, or more high-level and meta points.
+-   **Discord Chat** can be used for quick and real-time chats and Q&A.
+    -   If there are important technical points raised or addressed, they should
+        get summarized on a relevant Discourse Forum topic.
+-   **Google Docs** may be used for early draft proposals. This facilitates
+    collaborative editing and easy commenting about wording issues.
+-   **Google Hangouts Meet** will be used for VC meetings, typically for
+    decisions.
+    -   Meetings should typically be summarized on a relevant Discourse Forum
+        topic.
+-   **Google Calendar** will be used to track team meeting and vacation times.
 
 ## Governance structure
 
@@ -100,8 +102,8 @@ team will still review participation.
 
 Our current review managers are:
 
-- [jonmeow](https://github.com/jonmeow)
-- [sidney13](https://github.com/sidney13)
+-   [jonmeow](https://github.com/jonmeow)
+-   [sidney13](https://github.com/sidney13)
 
 ### Core team
 
@@ -116,14 +118,14 @@ may be added when necessary to expand representation.
 
 Our current core team members are:
 
-- [austern](https://github.com/austern)
-- [chandlerc](https://github.com/chandlerc)
-- [geoffromer](https://github.com/geoffromer)
-- [gribozavr](https://github.com/gribozavr)
-- [josh11b](https://github.com/josh11b)
-- [noncombatant](https://github.com/noncombatant)
-- [tituswinters](https://github.com/tituswinters)
-- [zygoloid](https://github.com/zygoloid)
+-   [austern](https://github.com/austern)
+-   [chandlerc](https://github.com/chandlerc)
+-   [geoffromer](https://github.com/geoffromer)
+-   [gribozavr](https://github.com/gribozavr)
+-   [josh11b](https://github.com/josh11b)
+-   [noncombatant](https://github.com/noncombatant)
+-   [tituswinters](https://github.com/tituswinters)
+-   [zygoloid](https://github.com/zygoloid)
 
 **TODO**: We want this team to eventually include non-Googlers for a broader set
 of perspectives.
@@ -163,9 +165,9 @@ There should always be three arbiters.
 
 Our current arbiters are:
 
-- [chandlerc](https://github.com/chandlerc)
-- [tituswinters](https://github.com/tituswinters)
-- [zygoloid](https://github.com/zygoloid)
+-   [chandlerc](https://github.com/chandlerc)
+-   [tituswinters](https://github.com/tituswinters)
+-   [zygoloid](https://github.com/zygoloid)
 
 ### Painter
 
@@ -187,7 +189,7 @@ aesthetics reasonably consistent.
 
 The current painter is:
 
-- [chandlerc](https://github.com/chandlerc)
+-   [chandlerc](https://github.com/chandlerc)
 
 ### Adding and removing governance members
 
@@ -203,16 +205,16 @@ Any substantive change to Carbon -- whether the language, project,
 infrastructure, or otherwise -- should follow the evolution process. The meaning
 of "substantive" is subjective, but will generally include:
 
-- Any semantic or syntactic language change that isn't fixing a bug.
-- Major changes to project infrastructure, including additions and removals.
-- Changes to the process itself.
-- Rolling back a finalized decision, even if never executed.
+-   Any semantic or syntactic language change that isn't fixing a bug.
+-   Major changes to project infrastructure, including additions and removals.
+-   Changes to the process itself.
+-   Rolling back a finalized decision, even if never executed.
 
 Changes which generally will not require this process are:
 
-- Fixing typos or bugs that don't change the meaning and/or intent.
-- Rephrasing or refactoring documentation for easier reading.
-- Minor infrastructure updates, improvements, setting changes, tweaks.
+-   Fixing typos or bugs that don't change the meaning and/or intent.
+-   Rephrasing or refactoring documentation for easier reading.
+-   Minor infrastructure updates, improvements, setting changes, tweaks.
 
 If you're not sure whether to follow the process, please err on the side of
 following it. A team can always ask for a change to be made directly if they
@@ -234,10 +236,10 @@ efficient.
 
 ##### Actions
 
-- **Author**: Create an `Evolution > Ideas` forum topic to discuss the issue
-  before writing the proposal.
-- **Community**: Provide [constructive commentary](commenting_guidelines.md) for
-  ideas when feedback is solicited.
+-   **Author**: Create an `Evolution > Ideas` forum topic to discuss the issue
+    before writing the proposal.
+-   **Community**: Provide [constructive commentary](commenting_guidelines.md)
+    for ideas when feedback is solicited.
 
 #### Make a proposal
 
@@ -282,9 +284,10 @@ request for the RFC.
 
 ##### Actions
 
-- **Author**:
-  - Write the proposal using [the template](/proposals/template.md).
-    - The template has additional actions under "TODO: Initial proposal setup".
+-   **Author**:
+    -   Write the proposal using [the template](/proposals/template.md).
+        -   The template has additional actions under "TODO: Initial proposal
+            setup".
 
 #### (optional) Elicit early, high-level feedback on the proposal
 
@@ -294,11 +297,11 @@ favor GitHub comments over forum topic replies.
 
 ##### Actions
 
-- **Author**: Update, or create if needed, the `Evolution > Ideas` forum topic
-  to advertise the proposal and elicit early, high-level feedback.
-  - Add the topic's link to the GitHub pull request.
-- **Community**: Provide [constructive commentary](commenting_guidelines.md) for
-  ideas when feedback is solicited.
+-   **Author**: Update, or create if needed, the `Evolution > Ideas` forum topic
+    to advertise the proposal and elicit early, high-level feedback.
+    -   Add the topic's link to the GitHub pull request.
+-   **Community**: Provide [constructive commentary](commenting_guidelines.md)
+    for ideas when feedback is solicited.
 
 ### Solicit and address proposal feedback
 
@@ -313,11 +316,12 @@ discussion, as well as links to prior discussion topics.
 
 ##### Actions
 
-- **Author**:
-  - Replace the GitHub pull request's `WIP` label with `RFC`.
-  - Create an `Evolution > RFCs` forum topic.
-    - Summarize the discussion points, along with a link to the pull request.
-    - Add the topic's link to the pull request's description.
+-   **Author**:
+    -   Replace the GitHub pull request's `WIP` label with `RFC`.
+    -   Create an `Evolution > RFCs` forum topic.
+        -   Summarize the discussion points, along with a link to the pull
+            request.
+        -   Add the topic's link to the pull request's description.
 
 #### Community and reviewing team comments on proposal
 
@@ -339,11 +343,11 @@ also be added where the author isn't confident about the best approach.
 
 ##### Actions
 
-- **Author**:
-  - Update the proposal and/or reply to comments to address feedback.
-  - Create GitHub issues for any open questions to be revisited later.
-- **Reviewing team and community**: Provide
-  [constructive commentary](commenting_guidelines.md) for proposals.
+-   **Author**:
+    -   Update the proposal and/or reply to comments to address feedback.
+    -   Create GitHub issues for any open questions to be revisited later.
+-   **Reviewing team and community**: Provide
+    [constructive commentary](commenting_guidelines.md) for proposals.
 
 #### (optional) Pause for a major revision
 
@@ -360,12 +364,12 @@ discussion points thus far. Links to prior topics should be included.
 
 ##### Actions
 
-- **Author**:
-  - Announce to the Discourse Forum topic that the proposal is undergoing major
-    revision.
-  - Replace the GitHub pull request's `RFC` label with `WIP`.
-- **Reviewing team and community**: Refrain from commenting until the author
-  solicits feedback again.
+-   **Author**:
+    -   Announce to the Discourse Forum topic that the proposal is undergoing
+        major revision.
+    -   Replace the GitHub pull request's `RFC` label with `WIP`.
+-   **Reviewing team and community**: Refrain from commenting until the author
+    solicits feedback again.
 
 #### Request a review manager
 
@@ -388,15 +392,15 @@ the comment period by posting another message to the "Evolution > RFCs" topic.
 
 ##### Actions
 
-- **Author**:
-  - Ensure all comments are resolved.
-  - Create a `Evolution > Review manager requests` topic asking for a review
-    manager, providing a link to the proposal's GitHub pull request.
-    - Add the topic's link to the GitHub pull request.
-- **Review manager**:
-  - Ask reviewing team members to review the proposal when needed.
-  - Double-check that comment threads are addressed by the proposal.
-  - Update the `Evolution > RFCs` topic with a last call for comments.
+-   **Author**:
+    -   Ensure all comments are resolved.
+    -   Create a `Evolution > Review manager requests` topic asking for a review
+        manager, providing a link to the proposal's GitHub pull request.
+        -   Add the topic's link to the GitHub pull request.
+-   **Review manager**:
+    -   Ask reviewing team members to review the proposal when needed.
+    -   Double-check that comment threads are addressed by the proposal.
+    -   Update the `Evolution > RFCs` topic with a last call for comments.
 
 ### Reviewing team makes a proposal decision
 
@@ -410,7 +414,7 @@ making/accepting edits.
 
 ##### Actions
 
-- **Author**: Stop making changes to the proposal.
+-   **Author**: Stop making changes to the proposal.
 
 #### Ask the reviewing team for a proposal decision
 
@@ -424,19 +428,19 @@ removed if a decision is made before the meeting.
 Team members should familiarize themselves with the proposal and related
 discussion. Try to respond to the Discourse Forum topic promptly with:
 
-- A position, either affirming or objecting, is strongly preferred. Standing
-  aside is allowed.
-  - Rationales for positions should be based on discussion on the proposal's
-    `Evolution > RFCs` topic, and providing links helps write the decision.
-- A request for more time to review materials, to make it clear the intent is to
-  participate in the decision.
-- Discussion regarding positions or the decision itself.
-  - The reviewing team will participate in the proposal community comment
-    period, so that substantive feedback can be incorporated by the author prior
-    to requesting a decision.
-- A request to use the meeting for discussion.
-  - All topics for discussion will be captured either in the agenda or as a
-    comment on the pull request, to ensure they're ready for the meeting.
+-   A position, either affirming or objecting, is strongly preferred. Standing
+    aside is allowed.
+    -   Rationales for positions should be based on discussion on the proposal's
+        `Evolution > RFCs` topic, and providing links helps write the decision.
+-   A request for more time to review materials, to make it clear the intent is
+    to participate in the decision.
+-   Discussion regarding positions or the decision itself.
+    -   The reviewing team will participate in the proposal community comment
+        period, so that substantive feedback can be incorporated by the author
+        prior to requesting a decision.
+-   A request to use the meeting for discussion.
+    -   All topics for discussion will be captured either in the agenda or as a
+        comment on the pull request, to ensure they're ready for the meeting.
 
 The review manager should monitor the forum topic for consensus. If a decision
 is made before the meeting, the item should be removed from the meeting agenda.
@@ -445,21 +449,22 @@ make decisions.
 
 ##### Actions
 
-- **Author**:
-  - Respond to comments.
-- **Review manager:**
-  - Replace the GitHub pull request's `RFC` label with `needs decision`.
-  - Create an `Evolution > Proposal decisions` topic for pre-meeting discussion.
-  - Tentatively add the decision to the meeting one week in advance (or four
-    working days, if longer), and use that meeting if necessary to reach
-    consensus.
-  - Monitor the topic for a consensus decision.
-    - If a consensus is reached, ensure there's enough information to write a
-      decision.
-- **Every reviewing team member:**
-  - Review the proposal again and make comments if needed.
-  - Participate in reaching a consensus, or explicitly stand aside.
-  - Offer justifications towards a decision.
+-   **Author**:
+    -   Respond to comments.
+-   **Review manager:**
+    -   Replace the GitHub pull request's `RFC` label with `needs decision`.
+    -   Create an `Evolution > Proposal decisions` topic for pre-meeting
+        discussion.
+    -   Tentatively add the decision to the meeting one week in advance (or four
+        working days, if longer), and use that meeting if necessary to reach
+        consensus.
+    -   Monitor the topic for a consensus decision.
+        -   If a consensus is reached, ensure there's enough information to
+            write a decision.
+-   **Every reviewing team member:**
+    -   Review the proposal again and make comments if needed.
+    -   Participate in reaching a consensus, or explicitly stand aside.
+    -   Offer justifications towards a decision.
 
 #### (optional) Use the meeting to make a proposal decision
 
@@ -475,16 +480,16 @@ meeting, even if it is to defer the proposal. The review manager should verify
 they understand the decision, because they will be responsible for publishing
 it.
 
-- **Author**: (optional) Consider attending the meeting to better understand the
-  proposal decision.
-- **Review manager**:
-  - Help identify a
-    [moderator and note taker](consensus_decision_making.md#roles) for the
-    meeting, possibly volunteering as note taker.
-  - Ensure the meeting provides enough information to write a decision.
-- **Reviewing team**:
-  - Participate in reaching a consensus, or explicitly stand aside.
-  - Offer justifications towards a decision.
+-   **Author**: (optional) Consider attending the meeting to better understand
+    the proposal decision.
+-   **Review manager**:
+    -   Help identify a
+        [moderator and note taker](consensus_decision_making.md#roles) for the
+        meeting, possibly volunteering as note taker.
+    -   Ensure the meeting provides enough information to write a decision.
+-   **Reviewing team**:
+    -   Participate in reaching a consensus, or explicitly stand aside.
+    -   Offer justifications towards a decision.
 
 ### Finalize the proposal decision
 
@@ -502,32 +507,33 @@ continue working on it.
 
 ##### Actions
 
-- **Review manager**:
-  - Write the
-    [formal decision](consensus_decision_making.md#formal-decision-content),
-    possibly with help from the reviewing team.
-    - (optional): Create a GitHub issue for issues that should be revisited in
-      the future. Link to these from the GitHub pull request.
-  - If the proposal was accepted:
-    - Prepare a GitHub pull request with the decision.
-    - Create an `Evolution > Announcements` forum topic and link to the proposal
-      and decision pull requests.
-    - Add the topic's link to the proposal's pull request.
-    - Approve the proposal's pull request for commit.
-  - If the proposal was deferred or declined:
-    - Comment on the proposal's pull request with the decision.
-    - Create an `Evolution > Announcements` forum topic and link to the proposal
-      and decision comment.
-- **Author**:
-  - If the proposal is accepted:
-    - Replace the GitHub pull request's `needs decision` label with `accepted`.
-    - Commit the approved pull request.
-  - If the proposal was deferred or declined, decide how best to proceed:
-    - If iterating on the proposal, replace the GitHub pull request's
-      `needs decision` label with `WIP`.
-    - If retracting the proposal, close the pull request.
-- **Reviewing team**: Help draft any rationale needed by the review manager for
-  the decision.
+-   **Review manager**:
+    -   Write the
+        [formal decision](consensus_decision_making.md#formal-decision-content),
+        possibly with help from the reviewing team.
+        -   (optional): Create a GitHub issue for issues that should be
+            revisited in the future. Link to these from the GitHub pull request.
+    -   If the proposal was accepted:
+        -   Prepare a GitHub pull request with the decision.
+        -   Create an `Evolution > Announcements` forum topic and link to the
+            proposal and decision pull requests.
+        -   Add the topic's link to the proposal's pull request.
+        -   Approve the proposal's pull request for commit.
+    -   If the proposal was deferred or declined:
+        -   Comment on the proposal's pull request with the decision.
+        -   Create an `Evolution > Announcements` forum topic and link to the
+            proposal and decision comment.
+-   **Author**:
+    -   If the proposal is accepted:
+        -   Replace the GitHub pull request's `needs decision` label with
+            `accepted`.
+        -   Commit the approved pull request.
+    -   If the proposal was deferred or declined, decide how best to proceed:
+        -   If iterating on the proposal, replace the GitHub pull request's
+            `needs decision` label with `WIP`.
+        -   If retracting the proposal, close the pull request.
+-   **Reviewing team**: Help draft any rationale needed by the review manager
+    for the decision.
 
 #### Community comments on proposal decision
 
@@ -543,10 +549,10 @@ period should not be used to continue to debate decisions unless raising
 specific new information. When commenting, some questions you might want to
 address are:
 
-- Is the decision clear in its conclusion?
-- Does the decision explain its rationale well?
-- Have concerns or alternatives been effectively understood, acknowledged, and
-  addressed to the extent possible?
+-   Is the decision clear in its conclusion?
+-   Does the decision explain its rationale well?
+-   Have concerns or alternatives been effectively understood, acknowledged, and
+    addressed to the extent possible?
 
 If the decision is to accept the proposal, the author may start making changes
 described in the proposal which are easy to roll back before the decision review
@@ -559,12 +565,13 @@ costs are non-obvious.
 
 ##### Actions
 
-- **Author:** (optional) Start making dependent changes which are easy to roll
-  back, and be prepared to roll back if needed.
-- **Review manager:** Respond to comments and bring any significant issues to
-  the reviewing team's attention.
-- **Community and reviewing team**: Provide
-  [constructive commentary](commenting_guidelines.md) for the proposal decision.
+-   **Author:** (optional) Start making dependent changes which are easy to roll
+    back, and be prepared to roll back if needed.
+-   **Review manager:** Respond to comments and bring any significant issues to
+    the reviewing team's attention.
+-   **Community and reviewing team**: Provide
+    [constructive commentary](commenting_guidelines.md) for the proposal
+    decision.
 
 #### (optional) Rollback the decision
 
@@ -575,13 +582,14 @@ should be exceptional.
 
 ##### Actions
 
-- **Author**: Roll back the committed proposal and any dependent changes.
-- **Reviewing team member**: State new, non-consensus position on
-  `Evolution > Decisions` forum topic.
-- **Review manager**:
-  - Update the `Evolution > Announcements` forum topic to reflect the rollback.
-  - Return to
-    [asking the reviewing team for a proposal decision](#ask-the-reviewing-team-for-a-proposal-decision).
+-   **Author**: Roll back the committed proposal and any dependent changes.
+-   **Reviewing team member**: State new, non-consensus position on
+    `Evolution > Decisions` forum topic.
+-   **Review manager**:
+    -   Update the `Evolution > Announcements` forum topic to reflect the
+        rollback.
+    -   Return to
+        [asking the reviewing team for a proposal decision](#ask-the-reviewing-team-for-a-proposal-decision).
 
 #### Execute on proposal decision
 
@@ -602,10 +610,11 @@ revisit the decision.
 
 ##### Actions
 
-- **Review manager**:
-  - Update the `Evolution > Announcements` forum topic with the final decision.
-  - If the proposal was accepted, commit the proposal decision.
-- **Author**: Start making dependent changes to apply the proposal.
+-   **Review manager**:
+    -   Update the `Evolution > Announcements` forum topic with the final
+        decision.
+    -   If the proposal was accepted, commit the proposal decision.
+-   **Author**: Start making dependent changes to apply the proposal.
 
 ## Acknowledgements
 

+ 38 - 38
docs/project/goals.md

@@ -10,28 +10,28 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
 <!-- toc -->
 
-- [Overview](#overview)
-- [Project goals](#project-goals)
-  - [Community and culture](#community-and-culture)
-  - [Language tools and ecosystem](#language-tools-and-ecosystem)
-- [Language goals and priorities](#language-goals-and-priorities)
-  - [Goals in detail](#goals-in-detail)
-    - [Performance-critical software](#performance-critical-software)
-    - [Software and language evolution](#software-and-language-evolution)
-    - [Code that is easy to read, understand, and write](#code-that-is-easy-to-read-understand-and-write)
-    - [Practical safety guarantees and testing mechanisms](#practical-safety-guarantees-and-testing-mechanisms)
-    - [Fast and scalable development](#fast-and-scalable-development)
-    - [Modern OS platforms, hardware architectures, and environments](#modern-os-platforms-hardware-architectures-and-environments)
-    - [Interoperability with and migration from existing C++ code](#interoperability-with-and-migration-from-existing-c-code)
-  - [Non-goals](#non-goals)
-    - [Stable language and library ABI](#stable-language-and-library-abi)
-    - [Backwards or forwards compatibility](#backwards-or-forwards-compatibility)
-    - [Legacy compiled libraries without source code or ability to rebuild](#legacy-compiled-libraries-without-source-code-or-ability-to-rebuild)
-    - [Support for existing compilation and linking models](#support-for-existing-compilation-and-linking-models)
-    - [Idiomatic migration of non-modern, non-idiomatic C++ code](#idiomatic-migration-of-non-modern-non-idiomatic-c-code)
-  - [Principles](#principles)
-- [Prioritization beyond goals](#prioritization-beyond-goals)
-- [Acknowledgements](#acknowledgements)
+-   [Overview](#overview)
+-   [Project goals](#project-goals)
+    -   [Community and culture](#community-and-culture)
+    -   [Language tools and ecosystem](#language-tools-and-ecosystem)
+-   [Language goals and priorities](#language-goals-and-priorities)
+    -   [Goals in detail](#goals-in-detail)
+        -   [Performance-critical software](#performance-critical-software)
+        -   [Software and language evolution](#software-and-language-evolution)
+        -   [Code that is easy to read, understand, and write](#code-that-is-easy-to-read-understand-and-write)
+        -   [Practical safety guarantees and testing mechanisms](#practical-safety-guarantees-and-testing-mechanisms)
+        -   [Fast and scalable development](#fast-and-scalable-development)
+        -   [Modern OS platforms, hardware architectures, and environments](#modern-os-platforms-hardware-architectures-and-environments)
+        -   [Interoperability with and migration from existing C++ code](#interoperability-with-and-migration-from-existing-c-code)
+    -   [Non-goals](#non-goals)
+        -   [Stable language and library ABI](#stable-language-and-library-abi)
+        -   [Backwards or forwards compatibility](#backwards-or-forwards-compatibility)
+        -   [Legacy compiled libraries without source code or ability to rebuild](#legacy-compiled-libraries-without-source-code-or-ability-to-rebuild)
+        -   [Support for existing compilation and linking models](#support-for-existing-compilation-and-linking-models)
+        -   [Idiomatic migration of non-modern, non-idiomatic C++ code](#idiomatic-migration-of-non-modern-non-idiomatic-c-code)
+    -   [Principles](#principles)
+-   [Prioritization beyond goals](#prioritization-beyond-goals)
+-   [Acknowledgements](#acknowledgements)
 
 <!-- tocstop -->
 
@@ -296,22 +296,22 @@ activities where humans interact with Carbon: reading, writing, designing,
 discussing, reviewing, and refactoring code, as well as learning and teaching
 Carbon. A few examples:
 
-- Carbon should not use symbols that are difficult to type, see, or
-  differentiate from similar symbols in commonly used contexts.
-- Syntax should be easily parsed and scanned by any human in any development
-  environment, not just a machine or a human aided by semantic hints from an
-  IDE.
-- Code with similar behavior should use similar syntax, and code with different
-  behavior should use different syntax. Behavior in this context should include
-  both the functionality and performance of the code. This is part of conceptual
-  integrity.
-- Explicitness must be balanced against conciseness, as verbosity and ceremony
-  add cognitive overhead for the reader, while explicitness reduces the amount
-  of outside context the reader must have or assume.
-- Common yet complex tasks, such as parallel code, should be well-supported in
-  ways that are easy to reason about.
-- Ordinary tasks should not require extraordinary care, because humans cannot
-  consistently avoid making mistakes for an extended amount of time.
+-   Carbon should not use symbols that are difficult to type, see, or
+    differentiate from similar symbols in commonly used contexts.
+-   Syntax should be easily parsed and scanned by any human in any development
+    environment, not just a machine or a human aided by semantic hints from an
+    IDE.
+-   Code with similar behavior should use similar syntax, and code with
+    different behavior should use different syntax. Behavior in this context
+    should include both the functionality and performance of the code. This is
+    part of conceptual integrity.
+-   Explicitness must be balanced against conciseness, as verbosity and ceremony
+    add cognitive overhead for the reader, while explicitness reduces the amount
+    of outside context the reader must have or assume.
+-   Common yet complex tasks, such as parallel code, should be well-supported in
+    ways that are easy to reason about.
+-   Ordinary tasks should not require extraordinary care, because humans cannot
+    consistently avoid making mistakes for an extended amount of time.
 
 **Support tooling at every layer of the development experience, including
 IDEs.** The design and implementation of Carbon should make it easy to create

+ 28 - 28
docs/project/groups.md

@@ -11,24 +11,24 @@ tracking.
 
 We use a mix of:
 
-- Groups to assist contacting key contributors on appropriate systems:
-  - **GitHub teams**
-  - **Discourse Forums groups**
-  - **Discord Chat roles**
-- **Google groups**, usually as Google Drive ACLs. We generally won't use these
-  as contact lists, unless specifically mentioned. Please prefer Discourse
-  Forums.
+-   Groups to assist contacting key contributors on appropriate systems:
+    -   **GitHub teams**
+    -   **Discourse Forums groups**
+    -   **Discord Chat roles**
+-   **Google groups**, usually as Google Drive ACLs. We generally won't use
+    these as contact lists, unless specifically mentioned. Please prefer
+    Discourse Forums.
 
 ## All contributors
 
-- [GitHub organization](https://github.com/orgs/carbon-language/people)
-  - [GitHub team: Contributors with label access](https://github.com/orgs/carbon-language/teams/contributors-with-label-access):
-    Mirrors the GitHub organization for write access.
-    [Manually updated](/src/scripts/update-label-access.js).
-- [Discourse Forums account](https://forums.carbon-lang.dev)
-- [Discord Chat access](https://discord.com/app)
-- [Google group](https://groups.google.com/g/carbon-lang-contributors): Grants
-  Google Drive access.
+-   [GitHub organization](https://github.com/orgs/carbon-language/people)
+    -   [GitHub team: Contributors with label access](https://github.com/orgs/carbon-language/teams/contributors-with-label-access):
+        Mirrors the GitHub organization for write access.
+        [Manually updated](/src/scripts/update-label-access.js).
+-   [Discourse Forums account](https://forums.carbon-lang.dev)
+-   [Discord Chat access](https://discord.com/app)
+-   [Google group](https://groups.google.com/g/carbon-lang-contributors): Grants
+    Google Drive access.
 
 ## Team-specific access
 
@@ -37,27 +37,27 @@ when somebody joins the respective team.
 
 ### Admins
 
-- [GitHub owners](https://github.com/orgs/carbon-language/people?query=role%3Aowner)
-- [Discourse Forums group](https://forums.carbon-lang.dev/g/admins)
-- Discord Chat role: admin
+-   [GitHub owners](https://github.com/orgs/carbon-language/people?query=role%3Aowner)
+-   [Discourse Forums group](https://forums.carbon-lang.dev/g/admins)
+-   Discord Chat role: admin
 
 ### Conduct team
 
 For most purposes, the Core team should be contacted about conduct issues.
 
-- [Google group](https://groups.google.com/g/carbon-lang-conduct-team):
-  Primarily a contact list.
+-   [Google group](https://groups.google.com/g/carbon-lang-conduct-team):
+    Primarily a contact list.
 
 ### Core team
 
-- [GitHub team](https://github.com/orgs/carbon-language/teams/core-team)
-- [Discourse Forums group](https://forums.carbon-lang.dev/g/core_team)
-- Discord Chat role: core-team
+-   [GitHub team](https://github.com/orgs/carbon-language/teams/core-team)
+-   [Discourse Forums group](https://forums.carbon-lang.dev/g/core_team)
+-   Discord Chat role: core-team
 
 ### Review managers
 
-- [GitHub team](https://github.com/orgs/carbon-language/teams/review-managers)
-- [Discourse Forums group](https://forums.carbon-lang.dev/g/review_managers)
-- Discord Chat role: review-managers
-- [Google group](https://groups.google.com/g/carbon-lang-review-managers):
-  Grants Google Drive access.
+-   [GitHub team](https://github.com/orgs/carbon-language/teams/review-managers)
+-   [Discourse Forums group](https://forums.carbon-lang.dev/g/review_managers)
+-   Discord Chat role: review-managers
+-   [Google group](https://groups.google.com/g/carbon-lang-review-managers):
+    Grants Google Drive access.

+ 34 - 33
docs/project/principles/success_criteria.md

@@ -10,14 +10,14 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
 <!-- toc -->
 
-- [Principle](#principle)
-- [Applications of these principles](#applications-of-these-principles)
-  - [Modern OS platforms, hardware architectures, and environments](#modern-os-platforms-hardware-architectures-and-environments)
-    - [OS platforms](#os-platforms)
-    - [Hardware architectures](#hardware-architectures)
-    - [Historical platforms](#historical-platforms)
-  - [Interoperability with and migration from existing C++ code](#interoperability-with-and-migration-from-existing-c-code)
-    - [Migration tooling](#migration-tooling)
+-   [Principle](#principle)
+-   [Applications of these principles](#applications-of-these-principles)
+    -   [Modern OS platforms, hardware architectures, and environments](#modern-os-platforms-hardware-architectures-and-environments)
+        -   [OS platforms](#os-platforms)
+        -   [Hardware architectures](#hardware-architectures)
+        -   [Historical platforms](#historical-platforms)
+    -   [Interoperability with and migration from existing C++ code](#interoperability-with-and-migration-from-existing-c-code)
+        -   [Migration tooling](#migration-tooling)
 
 <!-- tocstop -->
 
@@ -49,22 +49,22 @@ This should not be considered an exhaustive list of important platforms.
 
 Our priority OS platforms are modern versions of:
 
-- Linux, including common distributions, Android and ChromeOS
-- FreeBSD
-- Windows
-- macOS and iOS
-- Fuchsia
-- WebAssembly
-- Bare metal
+-   Linux, including common distributions, Android and ChromeOS
+-   FreeBSD
+-   Windows
+-   macOS and iOS
+-   Fuchsia
+-   WebAssembly
+-   Bare metal
 
 #### Hardware architectures
 
 We expect to prioritize 64-bit little endian hardware, including:
 
-- x86-64
-- AArch64, also known as ARM 64-bit
-- PPC64LE, also known as Power ISA, 64-bit, Little Endian
-- RV64I, also known as RISC-V 64-bit
+-   x86-64
+-   AArch64, also known as ARM 64-bit
+-   PPC64LE, also known as Power ISA, 64-bit, Little Endian
+-   RV64I, also known as RISC-V 64-bit
 
 We believe Carbon should strive to support some GPUs, other restricted
 computational hardware and environments, and embedded environments. While this
@@ -76,15 +76,15 @@ while they remain relatively new and rapidly evolving.
 
 Example historical platforms that we will not prioritize support for are:
 
-- Byte sizes other than 8 bits, or non-power-of-two word sizes.
-- Source code encodings other than UTF-8.
-- Big- or mixed-endian, at least for computation; accessing encoded data remains
-  useful.
-- Non-2's-complement integer formats.
-- Non-IEEE 754 binary floating point format and semantics for default single-
-  and double-precision floating point types.
-- Source code in file systems that don’t support file extensions or nested
-  directories.
+-   Byte sizes other than 8 bits, or non-power-of-two word sizes.
+-   Source code encodings other than UTF-8.
+-   Big- or mixed-endian, at least for computation; accessing encoded data
+    remains useful.
+-   Non-2's-complement integer formats.
+-   Non-IEEE 754 binary floating point format and semantics for default single-
+    and double-precision floating point types.
+-   Source code in file systems that don’t support file extensions or nested
+    directories.
 
 ### Interoperability with and migration from existing C++ code
 
@@ -99,11 +99,12 @@ human interaction.
 
 This criterion includes:
 
-- Addressing performance bugs unique to Carbon, introduced by migration tooling.
-- Converting complex code which migration tooling does not handle.
+-   Addressing performance bugs unique to Carbon, introduced by migration
+    tooling.
+-   Converting complex code which migration tooling does not handle.
 
 This criterion does not include:
 
-- Cleaning up coding style to idiomatic Carbon.
-  - For example, heavy use of C++ preprocessor macros may result in expanded
-    code where there is no equivalent Carbon metaprogramming construct.
+-   Cleaning up coding style to idiomatic Carbon.
+    -   For example, heavy use of C++ preprocessor macros may result in expanded
+        code where there is no equivalent Carbon metaprogramming construct.

+ 17 - 16
docs/project/pull_request_workflow.md

@@ -8,26 +8,27 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
 Carbon repositories follow a few basic principles:
 
-- Development directly on the `trunk` branch and
-  [revert to green](#green-tests).
-- Always use pull requests, rather than pushing directly.
-- Changes should be small, incremental, and review-optimized.
-- Preserve linear history by
-  [rebasing](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-merges#rebase-and-merge-your-pull-request-commits)
-  or
-  [squashing](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-merges#squash-and-merge-your-pull-request-commits)
-  pull requests rather than using unsquashed merge commits.
+-   Development directly on the `trunk` branch and
+    [revert to green](#green-tests).
+-   Always use pull requests, rather than pushing directly.
+-   Changes should be small, incremental, and review-optimized.
+-   Preserve linear history by
+    [rebasing](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-merges#rebase-and-merge-your-pull-request-commits)
+    or
+    [squashing](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-merges#squash-and-merge-your-pull-request-commits)
+    pull requests rather than using unsquashed merge commits.
 
 These principles try to optimize for several different uses or activities with
 version control:
 
-- Continuous integration and bisection to identify failures and revert to green.
-- Code review both at the time of commit and follow-up review after commit.
-- Understanding how things evolve over time, which can manifest in different
-  ways:
-  - When were things introduced?
-  - How does the main branch and project evolve over time?
-  - How was a bug or surprising thing introduced?
+-   Continuous integration and bisection to identify failures and revert to
+    green.
+-   Code review both at the time of commit and follow-up review after commit.
+-   Understanding how things evolve over time, which can manifest in different
+    ways:
+    -   When were things introduced?
+    -   How does the main branch and project evolve over time?
+    -   How was a bug or surprising thing introduced?
 
 Note that this isn't a complete guide to doing code reviews, and just focuses on
 the mechanical workflow and branch management. TODO: Add an explicit link to

+ 11 - 11
docs/project/review_managers.md

@@ -11,12 +11,12 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 As part of [assisting in the evolution process](evolution.md#review-managers),
 review managers are expected to:
 
-- Monitor and respond to topics in
-  [Evolution > Review manager requests](https://forums.carbon-lang.dev/c/evolution/review-manager-requests/15).
-- Announce when RFCs are approaching
-  [readiness for a decision](evolution.md#request-a-review-manager).
-- [Escort the proposal to a decision.](evolution.md#ask-the-reviewing-team-for-a-proposal-decision)
-- [Author and publish proposal decisions.](evolution.md#finalize-the-proposal-decision)
+-   Monitor and respond to topics in
+    [Evolution > Review manager requests](https://forums.carbon-lang.dev/c/evolution/review-manager-requests/15).
+-   Announce when RFCs are approaching
+    [readiness for a decision](evolution.md#request-a-review-manager).
+-   [Escort the proposal to a decision.](evolution.md#ask-the-reviewing-team-for-a-proposal-decision)
+-   [Author and publish proposal decisions.](evolution.md#finalize-the-proposal-decision)
 
 Review managers should additionally provide advice and assistance to proposal
 authors where appropriate, to help ensure the smooth operation of the evolution
@@ -55,8 +55,8 @@ titled "Request for decision: PROPOSAL":
 
 Links:
 
-- [Proposal PR](LINK)
-- [RFC topic](LINK)
+-   [Proposal PR](LINK)
+-   [RFC topic](LINK)
 
 Please focus on affirm, object, and stand aside comments in this topic; other
 things specific to reaching consensus may be included. Affirm and object
@@ -95,9 +95,9 @@ titled "[DECISION] PROPOSAL":
 
 Please read the [formal decision PR](LINK) for details.
 
-- [Proposal PR](LINK)
-- [RFC topic](LINK)
-- [Decision topic](link)
+-   [Proposal PR](LINK)
+-   [RFC topic](LINK)
+-   [Decision topic](link)
 
 This decision is now entering the
 [decision comment period](https://carbon-lang.dev/docs/project/evolution.html#community-comments-on-proposal-decision),

+ 11 - 11
proposals/README.md

@@ -13,22 +13,22 @@ original pull request.
 For accepted proposals, where `####` is the corresponding proposal's pull
 request:
 
-- `p####.md` will contain the main proposal text.
-- `p####-decision.md` documents the decision and rationale.
-- `p####` may be present as an optional subdirectory for related files (e.g.,
-  images).
+-   `p####.md` will contain the main proposal text.
+-   `p####-decision.md` documents the decision and rationale.
+-   `p####` may be present as an optional subdirectory for related files (e.g.,
+    images).
 
 ## Proposal list
 
 <!-- proposals -->
 <!-- This list is updated by src/scripts/pre-commit-proposal-list.py. -->
 
-- [0029 - Linear, rebase, and pull-request GitHub workflow](p0029.md)
-  - [Decision](p0029-decision.md)
-- [0044 - Proposal tracking](p0044.md)
-  - [Decision](p0044-decision.md)
-- [0051 - Goals](p0051.md)
-- [0074 - Change comment/decision timelines in proposal process](p0074.md)
-  - [Decision](p0074-decision.md)
+-   [0029 - Linear, rebase, and pull-request GitHub workflow](p0029.md)
+    -   [Decision](p0029-decision.md)
+-   [0044 - Proposal tracking](p0044.md)
+    -   [Decision](p0044-decision.md)
+-   [0051 - Goals](p0051.md)
+-   [0074 - Change comment/decision timelines in proposal process](p0074.md)
+    -   [Decision](p0074-decision.md)
 
 <!-- endproposals -->

+ 14 - 14
proposals/p0029-decision.md

@@ -10,23 +10,23 @@ Proposal accepted on 2020-06-30
 
 Affirming:
 
-- [austern](https://github.com/austern)
-- [chandlerc](https://github.com/chandlerc)
-- [geoffromer](https://github.com/geoffromer)
-- [josh11b](https://github.com/josh11b)
-- [zygoloid](https://github.com/zygoloid)
+-   [austern](https://github.com/austern)
+-   [chandlerc](https://github.com/chandlerc)
+-   [geoffromer](https://github.com/geoffromer)
+-   [josh11b](https://github.com/josh11b)
+-   [zygoloid](https://github.com/zygoloid)
 
 Abstaining:
 
-- [gribozavr](https://github.com/gribozavr)
-- [noncombatant](https://github.com/noncombatant)
-- [tituswinters](https://github.com/tituswinters)
+-   [gribozavr](https://github.com/gribozavr)
+-   [noncombatant](https://github.com/noncombatant)
+-   [tituswinters](https://github.com/tituswinters)
 
 ## Rationale
 
-- Easy to follow single source of truth will help foster an open and inclusive
-  community.
-- Review requirements and focus on small, incremental changes match well
-  established engineering practices for ensuring the project and codebase scale
-  up both in size and time dimensions.
-- Linear history seems easier for humans to reason about.
+-   Easy to follow single source of truth will help foster an open and inclusive
+    community.
+-   Review requirements and focus on small, incremental changes match well
+    established engineering practices for ensuring the project and codebase
+    scale up both in size and time dimensions.
+-   Linear history seems easier for humans to reason about.

+ 48 - 44
proposals/p0029.md

@@ -18,13 +18,13 @@ and can be handled on a case-by-case basis when they arise.
 
 ## Background
 
-- Chapter 16 "Version Control and Branch Management" in the SWE book
-  (_[Software Engineering at Google](https://www.amazon.com/Software-Engineering-Google-Lessons-Programming/dp/1492082791)_)
-- [Trunk Based Development](https://trunkbaseddevelopment.com/)
-- GitHub documentation on
-  "[pull requests](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests)"
-  - [Configuration of their merges](https://help.github.com/en/github/administering-a-repository/configuring-pull-request-merges)
-  - [Protected branches](https://help.github.com/en/github/administering-a-repository/about-protected-branches)
+-   Chapter 16 "Version Control and Branch Management" in the SWE book
+    (_[Software Engineering at Google](https://www.amazon.com/Software-Engineering-Google-Lessons-Programming/dp/1492082791)_)
+-   [Trunk Based Development](https://trunkbaseddevelopment.com/)
+-   GitHub documentation on
+    "[pull requests](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests)"
+    -   [Configuration of their merges](https://help.github.com/en/github/administering-a-repository/configuring-pull-request-merges)
+    -   [Protected branches](https://help.github.com/en/github/administering-a-repository/about-protected-branches)
 
 ## Proposal
 
@@ -91,22 +91,22 @@ are allowed for rare events like contributing a new subproject.
 
 Pros:
 
-- Still has linear history.
-- Incentivizes squashing for continuous integration and bisection.
-- Very low overhead for fixing trivial mistakes.
+-   Still has linear history.
+-   Incentivizes squashing for continuous integration and bisection.
+-   Very low overhead for fixing trivial mistakes.
 
 Cons:
 
-- Creates extremely bad incentives around code review.
-  - Lots of patches don't get pre-commit review, even if they would benefit from
-    it.
-  - Very experienced contributors are much better at avoiding pre-commit review,
-    so are rarely blocked waiting on review.
-  - Leads to the most experienced members of the community not doing enough code
-    reviews, or being timely enough in code reviews.
-  - Lots of patches submitted with post-commit review are never reviewed in
-    practice unless they break something.
-- UI and basic support for code reviews entirely focused on pull requests.
+-   Creates extremely bad incentives around code review.
+    -   Lots of patches don't get pre-commit review, even if they would benefit
+        from it.
+    -   Very experienced contributors are much better at avoiding pre-commit
+        review, so are rarely blocked waiting on review.
+    -   Leads to the most experienced members of the community not doing enough
+        code reviews, or being timely enough in code reviews.
+    -   Lots of patches submitted with post-commit review are never reviewed in
+        practice unless they break something.
+-   UI and basic support for code reviews entirely focused on pull requests.
 
 ### Fork and merge model
 
@@ -115,26 +115,29 @@ development.
 
 Pros:
 
-- Mostly supported by pull requests, so still able to use much of that
-  functionality.
-- Supports a model in which contributors do not communicate and can each develop
-  a local, decentralized fork while still achieving overall reconciliation.
-- Can model much more complex history of code evolution faithfully in the
-  tooling.
-  - Most of the time these aren't so complex that they create problems for
-    humans.
+-   Mostly supported by pull requests, so still able to use much of that
+    functionality.
+-   Supports a model in which contributors do not communicate and can each
+    develop a local, decentralized fork while still achieving overall
+    reconciliation.
+-   Can model much more complex history of code evolution faithfully in the
+    tooling.
+    -   Most of the time these aren't so complex that they create problems for
+        humans.
 
 Cons:
 
-- History is harder for humans to understand and reason about in complex cases.
-- Bisection and continuous integration are more complex.
-  - May create difficulty for continuous integration against mainline, because
-    unclear what "order" they should be applied / explored. While there are
-    technical approaches to address this, the don't seem to eliminate the
-    complexity, merely provide a clear set of mechanics for handling it.
-- Reduces incentives to land small, incremental changes by allowing
-  non-linearity to reduce the effort required for large and/or complex merges.
-- Makes review of the main branch's history harder due to non-linearity.
+-   History is harder for humans to understand and reason about in complex
+    cases.
+-   Bisection and continuous integration are more complex.
+    -   May create difficulty for continuous integration against mainline,
+        because unclear what "order" they should be applied / explored. While
+        there are technical approaches to address this, the don't seem to
+        eliminate the complexity, merely provide a clear set of mechanics for
+        handling it.
+-   Reduces incentives to land small, incremental changes by allowing
+    non-linearity to reduce the effort required for large and/or complex merges.
+-   Makes review of the main branch's history harder due to non-linearity.
 
 ### Fork and merge, but branches can only have linear history
 
@@ -145,13 +148,14 @@ themselves don’t contain merge commits.
 
 Pros:
 
-- Mostly supported by GitHub pull requests, so still able to use much of that
-  functionality.
-- Restricts non-linearity of history. The only non-linearity that is left is
-  merge commits on the trunk branch. PRs themselves can’t contain merge commits.
+-   Mostly supported by GitHub pull requests, so still able to use much of that
+    functionality.
+-   Restricts non-linearity of history. The only non-linearity that is left is
+    merge commits on the trunk branch. PRs themselves can’t contain merge
+    commits.
 
 Cons:
 
-- Requires a custom presubmit on GitHub that checks linearity of a PR.
-- The cons of the fork and merge strategy regarding the complexity of history
-  remain, but to a smaller degree, since non-linearity is restricted.
+-   Requires a custom presubmit on GitHub that checks linearity of a PR.
+-   The cons of the fork and merge strategy regarding the complexity of history
+    remain, but to a smaller degree, since non-linearity is restricted.

+ 45 - 45
proposals/p0044-decision.md

@@ -10,17 +10,17 @@ Proposal accepted on 2020-06-02
 
 Affirming:
 
-- [austern](https://github.com/austern)
-- [chandlerc](https://github.com/chandlerc)
-- [geoffromer](https://github.com/geoffromer)
-- [gribozavr](https://github.com/gribozavr)
-- [josh11b](https://github.com/josh11b)
-- [zygoloid](https://github.com/zygoloid)
+-   [austern](https://github.com/austern)
+-   [chandlerc](https://github.com/chandlerc)
+-   [geoffromer](https://github.com/geoffromer)
+-   [gribozavr](https://github.com/gribozavr)
+-   [josh11b](https://github.com/josh11b)
+-   [zygoloid](https://github.com/zygoloid)
 
 Abstaining:
 
-- [noncombatant](https://github.com/noncombatant)
-- [tituswinters](https://github.com/tituswinters)
+-   [noncombatant](https://github.com/noncombatant)
+-   [tituswinters](https://github.com/tituswinters)
 
 ## Open questions
 
@@ -65,22 +65,22 @@ etc. In general, the PR-centric model was favored.
 
 ### Rationale for using a GitHub markdown-centric flow
 
-- The GitHub markdown-centric flow makes the on-ramp as smooth as possible for
-  external contributors.
-  - This positions the project to maximize the ease of engaging with and gaining
-    contributions from the wider industry.
-- The final documents must be in markdown form, so it is best if contributors
-  have the option to stay in markdown for the whole process. This is
-  significantly less complex than something that converts between formats:
+-   The GitHub markdown-centric flow makes the on-ramp as smooth as possible for
+    external contributors.
+    -   This positions the project to maximize the ease of engaging with and
+        gaining contributions from the wider industry.
+-   The final documents must be in markdown form, so it is best if contributors
+    have the option to stay in markdown for the whole process. This is
+    significantly less complex than something that converts between formats:
 
-  - Less to learn
-  - Fewer steps in the process
-  - No outdated versions in the old format left behind
+    -   Less to learn
+    -   Fewer steps in the process
+    -   No outdated versions in the old format left behind
 
-- The technical flow seems on balance better than the Google Docs-based
-  workflow. The proposal does a really good job explaining pros and cons. In
-  summary, the Google Docs-centric workflow has a lot of cons that make it
-  difficult to work with proposals over the long term.
+-   The technical flow seems on balance better than the Google Docs-based
+    workflow. The proposal does a really good job explaining pros and cons. In
+    summary, the Google Docs-centric workflow has a lot of cons that make it
+    difficult to work with proposals over the long term.
 
 ### Rationale for not requiring tracking issues
 
@@ -90,35 +90,35 @@ issues, the process is more light-weight without them.
 
 ### Rationale for not committing proposals that are declined or deferred
 
-- This approach seems simpler.
-- When a proposal PR includes the changes put forth in the proposal (PR-centric
-  model), the declined PR might need to be considerably changed--and might lose
-  context--in order to be committed.
-- The community will put a lot of work into developing, discussing, and making a
-  decision on a proposal. There may be valuable insight in rejected proposals,
-  so it makes sense to archive them. However, as noted, committing the PR will
-  not always be possible with reasonable effort if not working in a
-  proposal-centric model, as the proposal text may not stand on its own.
-- While we may discover issues with this approach, it is better to try this way,
-  see if any issues can be rectified, and propose changes as necessary.
+-   This approach seems simpler.
+-   When a proposal PR includes the changes put forth in the proposal
+    (PR-centric model), the declined PR might need to be considerably
+    changed--and might lose context--in order to be committed.
+-   The community will put a lot of work into developing, discussing, and making
+    a decision on a proposal. There may be valuable insight in rejected
+    proposals, so it makes sense to archive them. However, as noted, committing
+    the PR will not always be possible with reasonable effort if not working in
+    a proposal-centric model, as the proposal text may not stand on its own.
+-   While we may discover issues with this approach, it is better to try this
+    way, see if any issues can be rectified, and propose changes as necessary.
 
 ### Rationale for committing a proposal to the repository it affects
 
-- This keeps the proposal close to the repository, and therefore, the community,
-  that it affects.
-- It facilitates autonomy of (future) review teams responsible for a particular
-  aspect of Carbon. For example, a reference implementation team responsible for
-  the carbon-toolchain repository.
-- It simplifies the common case and makes it easier to find how each repository
-  evolves over time.
+-   This keeps the proposal close to the repository, and therefore, the
+    community, that it affects.
+-   It facilitates autonomy of (future) review teams responsible for a
+    particular aspect of Carbon. For example, a reference implementation team
+    responsible for the carbon-toolchain repository.
+-   It simplifies the common case and makes it easier to find how each
+    repository evolves over time.
 
 ### Rationale for pushing high-level comments to GitHub
 
 While opinions were not as strong, reasons given for perferring comments in
 GitHub:
 
-- This flow will maximize the alignment with “normal” GitHub development flow.
-  - This both improves pulling external/new people into the flow, and will
-    reduce the number of flows they need to learn/remember/tool for.
-- We will get ecosystem benefits as this flow continues to be optimized by
-  GitHub and those using it.
+-   This flow will maximize the alignment with “normal” GitHub development flow.
+    -   This both improves pulling external/new people into the flow, and will
+        reduce the number of flows they need to learn/remember/tool for.
+-   We will get ecosystem benefits as this flow continues to be optimized by
+    GitHub and those using it.

Diferenças do arquivo suprimidas por serem muito extensas
+ 391 - 378
proposals/p0044.md


+ 74 - 73
proposals/p0051.md

@@ -12,17 +12,17 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
 <!-- toc -->
 
-- [Problem](#problem)
-- [Background](#background)
-- [Proposal](#proposal)
-  - [Including success criteria](#including-success-criteria)
-- [Alternatives](#alternatives)
-  - [Change priority of interoperability and migration](#change-priority-of-interoperability-and-migration)
-  - [Address project goals differently](#address-project-goals-differently)
-    - [Status quo](#status-quo)
-    - [Completely remove the community priority from this document](#completely-remove-the-community-priority-from-this-document)
-    - [Add project goals to the priority list](#add-project-goals-to-the-priority-list)
-    - [Merge project goals and language goals](#merge-project-goals-and-language-goals)
+-   [Problem](#problem)
+-   [Background](#background)
+-   [Proposal](#proposal)
+    -   [Including success criteria](#including-success-criteria)
+-   [Alternatives](#alternatives)
+    -   [Change priority of interoperability and migration](#change-priority-of-interoperability-and-migration)
+    -   [Address project goals differently](#address-project-goals-differently)
+        -   [Status quo](#status-quo)
+        -   [Completely remove the community priority from this document](#completely-remove-the-community-priority-from-this-document)
+        -   [Add project goals to the priority list](#add-project-goals-to-the-priority-list)
+        -   [Merge project goals and language goals](#merge-project-goals-and-language-goals)
 
 <!-- tocstop -->
 
@@ -59,8 +59,8 @@ principle.
 This proposal includes
 [success criteria](/docs/project/principles/success_criteria.md) covering:
 
-- Platforms
-- Migration tooling
+-   Platforms
+-   Migration tooling
 
 It should be expected that more will be added in the future.
 
@@ -95,56 +95,56 @@ Overall, we would present the pros and cons as:
 
 Pros:
 
-- There is a consensus that interoperability is critical. Making it the top goal
-  emphasizes that.
+-   There is a consensus that interoperability is critical. Making it the top
+    goal emphasizes that.
 
 Cons:
 
-- While interoperability is critical, the same is true of other goals; this
-  isn't enough to determine priority.
-- There are trade-offs between goals where there is already a consensus that
-  inteoperability will be diminished in favor of other goals, and there aren't
-  as many clear cases in the other direction.
-  - Taken to extremes, making interoperability and migration a higher priority
-    than evolution would suggest that Carbon should start with C++ and
-    incrementally evolve from that base. We have observed areas where C++ has
-    had trouble evolving, and Carbon would risk getting stuck on similar local
-    maxima in order to avoid breaking existing code.
+-   While interoperability is critical, the same is true of other goals; this
+    isn't enough to determine priority.
+-   There are trade-offs between goals where there is already a consensus that
+    inteoperability will be diminished in favor of other goals, and there aren't
+    as many clear cases in the other direction.
+    -   Taken to extremes, making interoperability and migration a higher
+        priority than evolution would suggest that Carbon should start with C++
+        and incrementally evolve from that base. We have observed areas where
+        C++ has had trouble evolving, and Carbon would risk getting stuck on
+        similar local maxima in order to avoid breaking existing code.
 
 For example of where trade-offs may be seen right now:
 
-- Carbon's set of primitive types won't match C++'s list; we currently expect
-  multiple C++ types to map to single Carbon types. This could be considered a
-  conflict with multiple priorities:
-  - #2: Carbon's leaning for fewer types should make evolution of the language
-    easier.
-  - #3: Carbon code will be easier to read and understand with fewer types.
-- When considering `Int` vs `int`, Carbon's plans do not mirror C++. This could
-  be considered a conflict with multiple priorities:
-  - #1: Carbon's primary types, such as `Int`, should be allowed to replace
-    C++-specified overflow behaviors with alternatives that are higher
-    performance.
-  - #3: Avoiding platform-specific types should make it easier to understand how
-    could will function on various platforms.
-  - #4: Carbon's plan for `Int` trapping where C++ would overflow should make
-    code safety easier.
-- We expect platform support priorities to differ between C/C++ and Carbon. This
-  is a conflict with Carbon's #6 priority, which focuses support on modern over
-  legacy platforms.
-- C++'s preprocessor macros will be replaced by metaprogramming in Carbon. It's
-  not clear what migration of code using macros will look like, but some will
-  likely be expanded by automation. This could be considered a conflict with
-  multiple priorities:
-  - #2: Structured metaprogramming should make it easier to evolve software.
-  - #3: Metaprogramming should be easier to read than preprocessor macros.
-- Templates have been argued as only being added for interoperability/migration,
-  and that we could only have generics without that goal. This is not considered
-  a conflict between goal priorities.
-  - This could be considered a conflict with priority #3, because templates are
-    hard to read and understand. However, templates don't constrain other parts
-    of the language. While they may have readability or other problems, they
-    aren't core or required in the way that other elements are, including
-    primitive types.
+-   Carbon's set of primitive types won't match C++'s list; we currently expect
+    multiple C++ types to map to single Carbon types. This could be considered a
+    conflict with multiple priorities:
+    -   #2: Carbon's leaning for fewer types should make evolution of the
+        language easier.
+    -   #3: Carbon code will be easier to read and understand with fewer types.
+-   When considering `Int` vs `int`, Carbon's plans do not mirror C++. This
+    could be considered a conflict with multiple priorities:
+    -   #1: Carbon's primary types, such as `Int`, should be allowed to replace
+        C++-specified overflow behaviors with alternatives that are higher
+        performance.
+    -   #3: Avoiding platform-specific types should make it easier to understand
+        how could will function on various platforms.
+    -   #4: Carbon's plan for `Int` trapping where C++ would overflow should
+        make code safety easier.
+-   We expect platform support priorities to differ between C/C++ and Carbon.
+    This is a conflict with Carbon's #6 priority, which focuses support on
+    modern over legacy platforms.
+-   C++'s preprocessor macros will be replaced by metaprogramming in Carbon.
+    It's not clear what migration of code using macros will look like, but some
+    will likely be expanded by automation. This could be considered a conflict
+    with multiple priorities:
+    -   #2: Structured metaprogramming should make it easier to evolve software.
+    -   #3: Metaprogramming should be easier to read than preprocessor macros.
+-   Templates have been argued as only being added for
+    interoperability/migration, and that we could only have generics without
+    that goal. This is not considered a conflict between goal priorities.
+    -   This could be considered a conflict with priority #3, because templates
+        are hard to read and understand. However, templates don't constrain
+        other parts of the language. While they may have readability or other
+        problems, they aren't core or required in the way that other elements
+        are, including primitive types.
 
 ### Address project goals differently
 
@@ -169,14 +169,14 @@ We could completely remove the project goals from this document.
 
 Pros:
 
-- Allows this to be the "language goals" document.
+-   Allows this to be the "language goals" document.
 
 Cons:
 
-- Creates additional documents that need to be understood to parse language
-  goals.
-- Makes for less clear prioritization of community, increasing ambiguity on how
-  community vs language design conflicts can be resolved.
+-   Creates additional documents that need to be understood to parse language
+    goals.
+-   Makes for less clear prioritization of community, increasing ambiguity on
+    how community vs language design conflicts can be resolved.
 
 #### Add project goals to the priority list
 
@@ -184,15 +184,15 @@ We could make the project goals part of the priority list.
 
 Pros:
 
-- Makes the ordering unambiguous.
+-   Makes the ordering unambiguous.
 
 Cons:
 
-- Makes what's currently a numerated list of language design goals less
-  design-focused.
-- Prevents saying trivial things like "performance is our top priority".
-  - Unless community isn't the top priority, re-creating the conflict risk that
-    led to the creating of these project goals.
+-   Makes what's currently a numerated list of language design goals less
+    design-focused.
+-   Prevents saying trivial things like "performance is our top priority".
+    -   Unless community isn't the top priority, re-creating the conflict risk
+        that led to the creating of these project goals.
 
 #### Merge project goals and language goals
 
@@ -201,11 +201,12 @@ project goals and language goals.
 
 Pros:
 
-- Makes the document shorter and more concise.
-- Tooling can already be considered a priority under "Code that is easy to read,
-  understand, and write", and is explicitly mentioned as part of that goal.
+-   Makes the document shorter and more concise.
+-   Tooling can already be considered a priority under "Code that is easy to
+    read, understand, and write", and is explicitly mentioned as part of that
+    goal.
 
 Cons:
 
-- Previous setup raised objections over why the community goal wasn't part of
-  the priority list.
+-   Previous setup raised objections over why the community goal wasn't part of
+    the priority list.

+ 16 - 15
proposals/p0074-decision.md

@@ -10,17 +10,17 @@ Proposal accepted on 2020-06-02
 
 Affirming:
 
-- [austern](https://github.com/austern)
-- [chandlerc](https://github.com/chandlerc)
-- [geoffromer](https://github.com/geoffromer)
-- [gribozavr](https://github.com/gribozavr)
-- [josh11b](https://github.com/josh11b)
-- [tituswinters](https://github.com/tituswinters)
-- [zygoloid](https://github.com/zygoloid)
+-   [austern](https://github.com/austern)
+-   [chandlerc](https://github.com/chandlerc)
+-   [geoffromer](https://github.com/geoffromer)
+-   [gribozavr](https://github.com/gribozavr)
+-   [josh11b](https://github.com/josh11b)
+-   [tituswinters](https://github.com/tituswinters)
+-   [zygoloid](https://github.com/zygoloid)
 
 Abstaining:
 
-- [noncombatant](https://github.com/noncombatant)
+-   [noncombatant](https://github.com/noncombatant)
 
 ## Open questions
 
@@ -31,10 +31,11 @@ that can be resolved by review managers as part of doc changes.
 
 ## Rationale
 
-- This directly supports our community goals: not everybody is in a position to
-  respond to events with less than a day of latency, so longer lead times before
-  deadlines will help enable them to participate.
-  - Longer lead time makes it more likely that we'll get substantive comments.
-- The answer to the open question doesn't strongly matter, and there is a
-  preference for leaving it to the review managers' discretion rather than
-  having the core team decide.
+-   This directly supports our community goals: not everybody is in a position
+    to respond to events with less than a day of latency, so longer lead times
+    before deadlines will help enable them to participate.
+    -   Longer lead time makes it more likely that we'll get substantive
+        comments.
+-   The answer to the open question doesn't strongly matter, and there is a
+    preference for leaving it to the review managers' discretion rather than
+    having the core team decide.

+ 19 - 19
proposals/p0074.md

@@ -12,14 +12,14 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
 <!-- toc -->
 
-- [Problem](#problem)
-- [Background](#background)
-- [Proposal](#proposal)
-- [Details](#details)
-  - [Open Question/Bikeshed](#open-questionbikeshed)
-- [Alternatives considered](#alternatives-considered)
-  - [Alternative 1](#alternative-1)
-  - [Alternative 2](#alternative-2)
+-   [Problem](#problem)
+-   [Background](#background)
+-   [Proposal](#proposal)
+-   [Details](#details)
+    -   [Open Question/Bikeshed](#open-questionbikeshed)
+-   [Alternatives considered](#alternatives-considered)
+    -   [Alternative 1](#alternative-1)
+    -   [Alternative 2](#alternative-2)
 
 <!-- tocstop -->
 
@@ -58,17 +58,17 @@ during the review period rather than the decision period.
 
 ## Details
 
-- A deadline for final comments will be published at least 7 calendar days (or 4
-  working days, if longer) in advance (instead of the current 1 day). On or
-  before the deadline date, the deadline may be extended if the review manager
-  determines that there is still productive discussion going on.
-  - At the time the comment period deadline is announced, the proposal will be
-    added to the agenda of the next core team meeting following the comment
-    period deadline.
-- There must be a minimum of four working days between the end of the comment
-  period and the day of the meeting.
-  - If the deadline for comments is extended, the agenda item will be moved, if
-    necessary, by the review manager.
+-   A deadline for final comments will be published at least 7 calendar days (or
+    4 working days, if longer) in advance (instead of the current 1 day). On or
+    before the deadline date, the deadline may be extended if the review manager
+    determines that there is still productive discussion going on.
+    -   At the time the comment period deadline is announced, the proposal will
+        be added to the agenda of the next core team meeting following the
+        comment period deadline.
+-   There must be a minimum of four working days between the end of the comment
+    period and the day of the meeting.
+    -   If the deadline for comments is extended, the agenda item will be moved,
+        if necessary, by the review manager.
 
 ### Open Question/Bikeshed
 

+ 9 - 9
proposals/template-decision.md

@@ -10,14 +10,14 @@ Proposal accepted on 2020-MM-DD
 
 Affirming:
 
-- [austern](https://github.com/austern)
-- [chandlerc](https://github.com/chandlerc)
-- [geoffromer](https://github.com/geoffromer)
-- [gribozavr](https://github.com/gribozavr)
-- [josh11b](https://github.com/josh11b)
-- [noncombatant](https://github.com/noncombatant)
-- [tituswinters](https://github.com/tituswinters)
-- [zygoloid](https://github.com/zygoloid)
+-   [austern](https://github.com/austern)
+-   [chandlerc](https://github.com/chandlerc)
+-   [geoffromer](https://github.com/geoffromer)
+-   [gribozavr](https://github.com/gribozavr)
+-   [josh11b](https://github.com/josh11b)
+-   [noncombatant](https://github.com/noncombatant)
+-   [tituswinters](https://github.com/tituswinters)
+-   [zygoloid](https://github.com/zygoloid)
 
 Abstaining:
 
@@ -29,4 +29,4 @@ TODO answer.
 
 ## Rationale
 
-- TODO
+-   TODO

+ 7 - 7
proposals/template.md

@@ -12,12 +12,12 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
 <!-- toc -->
 
-- [TODO: Initial proposal setup](#todo-initial-proposal-setup)
-- [Problem](#problem)
-- [Background](#background)
-- [Proposal](#proposal)
-- [Details](#details)
-- [Alternatives considered](#alternatives-considered)
+-   [TODO: Initial proposal setup](#todo-initial-proposal-setup)
+-   [Problem](#problem)
+-   [Background](#background)
+-   [Proposal](#proposal)
+-   [Details](#details)
+-   [Alternatives considered](#alternatives-considered)
 
 <!-- tocstop -->
 
@@ -27,7 +27,7 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
 1. Copy this template to `new.md`, and create a commit.
 2. Create a GitHub pull request, to get a pull request number.
-   - Add the `proposal` and `WIP` labels to the pull request.
+    - Add the `proposal` and `WIP` labels to the pull request.
 3. Rename `new.md` to `/proposals/p####.md`, where `####` should be the pull
    request number.
 4. Update the title of the proposal (the `TODO` on line 1).

+ 2 - 2
src/scripts/pre-commit-proposal-list.py

@@ -38,11 +38,11 @@ if __name__ == "__main__":
             print("ERROR: %s doesn't have a title on the first line." % file)
             error = True
         proposals.append(
-            "- [%s - %s](%s)" % (file_match[1], title_match[1], file)
+            "-   [%s - %s](%s)" % (file_match[1], title_match[1], file)
         )
         decision_file = "p%s-decision.md" % file_match[1]
         if os.path.exists(os.path.join(proposal_dir, decision_file)):
-            proposals.append("  - [Decision](%s)" % decision_file)
+            proposals.append("    -   [Decision](%s)" % decision_file)
     # We print batched errors for usability, but still need to exit with
     # failure.
     if error:

+ 4 - 2
src/scripts/pre-commit-toc.js

@@ -46,8 +46,10 @@ for (var i = 0; i < files.length; ++i) {
     continue;
   }
 
-  // Do the toc substitution.
-  newContent = mdtoc.insert(newContent, { bullets: '-' });
+  // Do the toc substitution. Resulting indents will look like:
+  // -   H1
+  //     -    H2
+  newContent = mdtoc.insert(newContent, { indent: '    ', bullets: '-  ' });
 
   if (oldContent != newContent) {
     console.log(`Updating ${file}`);

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff