summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2007-08-21 07:24:31 +0000
committerNick Mathewson <nickm@torproject.org>2007-08-21 07:24:31 +0000
commita80dd635b3fb196192a292caa33575ea098e6599 (patch)
tree918a539995d10630bbfb2d1f6743cfe171f5b1a0
parent15c9212ee8d8b8a6acce477d307bba7481a8501b (diff)
downloadtor-a80dd635b3fb196192a292caa33575ea098e6599.tar.gz
tor-a80dd635b3fb196192a292caa33575ea098e6599.zip
r14764@catbus: nickm | 2007-08-21 03:23:12 -0400
Add a perl script to regenerate proposal 000-index.txt so that it always matches the statuses and titles in the other proposals, and so that it has a sorted-by-status section. svn:r11243
-rw-r--r--doc/spec/proposals/000-index.txt44
-rwxr-xr-xdoc/spec/proposals/reindex.pl71
2 files changed, 113 insertions, 2 deletions
diff --git a/doc/spec/proposals/000-index.txt b/doc/spec/proposals/000-index.txt
index 473de5b4a8..dbd52869f1 100644
--- a/doc/spec/proposals/000-index.txt
+++ b/doc/spec/proposals/000-index.txt
@@ -12,6 +12,10 @@ Overview:
This is an informational document.
+ Everything in this document below the line of '=' signs is automatically
+ generated by reindex.pl; do not edit by hand.
+
+============================================================
Proposals by number:
000 Index of Tor Proposals [META]
@@ -30,12 +34,48 @@ Proposals by number:
109 No more than one server per IP address [CLOSED]
110 Avoiding infinite length circuits [OPEN]
111 Prioritizing local traffic over relayed traffic [OPEN]
-112 Bring Back Pathlen Coin Weight [OPEN]
+112 Bring Back Pathlen Coin Weight [SUPERSEDED]
113 Simplifying directory authority administration [OPEN]
114 Distributed Storage for Tor Hidden Service Descriptors [OPEN]
115 Two Hop Paths [OPEN]
116 Two hop paths from entry guards [OPEN]
117 IPv6 exits [OPEN]
-118 Advertising multiple ORPorts at once [RESEARCH]
+118 Advertising multiple ORPorts at once [NEEDS-RESEARCH]
119 New PROTOCOLINFO command for controllers [CLOSED]
120 Suicide descriptors when Tor servers stop [OPEN]
+
+
+Proposals by status:
+
+ OPEN:
+ 105 Version negotiation for the Tor protocol
+ 110 Avoiding infinite length circuits
+ 111 Prioritizing local traffic over relayed traffic
+ 113 Simplifying directory authority administration
+ 114 Distributed Storage for Tor Hidden Service Descriptors
+ 115 Two Hop Paths
+ 116 Two hop paths from entry guards
+ 117 IPv6 exits
+ 120 Suicide descriptors when Tor servers stop
+ ACCEPTED:
+ 101 Voting on the Tor Directory System
+ 103 Splitting identity key from regularly used signing key
+ 104 Long and Short Router Descriptors
+ NEEDS-RESEARCH:
+ 118 Advertising multiple ORPorts at once
+ META:
+ 000 Index of Tor Proposals
+ 001 The Tor Proposal Process
+ 098 Proposals that should be written
+ 099 Miscellaneous proposals
+ CLOSED:
+ 102 Dropping "opt" from the directory format
+ 106 Checking fewer things during TLS handshakes
+ 107 Uptime Sanity Checking
+ 108 Base "Stable" Flag on Mean Time Between Failures
+ 109 No more than one server per IP address
+ 119 New PROTOCOLINFO command for controllers
+ SUPERSEDED:
+ 112 Bring Back Pathlen Coin Weight
+ DEAD:
+ 100 Tor Unreliable Datagram Extension Proposal
diff --git a/doc/spec/proposals/reindex.pl b/doc/spec/proposals/reindex.pl
new file mode 100755
index 0000000000..47b15951d3
--- /dev/null
+++ b/doc/spec/proposals/reindex.pl
@@ -0,0 +1,71 @@
+#!/usr/bin/perl -w
+# Copyright 2007 Nick Mathewson. See LICENSE for licensing information.
+
+use strict;
+
+my $propdir = ".";
+local *DIR;
+local *F;
+
+opendir(DIR, $propdir) || die "Can't open $propdir";
+my @files = sort grep { /^\d\d\d-.*[^\~]$/ } readdir(DIR);
+closedir DIR;
+
+my %title = ();
+my %status = ();
+
+my @KNOWN_STATUSES = qw{
+ OPEN ACCEPTED NEEDS-RESEARCH META CLOSED SUPERSEDED DEAD};
+
+for my $f (@files) {
+ my $num = substr($f, 0, 3);
+ my $status = undef;
+ my $title = undef;
+ open(F, "$f");
+ while (<F>) {
+ last if (/^\s*$/);
+ if (/^Status: (.*)/) {
+ $status = uc $1;
+ chomp $status;
+ }
+ if (/^Title: (.*)/) {
+ $title = $1;
+ $title =~ s/\.$//;
+ chomp $title;
+ }
+ }
+ close F;
+ die "I've never heard of status $status in proposal $num"
+ unless (grep(/$status/, @KNOWN_STATUSES) == 1);
+ die "Proposal $num has a bad status line" if (!defined $status);
+ die "Proposal $num has a bad title line" if (!defined $title);
+ $title{$num} = $title;
+ $status{$num} = $status;
+}
+
+local *OUT;
+open(OUT, ">000-index.txt.tmp");
+
+open(F, "000-index.txt") or die "Can't open index file.";
+while (<F>) {
+ print OUT;
+ last if (/^={3,}/);
+}
+close(F);
+
+print OUT "Proposals by number:\n\n";
+
+for my $num (sort keys %title) {
+ print OUT "$num $title{$num} [$status{$num}]\n";
+}
+
+print OUT "\n\nProposals by status:\n\n";
+for my $status (@KNOWN_STATUSES) {
+ print OUT " $status:\n";
+ for my $num (sort keys %status) {
+ next unless ($status{$num} eq $status);
+ print OUT " $num $title{$num}\n";
+ }
+}
+
+rename('000-index.txt.tmp', '000-index.txt');