{"id":19777958,"url":"https://github.com/larseggert/ietf-reviewtool","last_synced_at":"2025-04-30T20:30:34.453Z","repository":{"id":41835172,"uuid":"349115293","full_name":"larseggert/ietf-reviewtool","owner":"larseggert","description":"Download and review IETF documents, such as Internet-Drafts or RFCs.","archived":false,"fork":false,"pushed_at":"2024-04-08T07:18:49.000Z","size":557,"stargazers_count":11,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-04-08T08:33:08.167Z","etag":null,"topics":["i-d","ietf","internet-draft","review","rfc"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/ietf-reviewtool/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/larseggert.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-03-18T15:01:21.000Z","updated_at":"2024-04-15T09:47:49.142Z","dependencies_parsed_at":"2024-02-26T10:25:40.780Z","dependency_job_id":"398bff33-12ba-4c17-8406-b354c41252e9","html_url":"https://github.com/larseggert/ietf-reviewtool","commit_stats":{"total_commits":145,"total_committers":3,"mean_commits":"48.333333333333336","dds":0.03448275862068961,"last_synced_commit":"58f9b2b46e795e14c584643e3d5d7030330af12f"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larseggert%2Fietf-reviewtool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larseggert%2Fietf-reviewtool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larseggert%2Fietf-reviewtool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larseggert%2Fietf-reviewtool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/larseggert","download_url":"https://codeload.github.com/larseggert/ietf-reviewtool/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224223035,"owners_count":17276112,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["i-d","ietf","internet-draft","review","rfc"],"created_at":"2024-11-12T05:27:14.174Z","updated_at":"2024-11-12T05:27:14.910Z","avatar_url":"https://github.com/larseggert.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ietf-reviewtool\n\nThis is a simple Python 3 tool to download and review IETF documents, such as\nInternet-Drafts or RFCs, and comes packaged as a single `ietf-reviewtool`\nscript.\n\n## About\n\n`ietf-reviewtool` offers several different review tools:\n\n* `fetch` downloads items (I-Ds, charters, RFCs, etc.) for review\n\n* `fetch-agenda` downloads all items on the [agenda of the next IESG\n  telechat](https://datatracker.ietf.org/iesg/agenda/) for review\n\n* `strip` strips headers, footers and pagination from items, similar to the\n  earlier [`rfcstrip`](https://tools.ietf.org/tools/rfcstrip/about) tool\n\n* `review` extracts inline reviews from the indicated items and formats them for\n  sharing by email or submission to the [IETF\n  datatracker](https://datatracker.ietf.org/), with some functionality that is\n  similar to the earlier\n  [`idcomments`](https://tools.ietf.org/tools/idcomments/about) tool\n\nThis is a work in progress. Additional functionality will be added over time, so\nthere is a chance this documentation only covers a subset of what the actual\ntool offers. You can get command line help on the various tools by passing\n`--help` to `ietf-reviewtool` and its sub-tools.\n\n## Installation\n\nYou can install this via [PyPI](https://pypi.org/project/ietf-reviewtool/):\n\n``` shell\npip install ietf-reviewtool\n```\n\n## Usage\n\nAn example workflow of the tool is as follows.\n\n### Downloading items\n\nYou first download the item for review:\n``` shell\nietf-reviewtool fetch rfc1925.txt\n```\n\nThis downloads the text version of\n[RFC1925](https://datatracker.ietf.org/doc/html/rfc1925) into a text file named\n`rfc1925.txt` and (by default) performs a `strip` operation on the file.\n\nYou will then open the stripped `rfc1925.txt` for review in your preferred text\neditor.\n\n### Reviewing\n\nYou can flag issues of three different severity levels, namely, \"discuss\",\n\"comment\" and \"nit\". (These levels are inspired by the [IESG review\nprocess](https://www.ietf.org/about/groups/iesg/statements/iesg-discuss-criteria/).)\n\nIn order to flag an issue of a given severity level, enter a new line at an\nappropriate location in the document that reads `DISCUSS:`, `COMMENT:` or\n`NIT:`.\n\n#### Inline issues\n\nUsing `rfc1925.txt` as an example and using `***` to indicate the added review\ncontent, you can flag an \"inline\" issue like this:\n```\n2. The Fundamental Truths\n\n   (1)  It Has To Work.\n\n***COMMENT: Well, duh.***\n```\n\nAfter saving the changed `rfc1925.txt`, you can then extract a formatted review\nas:\n\n```\nSection 2, paragraph 2, comment:\nWell, duh.\n```\n\nSee below for how to extract a review.\n\nUsing `DISCUSS:` or `NIT:` instead of `COMMENT:` will change the severity of the\nissue, as appropriate.\n\n#### Issues with context\n\nIt is possible quote part of the original document, to give the review some context, like this:\n\n```\n***COMMENT:***\n   (3)  With sufficient thrust, pigs fly just fine. However, this is\n***Can we stop picking on pigs or pigeons?***\n```\n\nThis will produce the following review:\n\n```\nSection 2, paragraph 5, comment:\n\u003e    (3)  With sufficient thrust, pigs fly just fine. However, this is\n\nCan we stop picking on pigs or pigeons?\n```\n\n#### Inline nits\n\nTo quickly flag some editing nits, such as spelling errors, you can simply edit\nthe text directly, correcting the nit. For example, to flag an existing spelling error in `rfc1925.txt` (where \"agglutinate\" is misspelled as \"aglutenate\"), you would simply correct the word in the text:\n\n```\n   (5)  It is always possible to ***agglutinate*** multiple separate problems\n        into a single complex interdependent solution. In most cases\n        this is a bad idea.\n```\n\nWhen extracting the formatted review, such inline corrections are added to the \"nits\" section in \"diff\" format:\n\n```\nSection 2, paragraph 7, nit:\n-    (5)  It is always possible to aglutenate multiple separate problems\n-                                       ^\n+    (5)  It is always possible to agglutinate multiple separate problems\n+                                    +   ^\n```\n\n### Extracting the review\n\nAfter editing a source file, you can extract a formatted review with:\n``` shell\nietf-reviewtool review rfc1925.txt\n```\n\nWith the given example, this would result in the following output:\n```\n-------------------------------------------------------------------------\nCOMMENT\n-------------------------------------------------------------------------\nSection 2, paragraph 2, comment:\nWell, duh.\n\nSection 2, paragraph 5, comment:\n\u003e    (3)  With sufficient thrust, pigs fly just fine. However, this is\n\nCan we not always pick on pigs or pigeons?\n\n-------------------------------------------------------------------------\nNIT\n-------------------------------------------------------------------------\nSection 2, paragraph 7, nit:\n-    (5)  It is always possible to aglutenate multiple separate problems\n-                                       ^\n+    (5)  It is always possible to agglutinate multiple separate problems\n+                                    +   ^\n```\n\n## Acknowledgments\n\nThe ideas for some of these tools came from some of Henrik Levkowetz's earlier\n`bash` scripts. In the case of the `strip` tool, most of the original regular\nexpressions were taken from his\n[`rfcstrip`](https://tools.ietf.org/tools/rfcstrip/about) `awk` script.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flarseggert%2Fietf-reviewtool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flarseggert%2Fietf-reviewtool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flarseggert%2Fietf-reviewtool/lists"}