about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-02-14 13:05:29 +0000
committerbors <bors@rust-lang.org>2020-02-14 13:05:29 +0000
commitbdd4046f01ead4a1581f5cb1c3c634db6567772d (patch)
tree23a1b8a5be698acfe0e3f0bccf49a1987873a02e
parent41d90d3b8e633ab53005b8f7459dd10e4526bd41 (diff)
parent0f7918266fa4f4a50237c8bdac79cb1e3001d86c (diff)
downloadrust-bdd4046f01ead4a1581f5cb1c3c634db6567772d.tar.gz
rust-bdd4046f01ead4a1581f5cb1c3c634db6567772d.zip
Auto merge of #5171 - flip1995:deploy, r=Manishearth
Improve deployment and documentation

**This should be merged shortly after** #5172

This extracts the python code that generated the `versions.json` file and now sorts the versions. in addition to that it improves the order on the website, respecting the new `rust-*` directories.

The new appearance of the documentation site can be previewed here: https://flip1995.github.io/rust-clippy/

changelog: Add documentation for Clippy stable releases at https://rust-lang.github.io/rust-clippy/
-rw-r--r--.github/deploy.sh18
-rw-r--r--util/gh-pages/versions.html10
-rwxr-xr-xutil/versions.py42
3 files changed, 56 insertions, 14 deletions
diff --git a/.github/deploy.sh b/.github/deploy.sh
index 4fcff830aa6..b1f572d2b45 100644
--- a/.github/deploy.sh
+++ b/.github/deploy.sh
@@ -8,26 +8,22 @@ rm -rf out/master/ || exit 0
 echo "Making the docs for master"
 mkdir out/master/
 cp util/gh-pages/index.html out/master
-python ./util/export.py out/master/lints.json
+python3 ./util/export.py out/master/lints.json
 
 if [[ -n $TAG_NAME ]]; then
-  echo "Save the doc for the current tag ($TAG_NAME) and point current/ to it"
+  echo "Save the doc for the current tag ($TAG_NAME) and point stable/ to it"
   cp -r out/master "out/$TAG_NAME"
-  rm -f out/current
-  ln -s "$TAG_NAME" out/current
+  rm -f out/stable
+  ln -s "$TAG_NAME" out/stable
 fi
 
 # Generate version index that is shown as root index page
 cp util/gh-pages/versions.html out/index.html
 
-cd out
-cat <<-EOF | python - > versions.json
-import os, json
-print json.dumps([
-    dir for dir in os.listdir(".") if not dir.startswith(".") and os.path.isdir(dir)
-])
-EOF
+echo "Making the versions.json file"
+python3 ./util/versions.py out
 
+cd out
 # Now let's go have some fun with the cloned repo
 git config user.name "GHA CI"
 git config user.email "gha@ci.invalid"
diff --git a/util/gh-pages/versions.html b/util/gh-pages/versions.html
index 391e22a4743..cd3611db300 100644
--- a/util/gh-pages/versions.html
+++ b/util/gh-pages/versions.html
@@ -36,7 +36,7 @@
                 <ul class="list-group">
                     <a class="list-group-item" ng-repeat="version in data | orderBy:versionOrder:true"
                        href="./{{version}}/index.html">
-                        {{normalizeVersion(version)}}
+                        {{normalizeVersionDisplay(version)}}
                     </a>
                 </ul>
             </article>
@@ -54,13 +54,17 @@
         .controller('docVersions', function ($scope, $http) {
             $scope.loading = true;
 
-            $scope.normalizeVersion = function(v) {
+            $scope.normalizeVersionDisplay = function(v) {
                 return v.replace(/^v/, '');
             };
 
+            $scope.normalizeVersion = function(v) {
+                return v.replace(/^v/, '').replace(/^rust-/, '');
+            };
+
             $scope.versionOrder = function(v) {
                 if (v === 'master') { return Infinity; }
-                if (v === 'current') { return Number.MAX_VALUE; }
+                if (v === 'stable') { return Number.MAX_VALUE; }
 
                 return $scope.normalizeVersion(v)
                     .split('.')
diff --git a/util/versions.py b/util/versions.py
new file mode 100755
index 00000000000..5798761ad75
--- /dev/null
+++ b/util/versions.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+
+import json
+import os
+import sys
+
+from lintlib import log
+
+
+def key(v):
+    if v == 'master':
+        return float('inf')
+    if v == 'stable':
+        return sys.maxsize
+
+    v = v.replace('v', '').replace('rust-', '')
+
+    s = 0
+    for i, val in enumerate(v.split('.')[::-1]):
+        s += int(val) * 100**i
+
+    return s
+
+
+def main():
+    if len(sys.argv) < 2:
+        print("Error: specify output directory")
+        return
+
+    outdir = sys.argv[1]
+    versions = [
+        dir for dir in os.listdir(outdir) if not dir.startswith(".") and os.path.isdir(os.path.join(outdir, dir))
+    ]
+    versions.sort(key=key)
+
+    with open(os.path.join(outdir, "versions.json"), "w") as fp:
+        json.dump(versions, fp, indent=2)
+        log.info("wrote JSON for great justice")
+
+
+if __name__ == "__main__":
+    main()