aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2023-10-18 12:40:44 -0400
committerNick Mathewson <nickm@torproject.org>2023-10-18 12:40:44 -0400
commit5ea32780f9322601ec47e16bf70b40fcd202cb1d (patch)
tree3a7875a945923ebb12728aaa4c50f9c78e21a30b
parent71c2e1cf98b2a953ccabbe81aef1b64122bb7675 (diff)
downloadtorspec-5ea32780f9322601ec47e16bf70b40fcd202cb1d.tar.gz
torspec-5ea32780f9322601ec47e16bf70b40fcd202cb1d.zip
Improve redirect URLs
For those that are already correct, list the correct URL on the main site, and mark them as "implicit" so we can double-check them. For those that remain, remove all old links to gitweb.tpo, and link to gitlab.tpo instead.
-rwxr-xr-xbin/make_redirects.py3
-rw-r--r--mdbook/spec/book.toml10
-rw-r--r--mdbook/spec/spec-redirects.yaml74
-rw-r--r--spec/README.md44
4 files changed, 78 insertions, 53 deletions
diff --git a/bin/make_redirects.py b/bin/make_redirects.py
index 99a5ea3..ea8ea3b 100755
--- a/bin/make_redirects.py
+++ b/bin/make_redirects.py
@@ -24,10 +24,13 @@ def book_redirects(rs, spec_dir):
for kwd, info in rs.items():
if os.path.isdir(os.path.join(spec_dir, kwd)):
assert os.path.isfile(os.path.join(spec_dir, kwd, "index.md"))
+ assert info.get('implicit')
continue
elif any((os.path.isfile(os.path.join(spec_dir, kwd) + ext)) for ext in [".txt", ".md"]):
+ assert info.get('implicit')
continue
else:
+ assert not info.get('implicit')
source = kwd + ".html"
target = info['target']
lines.append(
diff --git a/mdbook/spec/book.toml b/mdbook/spec/book.toml
index bd9aa80..5c4a582 100644
--- a/mdbook/spec/book.toml
+++ b/mdbook/spec/book.toml
@@ -17,11 +17,11 @@ build-dir = "../../html"
[output.html.redirect]
# BEGIN AUTO-GENERATED REDIRECTS
-"/collector-protocol.html" = "https://gitweb.torproject.org/collector.git/tree/src/main/resources/docs/PROTOCOL"
-"/rend-spec-v2.html" = "https://gitweb.torproject.org/torspec.git/tree/attic/rend-spec-v2.txt"
-"/rend-spec-v3.html" = "https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt"
-"/tor-fw-helper-spec.html" = "https://gitweb.torproject.org/torspec.git/tree/attic/tor-fw-helper-spec.txt"
+"/collector-protocol.html" = "https://gitlab.torproject.org/tpo/network-health/metrics/collector/-/blob/master/src/main/resources/docs/PROTOCOL?ref_type=heads"
+"/rend-spec-v2.html" = "https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/attic/rend-spec-v2.txt?ref_type=heads"
+"/rend-spec-v3.html" = "https://spec.torproject.org/rend-spec"
+"/tor-fw-helper-spec.html" = "https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/attic/tor-fw-helper-spec.txt?ref_type=heads"
"/torbrowser-design.html" = "https://2019.www.torproject.org/projects/torbrowser/design/"
"/tor-design.html" = "https://svn.torproject.org/svn/projects/design-paper/tor-design.pdf"
-"/walking-onions.html" = "https://github.com/nmathewson/walking-onions-wip/tree/master/specs"
+"/walking-onions.html" = "https://spec.torproject.org/proposals/323-walking-onions-full.html"
# END AUTO-GENERATED REDIRECTS
diff --git a/mdbook/spec/spec-redirects.yaml b/mdbook/spec/spec-redirects.yaml
index 26310a7..567b1db 100644
--- a/mdbook/spec/spec-redirects.yaml
+++ b/mdbook/spec/spec-redirects.yaml
@@ -4,76 +4,98 @@
# temporary redirect, or a redirect that is not a documentated
# permanent link, do not add it here!
+# A permalink is marked as "implicit" below if it already has the
+# right URL, and no further redirect HTML needs to be created in the
+# mdbook configuration.
+
redirects:
'address-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/address-spec.txt
+ target: https://spec.torproject.org/address-spec
description: Special Hostnames in Tor
+ implicit: yes
'bandwidth-file-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/bandwidth-file-spec.txt
+ target: https://spec.torproject.org/bandwidth-file-spec
description: Directory Authority Bandwidth File spec
+ implicit: yes
'bridgedb-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/bridgedb-spec.txt
+ target: https://spec.torproject.org/bridgedb-spec
description: BridgeDB specification
+ implicit: yes
'cert-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/cert-spec.txt
+ target: https://spec.torproject.org/cert-spec
description: Ed25519 certificates in Tor
+ implicit: yes
'collector-protocol':
- target: https://gitweb.torproject.org/collector.git/tree/src/main/resources/docs/PROTOCOL
+ target: https://gitlab.torproject.org/tpo/network-health/metrics/collector/-/blob/master/src/main/resources/docs/PROTOCOL?ref_type=heads
description: Protocol of CollecTor's File Structure
'control-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/control-spec.txt
+ target: https://spec.torproject.org/control-spec
description: Tor control protocol, version 1
+ implicit: yes
'dir-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/dir-spec.txt
+ target: https://spec.torproject.org/dir-spec
description: Tor directory protocol, version 3
+ implicit: yes
'dir-list-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/dir-list-spec.txt
+ target: https://spec.torproject.org/dir-list-spec
description: Tor Directory List file format
+ implicit: yes
'ext-orport-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/ext-orport-spec.txt
+ target: https://spec.torproject.org/ext-orport-spec
description: Extended ORPort for pluggable transports
+ implicit: yes
'gettor-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/gettor-spec.txt
+ target: https://spec.torproject.org/gettor-spec
description: GetTor specification
+ implicit: yes
'padding-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/padding-spec.txt
+ target: https://spec.torproject.org/padding-spec
description: Tor Padding Specification
+ implicit: yes
'path-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/path-spec.txt
+ target: https://spec.torproject.org/path-spec
description: Tor Path Specification
+ implicit: yes
'pt-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt
+ target: https://spec.torproject.org/pt-spec
description: Tor Pluggable Transport Specification, version 1
+ implicit: yes
'rend-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt
- description: Tor Onion Service Rendezvous Specification, Version 2
+ target: https://spec.torproject.org/rend-spec
+ description: Tor Onion Service Rendezvous Specification, latest version
+ implicit: yes
'rend-spec-v2':
- target: https://gitweb.torproject.org/torspec.git/tree/attic/rend-spec-v2.txt
- description: Tor Onion Service Rendezvous Specification, Version 2
+ target: https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/attic/rend-spec-v2.txt?ref_type=heads
+ description: Tor Onion Service Rendezvous Specification, Version 2 (Obsolete)
'rend-spec-v3':
- target: https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt
- description: Tor Onion Service Rendezvous Specification, Version 3
+ target: https://spec.torproject.org/rend-spec
+ description: Tor Onion Service Rendezvous Specification, Version 3 (Latest)
+ implicit: no
'socks-extensions':
- target: https://gitweb.torproject.org/torspec.git/tree/socks-extensions.txt
+ target: https://spec.torproject.org/socks-extensions
description: "Tor's extensions to the SOCKS protocol"
+ implicit: yes
'srv-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/srv-spec.txt
+ target: https://spec.torproject.org/srv-spec
description: Tor Shared Random Subsystem Specification
+ implicit: yes
'tor-fw-helper-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/attic/tor-fw-helper-spec.txt
+ target: https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/attic/tor-fw-helper-spec.txt?ref_type=heads
description: "Tor's (little) Firewall Helper specification"
'tor-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/tor-spec.txt
+ target: https://spec.torproject.org/tor-spec
description: Tor Protocol Specification
+ implicit: yes
'torbrowser-design':
target: https://2019.www.torproject.org/projects/torbrowser/design/
description: The Design and Implementation of the Tor Browser
'version-spec':
- target: https://gitweb.torproject.org/torspec.git/tree/version-spec.txt
+ target: https://spec.torproject.org/version-spec
description: How Tor Version Numbers Work
+ implicit: yes
'tor-design':
target: https://svn.torproject.org/svn/projects/design-paper/tor-design.pdf
description: "Tor: The Second-Generation Onion Router"
'walking-onions':
- target: https://github.com/nmathewson/walking-onions-wip/tree/master/specs
- description: Walking Onions specifications (work in progress)
+ target: https://spec.torproject.org/proposals/323-walking-onions-full.html
+ description: Walking Onions specifications
diff --git a/spec/README.md b/spec/README.md
index cdf51ad..8a97192 100644
--- a/spec/README.md
+++ b/spec/README.md
@@ -97,53 +97,53 @@ long-term permalinks.
<!-- BEGIN AUTO-GENERATED REDIRECTS -->
<dl>
<dt><a href="/address-spec"><code>/address-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/address-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/address-spec.txt</code> (Special Hostnames in Tor)</a></dt>
+<dd><a href="https://spec.torproject.org/address-spec"><code>https://spec.torproject.org/address-spec</code> (Special Hostnames in Tor)</a></dt>
<dt><a href="/bandwidth-file-spec"><code>/bandwidth-file-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/bandwidth-file-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/bandwidth-file-spec.txt</code> (Directory Authority Bandwidth File spec)</a></dt>
+<dd><a href="https://spec.torproject.org/bandwidth-file-spec"><code>https://spec.torproject.org/bandwidth-file-spec</code> (Directory Authority Bandwidth File spec)</a></dt>
<dt><a href="/bridgedb-spec"><code>/bridgedb-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/bridgedb-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/bridgedb-spec.txt</code> (BridgeDB specification)</a></dt>
+<dd><a href="https://spec.torproject.org/bridgedb-spec"><code>https://spec.torproject.org/bridgedb-spec</code> (BridgeDB specification)</a></dt>
<dt><a href="/cert-spec"><code>/cert-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/cert-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/cert-spec.txt</code> (Ed25519 certificates in Tor)</a></dt>
+<dd><a href="https://spec.torproject.org/cert-spec"><code>https://spec.torproject.org/cert-spec</code> (Ed25519 certificates in Tor)</a></dt>
<dt><a href="/collector-protocol"><code>/collector-protocol</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/collector.git/tree/src/main/resources/docs/PROTOCOL"><code>https://gitweb.torproject.org/collector.git/tree/src/main/resources/docs/PROTOCOL</code> (Protocol of CollecTor's File Structure)</a></dt>
+<dd><a href="https://gitlab.torproject.org/tpo/network-health/metrics/collector/-/blob/master/src/main/resources/docs/PROTOCOL?ref_type=heads"><code>https://gitlab.torproject.org/tpo/network-health/metrics/collector/-/blob/master/src/main/resources/docs/PROTOCOL?ref_type=heads</code> (Protocol of CollecTor's File Structure)</a></dt>
<dt><a href="/control-spec"><code>/control-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/control-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/control-spec.txt</code> (Tor control protocol, version 1)</a></dt>
+<dd><a href="https://spec.torproject.org/control-spec"><code>https://spec.torproject.org/control-spec</code> (Tor control protocol, version 1)</a></dt>
<dt><a href="/dir-spec"><code>/dir-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/dir-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/dir-spec.txt</code> (Tor directory protocol, version 3)</a></dt>
+<dd><a href="https://spec.torproject.org/dir-spec"><code>https://spec.torproject.org/dir-spec</code> (Tor directory protocol, version 3)</a></dt>
<dt><a href="/dir-list-spec"><code>/dir-list-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/dir-list-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/dir-list-spec.txt</code> (Tor Directory List file format)</a></dt>
+<dd><a href="https://spec.torproject.org/dir-list-spec"><code>https://spec.torproject.org/dir-list-spec</code> (Tor Directory List file format)</a></dt>
<dt><a href="/ext-orport-spec"><code>/ext-orport-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/ext-orport-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/ext-orport-spec.txt</code> (Extended ORPort for pluggable transports)</a></dt>
+<dd><a href="https://spec.torproject.org/ext-orport-spec"><code>https://spec.torproject.org/ext-orport-spec</code> (Extended ORPort for pluggable transports)</a></dt>
<dt><a href="/gettor-spec"><code>/gettor-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/gettor-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/gettor-spec.txt</code> (GetTor specification)</a></dt>
+<dd><a href="https://spec.torproject.org/gettor-spec"><code>https://spec.torproject.org/gettor-spec</code> (GetTor specification)</a></dt>
<dt><a href="/padding-spec"><code>/padding-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/padding-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/padding-spec.txt</code> (Tor Padding Specification)</a></dt>
+<dd><a href="https://spec.torproject.org/padding-spec"><code>https://spec.torproject.org/padding-spec</code> (Tor Padding Specification)</a></dt>
<dt><a href="/path-spec"><code>/path-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/path-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/path-spec.txt</code> (Tor Path Specification)</a></dt>
+<dd><a href="https://spec.torproject.org/path-spec"><code>https://spec.torproject.org/path-spec</code> (Tor Path Specification)</a></dt>
<dt><a href="/pt-spec"><code>/pt-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt</code> (Tor Pluggable Transport Specification, version 1)</a></dt>
+<dd><a href="https://spec.torproject.org/pt-spec"><code>https://spec.torproject.org/pt-spec</code> (Tor Pluggable Transport Specification, version 1)</a></dt>
<dt><a href="/rend-spec"><code>/rend-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt"><code>https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt</code> (Tor Onion Service Rendezvous Specification, Version 2)</a></dt>
+<dd><a href="https://spec.torproject.org/rend-spec"><code>https://spec.torproject.org/rend-spec</code> (Tor Onion Service Rendezvous Specification, latest version)</a></dt>
<dt><a href="/rend-spec-v2"><code>/rend-spec-v2</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/attic/rend-spec-v2.txt"><code>https://gitweb.torproject.org/torspec.git/tree/attic/rend-spec-v2.txt</code> (Tor Onion Service Rendezvous Specification, Version 2)</a></dt>
+<dd><a href="https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/attic/rend-spec-v2.txt?ref_type=heads"><code>https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/attic/rend-spec-v2.txt?ref_type=heads</code> (Tor Onion Service Rendezvous Specification, Version 2 (Obsolete))</a></dt>
<dt><a href="/rend-spec-v3"><code>/rend-spec-v3</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt"><code>https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt</code> (Tor Onion Service Rendezvous Specification, Version 3)</a></dt>
+<dd><a href="https://spec.torproject.org/rend-spec"><code>https://spec.torproject.org/rend-spec</code> (Tor Onion Service Rendezvous Specification, Version 3 (Latest))</a></dt>
<dt><a href="/socks-extensions"><code>/socks-extensions</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/socks-extensions.txt"><code>https://gitweb.torproject.org/torspec.git/tree/socks-extensions.txt</code> (Tor's extensions to the SOCKS protocol)</a></dt>
+<dd><a href="https://spec.torproject.org/socks-extensions"><code>https://spec.torproject.org/socks-extensions</code> (Tor's extensions to the SOCKS protocol)</a></dt>
<dt><a href="/srv-spec"><code>/srv-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/srv-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/srv-spec.txt</code> (Tor Shared Random Subsystem Specification)</a></dt>
+<dd><a href="https://spec.torproject.org/srv-spec"><code>https://spec.torproject.org/srv-spec</code> (Tor Shared Random Subsystem Specification)</a></dt>
<dt><a href="/tor-fw-helper-spec"><code>/tor-fw-helper-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/attic/tor-fw-helper-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/attic/tor-fw-helper-spec.txt</code> (Tor's (little) Firewall Helper specification)</a></dt>
+<dd><a href="https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/attic/tor-fw-helper-spec.txt?ref_type=heads"><code>https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/attic/tor-fw-helper-spec.txt?ref_type=heads</code> (Tor's (little) Firewall Helper specification)</a></dt>
<dt><a href="/tor-spec"><code>/tor-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/tor-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/tor-spec.txt</code> (Tor Protocol Specification)</a></dt>
+<dd><a href="https://spec.torproject.org/tor-spec"><code>https://spec.torproject.org/tor-spec</code> (Tor Protocol Specification)</a></dt>
<dt><a href="/torbrowser-design"><code>/torbrowser-design</code></a></dt>
<dd><a href="https://2019.www.torproject.org/projects/torbrowser/design/"><code>https://2019.www.torproject.org/projects/torbrowser/design/</code> (The Design and Implementation of the Tor Browser)</a></dt>
<dt><a href="/version-spec"><code>/version-spec</code></a></dt>
-<dd><a href="https://gitweb.torproject.org/torspec.git/tree/version-spec.txt"><code>https://gitweb.torproject.org/torspec.git/tree/version-spec.txt</code> (How Tor Version Numbers Work)</a></dt>
+<dd><a href="https://spec.torproject.org/version-spec"><code>https://spec.torproject.org/version-spec</code> (How Tor Version Numbers Work)</a></dt>
<dt><a href="/tor-design"><code>/tor-design</code></a></dt>
<dd><a href="https://svn.torproject.org/svn/projects/design-paper/tor-design.pdf"><code>https://svn.torproject.org/svn/projects/design-paper/tor-design.pdf</code> (Tor: The Second-Generation Onion Router)</a></dt>
<dt><a href="/walking-onions"><code>/walking-onions</code></a></dt>
-<dd><a href="https://github.com/nmathewson/walking-onions-wip/tree/master/specs"><code>https://github.com/nmathewson/walking-onions-wip/tree/master/specs</code> (Walking Onions specifications (work in progress))</a></dt>
+<dd><a href="https://spec.torproject.org/proposals/323-walking-onions-full.html"><code>https://spec.torproject.org/proposals/323-walking-onions-full.html</code> (Walking Onions specifications)</a></dt>
</dl>
<!-- END AUTO-GENERATED REDIRECTS -->