Skip to content

Commit 11ef1e9

Browse files
Merge branch 'master' into info
2 parents f125d3a + 3843612 commit 11ef1e9

1 file changed

Lines changed: 69 additions & 47 deletions

File tree

draft-ietf-git-using-github.md

Lines changed: 69 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@ author:
2323
email: barbara.stark@att.com
2424

2525
informative:
26+
GLOSSARY:
27+
title: "GitHub glossary"
28+
date: 2020-03
29+
target: "https://help.github.com/en/github/getting-started-with-github/github-glossary"
30+
author:
31+
-
32+
organization: GitHub
2633

2734
--- abstract
2835

@@ -34,10 +41,10 @@ GitHub for their work.
3441

3542
Discussion of this document takes place on the GitHub@ietf mailing list
3643
(ietf-and-github@ietf.org), which is archived at
37-
<https://mailarchive.ietf.org/arch/search?email_list=ietf-and-github>.
44+
[](https://mailarchive.ietf.org/arch/search?email_list=ietf-and-github).
3845

3946
Source for this draft and an issue tracker can be found at
40-
<https://github.com/ietf-gitwg/using-github>.
47+
[](https://github.com/ietf-gitwg/using-github).
4148

4249

4350
--- middle
@@ -59,7 +66,8 @@ specification.
5966

6067
The main purpose of this document is providing guidelines for how Working Groups
6168
might integrate the capabilities provided by GitHub into their processes for
62-
developing Internet-Drafts.
69+
developing Internet-Drafts. The choices of whether to use GitHub and whether to
70+
adopt these practices if they do is at the discretion of the Working Group.
6371

6472
This document is meant as a supplement to existing Working Group practices. It
6573
provides guidance to Working Group chairs and participants on how they can best
@@ -80,7 +88,7 @@ However, such groups may draw inspiration for GitHub use from the contents herei
8088
Version control systems are a critical component of software engineering and are
8189
also quite useful for document editing.
8290

83-
[Git](https://git-scm.com) is a distributed version control system that can operate without a central
91+
[Git](https://git-scm.com/) is a distributed version control system that can operate without a central
8492
service. Each instance of a repository contains a number of revisions. Each
8593
revision stores the complete state of a set of files. Users are able to create
8694
new revisions in their copy of a repository and share revisions between copies
@@ -89,19 +97,18 @@ of repositories.
8997

9098
## GitHub
9199

92-
GitHub is a service operated at [https://github.com/](https://github.com/).
100+
GitHub is a service operated at [](https://github.com/).
93101
GitHub provides centralized storage for git repositories. GitHub is freely
94-
accessible on the open Internet, albeit currently only via IPv4.
102+
accessible on the open Internet.
95103

96-
GitHub provides a simplified and integrated interface to not only git, but also
97-
provides basic user management, an issue tracker, associated wikis, project
98-
hosting, and other features.
104+
GitHub provides a simplified and integrated interface to git, and also provides
105+
basic user management, an issue tracker, associated wikis, project hosting, and
106+
other features.
99107

100108
There are a large number of projects at GitHub and a very large community of
101109
contributors. One way in which some IETF Working Groups have benefited is
102110
through increased numbers of reviews and associated issues, along with other
103-
improvements that come from broader participation by facilitating those
104-
in the community to participate.
111+
improvements that come from facilitating participation by a broader community.
105112

106113
## Other Services
107114

@@ -147,9 +154,13 @@ out of scope for this document.
147154

148155
## Notational Conventions
149156

150-
The words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY"
151-
are used in this document. It's not shouting; when they are capitalized,
152-
they have the special meaning defined in BCP 14 {{!RFC2119}} {{!RFC8174}}.
157+
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
158+
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
159+
document are to be interpreted as described in BCP 14 {{!RFC2119}} {{!RFC8174}}
160+
when, and only when, they appear in all capitals, as shown here.
161+
162+
This document uses a lot of terms related to git and GitHub; see {{GLOSSARY}}
163+
for information on these terms.
153164

154165

155166
# Administrative Policies {#policy}
@@ -181,7 +192,7 @@ does not also include the ability to push to all repositories and ownership does
181192
not grant any other significant privileges.
182193

183194
Details about creating organizations adhering to these guidelines can be found
184-
in {{!GH-CONFIG=I-D.ietf-git-github-wg-configuration}}.
195+
in {{?GH-CONFIG=I-D.ietf-git-github-wg-configuration}}.
185196

186197

187198
## Communicating Policies {#notices}
@@ -217,8 +228,9 @@ charter objectives in an open and transparent fashion. The Working Group Chairs
217228
are responsible for determining if there is interest in using GitHub and making
218229
a consensus call to determine if the proposed policy and use is acceptable.
219230

220-
Chairs MUST involve Area Directors in any decision to use GitHub for anything
221-
more than managing drafts.
231+
Chairs SHOULD involve Area Directors in any decision to use GitHub, especially
232+
where substantive discussion of issues is permitted as described in
233+
{{mode-discuss}}.
222234

223235

224236
## What to Use GitHub For {#usage}
@@ -271,12 +283,11 @@ discretion of the chairs. Chairs could decide to only create new repositories
271283
for adopted Working Group items, or they might create repositories for
272284
individual documents on request.
273285

274-
All repositories for Working Group documents within the Working Group
275-
organization MUST be public. Repositories for private documents MAY be
276-
kept private, but only where there is a specific reason for doing so. For
277-
instance, a document that details a security vulnerability might be kept
278-
private prior to its initial publication as an Internet-Draft. Once an
279-
Internet-Draft is published, repositories SHOULD be made public.
286+
Maintaining private repositories for Working Group products is not recommended
287+
without specific cause. For instance, a document that details a security
288+
vulnerability might be kept private prior to its initial publication as an
289+
Internet-Draft. Once an Internet-Draft is published, repositories for Working
290+
Group documents MUST be made public.
280291

281292
The adoption status of any document MUST be clear from the contents of the
282293
repository. This can be achieved by having the name of the document reflect
@@ -392,15 +403,21 @@ Issues that have reached a resolution that has Working Group consensus MUST NOT
392403
be reopened unless new information is presented.
393404

394405
For long-running work items, new contributors often raise issues that have
395-
already been resolved. Chairs need to assess whether the arguments offered
396-
represent new information or not. This can require some discussion to determine
397-
accurately. Resolved issues MUST remain closed unless there is consensus to
398-
reopen an issue.
406+
already been resolved. Moreover, there could be temptation to reopen contentious
407+
issues resolved with rough consensus. Determining whether arguments presented in
408+
favor of reopening an issue represents new information might require some
409+
discussion in the Working Group.
410+
411+
Chairs are empowered to exercise discretion in determining whether to reopen
412+
issues. For more difficult matters, the chairs MAY insist that the Working
413+
Group reach consensus on whether an issue should be reopened. Note however that
414+
any product of this process still needs to have the support of rough consensus
415+
in the Working Group, which could justify reopening issues.
399416

400417

401418
## Pull Requests
402419

403-
Pull requests are the GitHub feature that allow users to request changes to a
420+
A pull request is a GitHub feature that allows a user to request a change to a
404421
repository. A user does not need to have write access to a repository to create
405422
a pull request. A user can create a "fork", or copy, of any public repository.
406423
The user has write access to their own fork, allowing them to make local
@@ -438,13 +455,13 @@ editors. Editors are given discretion in how they manage changes amongst themse
438455
### Discussion on Pull Requests
439456

440457
In addition to the features that pull requests share with issues, users can also
441-
review the changes in a pull request. This is a valuable feature, but it has
442-
some issues.
458+
review the changes in a pull request. This is a valuable feature, but presents
459+
some challenges.
443460

444461
Comments in a review other than a summary are attached to specific lines of the
445462
proposed change. Such comments can be hard or impossible to find if changes are
446463
subsequently made to the pull request. This is problematic for contributors who
447-
do not track discussion closely.
464+
do not track discussions closely.
448465

449466
For this reason, Working Group chairs SHOULD discourage the use of inline
450467
comments for substantial technical discussion of issues.
@@ -477,6 +494,11 @@ produced by a notification tool like
477494
tool has been used effectively in several Working Groups, though it requires
478495
server infrastructure.
479496

497+
Additionally, clear reporting about the changes that were included in each
498+
revision of an Internet-Draft helps ensure that contributors can
499+
follow activity. This might be achieved by requesting that editors provide a
500+
change log that captures substantive changes to the document in each revision.
501+
480502

481503
# Typical Working Group Policies {#modes}
482504

@@ -495,7 +517,7 @@ Working Groups can adjust these policies to suit their needs, but are advised to
495517
avoid gratuitous changes for the sake of consistency across the IETF as a whole.
496518

497519

498-
## Document Management Mode
520+
## Document Management Mode {#mode-doc}
499521

500522
In this mode of interaction, GitHub repositories are used to manage changes to
501523
documents, but the bulk of the work is conducted using email, face-to-face
@@ -509,7 +531,7 @@ maintain issues and pull requests for their own benefit, but these have no
509531
formal standing in the Working Group process.
510532

511533

512-
## Issue Tracking Mode
534+
## Issue Tracking Mode {#mode-track}
513535

514536
In addition to managing documents, the Working Group might choose to use GitHub
515537
for tracking outstanding issues. In this mode of interaction, all substantive
@@ -544,7 +566,7 @@ or editors record details of decisions in issue comments when closing issues as
544566
resolved.
545567

546568

547-
## Issue Discussion Mode
569+
## Issue Discussion Mode {#mode-discuss}
548570

549571
This GitHub interaction mode differs from the other modes in that discussion
550572
relating to substantive technical matters is allowed to occur on GitHub issues.
@@ -573,10 +595,10 @@ As a more involved process, adopting this mode can require changes in policies
573595
as documents become more mature. It is possible to use different processes for
574596
different documents in the Working Group.
575597

576-
Working Group chairs SHOULD confirm that the Working Group has consensus to
577-
adopt any process. In particular, the introduction of a more tightly-controlled
578-
process can have the effect of privileging positions already captured in
579-
documents, which might disadvantage alternative viewpoints.
598+
Working Group chairs are responsible for confirming that the Working Group has
599+
consensus to adopt any process. In particular, the introduction of a more
600+
tightly-controlled process can have the effect of privileging positions already
601+
captured in documents, which might disadvantage alternative viewpoints.
580602

581603

582604
### Early Design Phases
@@ -597,7 +619,7 @@ Changes made by editors under this process do not completely lack oversight.
597619
GitHub and git provide tools for ensuring that changes are tracked and can be
598620
audited. Within the usual Working Group process it is expected that
599621
Internet-Drafts will receive regular review. Finally, process checkpoints like
600-
Working Group Last Call (WGLC; Section 7.4 of {{!RFC2418}}) provides additional
622+
Working Group Last Call (WGLC; Section 7.4 of {{!RFC2418}}) provide additional
601623
safeguards against abuse.
602624

603625
Working Groups are advised against allowing editors this degree of flexibility
@@ -620,9 +642,9 @@ issues as they see fit.
620642
As documents mature further, explicit confirmation of technical decisions with
621643
the Working Group mailing list becomes more important.
622644

623-
Gaining Working Group consensus about the resolution of issues can be done in
624-
the abstract, with editors being permitted to capture the outcome of discussions
625-
as they see fit.
645+
Chairs can declare Working Group consensus about the resolution of
646+
issues in the abstract, allowing editors discretion on how to capture the
647+
decisions in documents.
626648

627649
More mature documents require not only consensus, but consensus about specific
628650
text. All substantive changes to documents that have passed WGLC SHOULD be
@@ -726,15 +748,15 @@ processes. For example,
726748

727749
# Internet-Draft Publication
728750

729-
During the development of a document, individual revisions of a document can be
730-
built and formally submitted as an Internet-Draft. This creates a stable
751+
During the development of a document, individual revisions of the document can
752+
be built and formally submitted as an Internet-Draft. This creates a stable
731753
snapshot and makes the content of the in-progress document available to a wider
732754
audience. Documents submitted as Internet-Drafts are not expected to address
733755
all open issues or merge outstanding pull requests.
734756

735-
Editors SHOULD create a new Internet-Draft submission two weeks prior to every
736-
session, which includes IETF meetings, other in-person meetings, and telephone
737-
or video conferences (see Section 7.1 of {{?RFC2418}}). Though discussion could
757+
Section 7.1 of {{?RFC2418}} recommends that editors create a new Internet-Draft
758+
submission two weeks prior to every session, which includes IETF meetings, other
759+
in-person meetings, and telephone or video conferences. Though discussion could
738760
use the current version of a document from version control, participants in a
739761
session cannot be expected to monitor changes to documents in real-time; a
740762
published Internet-Draft ensures that there is a common, stable state that is

0 commit comments

Comments
 (0)