Skip to content

Commit 5b09079

Browse files
authored
Minor developer policy edits for clarity (#132313)
There should be no substantial policy change here. I reordered the breaking change docs after the major change docs, since that flow made sense to me. I smoothed out some of the incremental development policy wording to be a bit less black and white, and talk about "preferred" and "discouraged" approaches.
1 parent cf6c451 commit 5b09079

File tree

1 file changed

+50
-54
lines changed

1 file changed

+50
-54
lines changed

llvm/docs/DeveloperPolicy.rst

Lines changed: 50 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -129,57 +129,6 @@ LLVM has a code-review policy. Code review is one way to increase the quality of
129129
software. Please see :doc:`CodeReview` for more information on LLVM's code-review
130130
process.
131131

132-
.. _breaking:
133-
134-
Making Potentially Breaking Changes
135-
-----------------------------------
136-
137-
Please help notify users and vendors of potential disruptions when upgrading to
138-
a newer version of a tool. For example, deprecating a feature that is expected
139-
to be removed in the future, removing an already-deprecated feature, upgrading a
140-
diagnostic from a warning to an error, switching important default behavior, or
141-
any other potentially disruptive situation thought to be worth raising
142-
awareness of. For such changes, the following should be done:
143-
144-
.. warning::
145-
146-
Phabricator is deprecated and is available in read-only mode,
147-
for new code contributions use :ref:`GitHub Pull Requests <github-reviews>`.
148-
This section contains old information that needs to be updated.
149-
150-
* When performing the code review for the change, please add any applicable
151-
"vendors" group to the review for their awareness. The purpose of these
152-
groups is to give vendors early notice that potentially disruptive changes
153-
are being considered but have not yet been accepted. Vendors can give early
154-
testing feedback on the changes to alert us to unacceptable breakages. The
155-
current list of vendor groups is:
156-
157-
* `Clang vendors <https://reviews.llvm.org/project/members/113/>`_
158-
* `libc++ vendors <https://reviews.llvm.org/project/members/109/>`_
159-
160-
People interested in joining the vendors group can do so by clicking the
161-
"Join Project" link on the vendor's "Members" page in Phabricator.
162-
163-
* When committing the change to the repository, add appropriate information
164-
about the potentially breaking changes to the ``Potentially Breaking Changes``
165-
section of the project's release notes. The release note should have
166-
information about what the change is, what is potentially disruptive about
167-
it, as well as any code examples, links, and motivation that is appropriate
168-
to share with users. This helps users to learn about potential issues with
169-
upgrading to that release.
170-
171-
* After the change has been committed to the repository, the potentially
172-
disruptive changes described in the release notes should be posted to the
173-
`Announcements <https://discourse.llvm.org/c/announce/>`_ channel on
174-
Discourse. The post should be tagged with the ``potentially-breaking`` label
175-
and a label specific to the project (such as ``clang``, ``llvm``, etc). This
176-
is another mechanism by which we can give pre-release notice to users about
177-
potentially disruptive changes. It is a lower-traffic alternative to the
178-
joining "vendors" group. To automatically be notified of new announcements
179-
with the ``potentially-breaking`` label, go to your user preferences page in
180-
Discourse, and add the label to one of the watch categories under
181-
``Notifications->Tags``.
182-
183132
.. _maintainers:
184133

185134
Maintainers
@@ -632,9 +581,11 @@ as a series of `incremental changes`_, not as a long-term development branch.
632581
Incremental Development
633582
-----------------------
634583

635-
In the LLVM project, we do all significant changes as a series of incremental
636-
patches. We have a strong dislike for huge changes or long-term development
637-
branches. Long-term development branches have a number of drawbacks:
584+
In the LLVM project, we prefer the incremental development approach, where
585+
significant changes are developed in-tree incrementally. The alternative
586+
approach of implementing features in long-lived development branches or forks
587+
is discouraged, although we have accepted features developed this way in the
588+
past. Long-term development branches have a number of drawbacks:
638589

639590
#. Branches must have mainline merged into them periodically. If the branch
640591
development and mainline development occur in the same pieces of code,
@@ -684,6 +635,51 @@ If you are interested in making a large change, and this scares you, please make
684635
sure to first `discuss the change/gather consensus`_ then ask about the best way
685636
to go about making the change.
686637

638+
.. _breaking:
639+
640+
Making Potentially Breaking Changes
641+
-----------------------------------
642+
643+
Please help notify users and vendors of potential disruptions when upgrading to
644+
a newer version of a tool. For example, deprecating a feature that is expected
645+
to be removed in the future, removing an already-deprecated feature, upgrading
646+
a diagnostic from a warning to an error, switching important default behavior,
647+
or any other potentially disruptive situation thought to be worth raising
648+
awareness of. For such changes, the following should be done:
649+
650+
* When performing the code review for the change, please add any applicable
651+
"vendors" github team to the review for their awareness. The purpose of these
652+
groups is to give vendors early notice that potentially disruptive changes
653+
are being considered but have not yet been accepted. Vendors can give early
654+
testing feedback on the changes to alert us to unacceptable breakages. The
655+
current list of vendor groups is:
656+
657+
* `Clang vendors <https://github.com/orgs/llvm/teams/clang-vendors>`_
658+
* `libc++ vendors <https://github.com/orgs/llvm/teams/libcxx-vendors>`_
659+
660+
People interested in joining the vendors group can do so by clicking the
661+
"Join team" button on the linked github pages above.
662+
663+
* When committing the change to the repository, add appropriate information
664+
about the potentially breaking changes to the ``Potentially Breaking Changes``
665+
section of the project's release notes. The release note should have
666+
information about what the change is, what is potentially disruptive about
667+
it, as well as any code examples, links, and motivation that is appropriate
668+
to share with users. This helps users to learn about potential issues with
669+
upgrading to that release.
670+
671+
* After the change has been committed to the repository, the potentially
672+
disruptive changes described in the release notes should be posted to the
673+
`Announcements <https://discourse.llvm.org/c/announce/>`_ channel on
674+
Discourse. The post should be tagged with the ``potentially-breaking`` label
675+
and a label specific to the project (such as ``clang``, ``llvm``, etc). This
676+
is another mechanism by which we can give pre-release notice to users about
677+
potentially disruptive changes. It is a lower-traffic alternative to the
678+
joining "vendors" group. To automatically be notified of new announcements
679+
with the ``potentially-breaking`` label, go to your user preferences page in
680+
Discourse, and add the label to one of the watch categories under
681+
``Notifications->Tags``.
682+
687683
Attribution of Changes
688684
----------------------
689685

0 commit comments

Comments
 (0)