You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@reef.apache.org by js...@apache.org on 2016/01/30 04:49:09 UTC
reef git commit: [REEF-1154] Create release script for website update
Repository: reef
Updated Branches:
refs/heads/master c00b4430f -> df79b80e0
[REEF-1154] Create release script for website update
This change:
* updates release.js to have fewer hardcoded URLs
and more URLs deduced from version.
* creates script update_website.py which updates all website files
necessary for new version display.
* does several minor changes to simplify the update.
JIRA:
[REEF-1154](https://issues.apache.org/jira/browse/REEF-1154)
Pull request:
This closes #800
Project: http://git-wip-us.apache.org/repos/asf/reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/df79b80e
Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/df79b80e
Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/df79b80e
Branch: refs/heads/master
Commit: df79b80e01398e6ac5da07d1052d9d982760a747
Parents: c00b443
Author: Mariia Mykhailova <ma...@apache.org>
Authored: Mon Jan 25 18:29:15 2016 -0800
Committer: Jason (Joo Seong) Jeong <cu...@gmail.com>
Committed: Sat Jan 30 12:01:25 2016 +0900
----------------------------------------------------------------------
dev/change_version.py | 9 +-
dev/update_website.py | 156 ++++++++++++++++++++++++++
website/src/site/resources/js/release.js | 72 +++++-------
website/src/site/site.xml | 4 +-
4 files changed, 191 insertions(+), 50 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/reef/blob/df79b80e/dev/change_version.py
----------------------------------------------------------------------
diff --git a/dev/change_version.py b/dev/change_version.py
index 80ef30f..3bdfc80 100644
--- a/dev/change_version.py
+++ b/dev/change_version.py
@@ -85,6 +85,7 @@ def change_pom(file, new_version):
if not line:
break
changed_str += line
+ f.close()
f = open(file, 'w')
f.write(changed_str)
@@ -111,6 +112,7 @@ def change_constants_cs(file, new_version):
changed_str += line.replace(old_version, new_version)
else:
changed_str += line
+ f.close()
f = open(file, 'w')
f.write(changed_str)
@@ -138,6 +140,7 @@ def change_assembly_info_cs(file, new_version):
changed_str += line.replace(old_version, new_version)
else:
changed_str += line
+ f.close()
f = open(file, 'w')
f.write(changed_str)
@@ -159,6 +162,7 @@ def read_is_snapshot(file):
return True
else:
return False
+ f.close()
"""
Change lang/cs/build.props for the release branch
@@ -182,6 +186,7 @@ def change_build_props(file, is_snapshot):
changed_str += line.replace(old_snapshot_number, "00")
else:
changed_str += line
+ f.close()
f = open(file, 'w')
f.write(changed_str)
@@ -210,6 +215,7 @@ def change_shaded_jar_name(file, new_version):
changed_str += line.replace(m2.group(1), new_version)
else:
changed_str += line
+ f.close()
f = open(file, 'w')
f.write(changed_str)
@@ -234,6 +240,7 @@ def change_project_number_Doxyfile(file, new_version):
changed_str += line.replace(old_version, new_version)
else:
changed_str += line
+ f.close()
f = open(file, 'w')
f.write(changed_str)
@@ -241,7 +248,7 @@ def change_project_number_Doxyfile(file, new_version):
"""
-Change version of every pom.xml, every AsssemblyInfo.cs,
+Change version of every pom.xml, every AssemblyInfo.cs,
Constants.cs, AssemblyInfo.cpp, run.cmd and Resources.xml
"""
def change_version(reef_home, new_version, pom_only):
http://git-wip-us.apache.org/repos/asf/reef/blob/df79b80e/dev/update_website.py
----------------------------------------------------------------------
diff --git a/dev/update_website.py b/dev/update_website.py
new file mode 100644
index 0000000..91cb5fd
--- /dev/null
+++ b/dev/update_website.py
@@ -0,0 +1,156 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+"""
+This script updates website files with the new release information.
+
+(How to run)
+python update_website <reef_home> <reef_version> <sha512> <release_notes_link>
+
+You can also see how to run the script with "python update_website.py -h"
+
+(Example)
+python update_website ~/reef 0.14.0 8f542ae...c4fed7 https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315820&version=12333768
+"""
+
+
+import os
+import re
+import sys
+import argparse
+import datetime
+
+"""
+doap.rdf
+"""
+def update_doap(file, new_version):
+ changed_str = ""
+ after_release_tag = False
+
+ f = open(file, 'r')
+
+ # keep the part of the file before <release> tag as is
+ # necessary because name and created tags appear several times in the file
+ while True:
+ line = f.readline()
+ if not line:
+ break
+ if "<release>" in line:
+ after_release_tag = True
+ # update <name>, <revision> and <created> tags
+ if (("<name>" in line) or ("<revision>" in line)) and after_release_tag:
+ r = re.compile('>(.*?)<')
+ m = r.search(line)
+ old_version = m.group(1)
+ line = line.replace(old_version, new_version)
+ if "<created>" in line and after_release_tag:
+ r = re.compile('<created>(.*?)</created>')
+ m = r.search(line)
+ old_date = m.group(1)
+ new_date = datetime.date.today().strftime('%Y-%m-%d')
+ line = line.replace(old_date, new_date)
+ changed_str += line
+ f.close()
+
+ f = open(file, 'w')
+ f.write(changed_str)
+ f.close()
+ print file
+
+
+"""
+downloads.md: replace all release information with new one
+"""
+def update_downloads(file, new_version, sha512, notes_link):
+ changed_str = ""
+ old_version = ""
+ f = open(file, 'r')
+ while True:
+ line = f.readline()
+ if not line:
+ break
+ # figure out old version
+ if "selected" in line:
+ r = re.compile('>(.*?)<')
+ m = r.search(line)
+ old_version = m.group(1)
+ if old_version != "" and old_version in line:
+ line = line.replace(old_version, new_version)
+ if "selected" in line:
+ # write this line and construct new one
+ changed_str += line
+ line = ' <option value="' + old_version + '">' + old_version + '</option>\n'
+ if "sha512Text" in line:
+ r = re.compile('<span id="sha512Text">(.*?)</span>')
+ m = r.search(line)
+ line = line.replace(m.group(1), sha512)
+ if "releaseNotesLink" in line:
+ r = re.compile('href="(.*?)"')
+ m = r.search(line)
+ line = line.replace(m.group(1), notes_link)
+ if "dotnetApiLink" in line:
+ r = re.compile('<span id="dotnetApiLink">(.*?)</span>')
+ m = r.search(line)
+ line = line.replace(m.group(1), '<a href="apidoc_net/' + new_version + '/index.html">.NET API</a>')
+ changed_str += line
+ f.close()
+
+ f = open(file, 'w')
+ f.write(changed_str)
+ f.close()
+ print file
+
+
+"""
+release.js: add releaseSha512 and releaseNotes for new version
+"""
+def update_release_js(file, new_version, sha512, notes_link):
+ changed_str = ""
+ f = open(file, 'r')
+ while True:
+ line = f.readline()
+ if not line:
+ break
+ if "var releaseSha512" in line:
+ changed_str += line
+ changed_str += ' "' + new_version + '": "' + sha512 + '",\n'
+ continue
+ if "var releaseNotes" in line:
+ changed_str += line
+ changed_str += ' "' + new_version + '": "' + notes_link + '",\n'
+ continue
+ changed_str += line
+ f.close()
+
+ f = open(file, 'w')
+ f.write(changed_str)
+ f.close()
+ print file
+
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(description="Script for updating REEF website with information about new release.")
+ parser.add_argument("reef_home", type=str, help="REEF home")
+ parser.add_argument("reef_version", type=str, help="REEF version")
+ parser.add_argument("sha512", type=str, help="SHA512 of .tar.gz file")
+ parser.add_argument("notes_link", type=str, help="Link to release notes for the version")
+ args = parser.parse_args()
+
+ reef_home = os.path.abspath(args.reef_home)
+ update_doap(reef_home + "/doap.rdf", args.reef_version)
+ update_release_js(reef_home + "/website/src/site/resources/js/release.js", args.reef_version, args.sha512, args.notes_link)
+ update_downloads(reef_home + "/website/src/site/markdown/downloads.md", args.reef_version, args.sha512, args.notes_link)
http://git-wip-us.apache.org/repos/asf/reef/blob/df79b80e/website/src/site/resources/js/release.js
----------------------------------------------------------------------
diff --git a/website/src/site/resources/js/release.js b/website/src/site/resources/js/release.js
index c98161d..2bc74c3 100644
--- a/website/src/site/resources/js/release.js
+++ b/website/src/site/resources/js/release.js
@@ -16,19 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-var releaseDirect = {
- "0.10.0-incubating": "http://www.apache.org/dist/reef/0.10.0-incubating/apache-reef-0.10.0-incubating.tar.gz",
- "0.11.0-incubating": "http://www.apache.org/dist/reef/0.11.0-incubating/apache-reef-0.11.0-incubating.tar.gz",
- "0.12.0-incubating": "http://www.apache.org/dist/reef/0.12.0-incubating/apache-reef-0.12.0-incubating.tar.gz",
- "0.13.0-incubating": "http://www.apache.org/dist/reef/0.13.0-incubating/apache-reef-0.13.0-incubating.tar.gz"
-};
-
-var releaseMirror = {
- "0.10.0-incubating": "http://www.apache.org/dyn/closer.cgi/reef/0.10.0-incubating",
- "0.11.0-incubating": "http://www.apache.org/dyn/closer.cgi/reef/0.11.0-incubating",
- "0.12.0-incubating": "http://www.apache.org/dyn/closer.cgi/reef/0.12.0-incubating",
- "0.13.0-incubating": "http://www.apache.org/dyn/closer.cgi/reef/0.13.0-incubating"
-};
var releaseSha512 = {
"0.10.0-incubating": "53844174f701a4c0c99964260c7abb4f8ef9d93aa6b8bdddbca37082e0f5754db5b00e2ae1fdd7732735159df8205a82e7a4dde2ef5abf2ca3e5d7dc43eb62fb",
@@ -44,42 +31,33 @@ var releaseNotes = {
"0.13.0-incubating": "https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315820&version=12332972"
};
-var javaApi = {
- "0.10.0-incubating": "apidocs/0.10.0-incubating/index.html",
- "0.11.0-incubating": "apidocs/0.11.0-incubating/index.html",
- "0.12.0-incubating": "apidocs/0.12.0-incubating/index.html",
- "0.13.0-incubating": "apidocs/0.13.0-incubating/index.html"
-};
-
-var dotnetApi = {
-};
-
function setReleaseLink() {
var releaseVersion = this.document.getElementById("selectRelease").value;
- if (releaseDirect[releaseVersion] == undefined) {
- this.document.getElementById("listRelease").style.display= "none";
+ this.document.getElementById("listRelease").style.display = "block";
+
+ var releaseDirectStr = "http://www.apache.org/dist/reef/" + releaseVersion + "/apache-reef-" + releaseVersion + ".tar.gz";
+ this.document.getElementById("directLink").setAttribute("href", releaseDirectStr);
+
+ var releaseMirror = "http://www.apache.org/dyn/closer.cgi/reef/" + releaseVersion;
+ this.document.getElementById("mirrorLink").setAttribute("href", releaseMirror);
+ this.document.getElementById("sha512Text").innerHTML = releaseSha512[releaseVersion];
+ this.document.getElementById("releaseNotesLink").setAttribute("href", releaseNotes[releaseVersion]);
+
+ var directReleaseStrSplit = releaseDirectStr.split("/");
+ this.document.getElementById("directLink").innerHTML =
+ directReleaseStrSplit[directReleaseStrSplit.length - 1];
+ this.document.getElementById("verificationLink").setAttribute("href",
+ releaseDirectStr.slice(0, (0 - directReleaseStrSplit[directReleaseStrSplit.length - 1].length)));
+
+ var javaApiLink = "apidocs/" + releaseVersion + "/index.html";
+ this.document.getElementById("javaApiLink").setAttribute("href", javaApiLink);
+ if (releaseVersion.indexOf("incubating") > -1) {
+ // special case: for versions 0.13.0 and earlier (incubation releases) .NET API documentation is not available
+ this.document.getElementById("dotnetApiLink").innerHTML = ".NET API available since release 0.14.0";
} else {
- this.document.getElementById("listRelease").style.display = "block";
-
- var releaseDirectStr = releaseDirect[releaseVersion];
- this.document.getElementById("directLink").setAttribute("href", releaseDirectStr);
- this.document.getElementById("mirrorLink").setAttribute("href", releaseMirror[releaseVersion]);
- this.document.getElementById("sha512Text").innerHTML = releaseSha512[releaseVersion];
- this.document.getElementById("releaseNotesLink").setAttribute("href", releaseNotes[releaseVersion]);
-
- var directReleaseStrSplit = releaseDirectStr.split("/");
- this.document.getElementById("directLink").innerHTML =
- directReleaseStrSplit[directReleaseStrSplit.length - 1];
- this.document.getElementById("verificationLink").setAttribute("href",
- releaseDirectStr.slice(0, (0 - directReleaseStrSplit[directReleaseStrSplit.length - 1].length)));
-
- this.document.getElementById("javaApiLink").setAttribute("href", javaApi[releaseVersion]);
- if (dotnetApi[releaseVersion] == undefined) {
- // special case: for versions 0.13.0 and earlier .NET API documentation is not available
- this.document.getElementById("dotnetApiLink").innerHTML = ".NET API available since release 0.14.0";
- } else {
- this.document.getElementById("dotnetApiLink").innerHTML = "<a href=" + dotnetApi[releaseVersion] + ">.NET API</a>";
- }
+ var dotnetApiLink = "apidoc_net/" + releaseVersion + "/index.html";
+ this.document.getElementById("dotnetApiLink").innerHTML = "<a href=" + dotnetApiLink + ">.NET API</a>";
}
-
}
+
+setReleaseLink();
http://git-wip-us.apache.org/repos/asf/reef/blob/df79b80e/website/src/site/site.xml
----------------------------------------------------------------------
diff --git a/website/src/site/site.xml b/website/src/site/site.xml
index 700cfc7..1fc1ad4 100644
--- a/website/src/site/site.xml
+++ b/website/src/site/site.xml
@@ -60,7 +60,6 @@ under the License.
<body>
<head>
- <script src="js/release.js" type="text/javascript"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@@ -126,7 +125,8 @@ under the License.
of The Apache Software Foundation. All other marks mentioned may be trademarks or registered
trademarks of their respective owners.
</div>
- </footer>
+ <script src="js/release.js" type="text/javascript"></script>
+ </footer>
<!--
this command gives a bunch of information about the Maven site creation project
<menu ref="reports"/>