Package: ietf-reviewtool
ietf-reviewtoolThis is a simple Python 3 tool to download and review IETF documents, such as
Internet-Drafts or RFCs, and comes packaged as a singleietf-reviewtoolscript.Aboutietf-reviewtooloffers several different review tools:fetchdownloads items (I-Ds, charters, RFCs, etc.) for reviewfetch-agendadownloads all items on theagenda of the next IESG
telechatfor reviewstripstrips headers, footers and pagination from items, similar to the
earlierrfcstriptoolreviewextracts inline reviews from the indicated items and formats them for
sharing by email or submission to theIETF
datatracker, with some functionality that is
similar to the earlieridcommentstoolThis is a work in progress. Additional functionality will be added over time, so
there is a chance this documentation only covers a subset of what the actual
tool offers. You can get command line help on the various tools by passing--helptoietf-reviewtooland its sub-tools.InstallationYou can install this viaPyPI:pipinstallietf-reviewtoolUsageAn example workflow of the tool is as follows.Downloading itemsYou first download the item for review:ietf-reviewtoolfetchrfc1925.txtThis downloads the text version ofRFC1925into a text file namedrfc1925.txtand (by default) performs astripoperation on the file.You will then open the strippedrfc1925.txtfor review in your preferred text
editor.ReviewingYou can flag issues of three different severity levels, namely, "discuss",
"comment" and "nit". (These levels are inspired by theIESG review
process.)In order to flag an issue of a given severity level, enter a new line at an
appropriate location in the document that readsDISCUSS:,COMMENT:orNIT:.Inline issuesUsingrfc1925.txtas an example and using***to indicate the added review
content, you can flag an "inline" issue like this:2. The Fundamental Truths

   (1)  It Has To Work.

***COMMENT: Well, duh.***After saving the changedrfc1925.txt, you can then extract a formatted review
as:Section 2, paragraph 2, comment:
Well, duh.See below for how to extract a review.UsingDISCUSS:orNIT:instead ofCOMMENT:will change the severity of the
issue, as appropriate.Issues with contextIt is possible quote part of the original document, to give the review some context, like this:***COMMENT:***
   (3)  With sufficient thrust, pigs fly just fine. However, this is
***Can we stop picking on pigs or pigeons?***This will produce the following review:Section 2, paragraph 5, comment:
>    (3)  With sufficient thrust, pigs fly just fine. However, this is

Can we stop picking on pigs or pigeons?Inline nitsTo quickly flag some editing nits, such as spelling errors, you can simply edit
the text directly, correcting the nit. For example, to flag an existing spelling error inrfc1925.txt(where "agglutinate" is misspelled as "aglutenate"), you would simply correct the word in the text:(5)  It is always possible to ***agglutinate*** multiple separate problems
        into a single complex interdependent solution. In most cases
        this is a bad idea.When extracting the formatted review, such inline corrections are added to the "nits" section in "diff" format:Section 2, paragraph 7, nit:
-    (5)  It is always possible to aglutenate multiple separate problems
-                                       ^
+    (5)  It is always possible to agglutinate multiple separate problems
+                                    +   ^Extracting the reviewAfter editing a source file, you can extract a formatted review with:ietf-reviewtoolreviewrfc1925.txtWith the given example, this would result in the following output:-------------------------------------------------------------------------
COMMENT
-------------------------------------------------------------------------
Section 2, paragraph 2, comment:
Well, duh.

Section 2, paragraph 5, comment:
>    (3)  With sufficient thrust, pigs fly just fine. However, this is

Can we not always pick on pigs or pigeons?

-------------------------------------------------------------------------
NIT
-------------------------------------------------------------------------
Section 2, paragraph 7, nit:
-    (5)  It is always possible to aglutenate multiple separate problems
-                                       ^
+    (5)  It is always possible to agglutinate multiple separate problems
+                                    +   ^Using cachesIn order to speed up the process, and to operate while being offline, you can
set various environment variables to point the tool at directories in which youcache various IETF document viarsync.These environment variables are named:IETF_CHARTERSIETF_CONFLICT_REVIEWSIETF_IDSIETF_RFCSIETF_STATUS_CHANGESWhen the tool finds a given item to review in the cache, it will refrain from
downloading it from the web.Note that the tool willnotplace items into the cache directories when they are not present; youwillneed to update the cache viarsync.AcknowledgmentsThe ideas for some of these tools came from some of Henrik Levkowetz's earlierbashscripts. In the case of thestriptool, most of the original regular
expressions were taken from hisrfcstripawkscript.LicenseCopyright (C) 2021-2022  Lars EggertThis program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.  See the GNU General Public License for more details.You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
Street, Fifth Floor, Boston, MA  02110-1301, USA.