tstellar created this revision.
tstellar requested review of this revision.
Herald added a project: clang.

Also add some javascript to automatically change that status to
"In Progress" when the issue is assigned to someone, and "Clang ToT"
when the issue is closed.

Note that the feature entries will still need to be manually updated
with the first version of clang that they appear in once they have
been completed.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D120454

Files:
  clang/www/cxx_status.html

Index: clang/www/cxx_status.html
===================================================================
--- clang/www/cxx_status.html
+++ clang/www/cxx_status.html
@@ -58,7 +58,7 @@
 <tr>
  <td><a href="#cxx20">C++20</a></td>
  <td><tt>-std=c++20</tt></td>
- <td class="partial" align="center">Partial</td>
+ <td class="partial" align="center"><a href='https://github.com/llvm/llvm-project/milestone/4'>Partial</a></td>
 </tr>
 <tr>
  <td><a href="#cxx23">C++2b (tentatively C++23)</a></td>
@@ -80,6 +80,36 @@
 the "c++" label, as well as mode-specific labels such as "c++11", "c++14",
 and so on, to track known bugs with Clang's language conformance.</p>
 
+<p>There should also be an issue created in the
+<a href="https://github.com/llvm/llvm-project/issues/";>LLVM bug tracker</a> for
+each new C++ standard feature.  Please use this template when creating a new bug:
+
+<table border=1 cellspacing="0"><tr><td>
+<b>Title:</b><br>
+Clang C++20 Feature: &lt;paper id&gt; - &lt;paper title&gt;
+
+<p><b>Body:</b><br>
+&lt;optional description&gt;<br>
+---<br>
+id: &lt;paper id&gt;<br>
+paper: &lt;link to paper&gt;
+</p>
+</td></tr></table>
+<p>
+Also be sure to add the issue to the appropriate milestone e.g. "Clang C++20"
+and add the relevant tags.
+</p>
+<p>
+Once you've created an issue for a new feature, add the link to the issue in the
+tables below.  Set the 'class' attribute on the 'a' tag equal to 'autoupdate' to
+automatically fetch status information from the issue in the tracker. For Example:</p>
+<p>&lt;a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54006'&gt;No&lt;/a&gt;
+</p>
+<p>
+Once the feature has been implemented, close the corresponding issue and update
+the table with first version of clang that will contain this feature.
+</p>
+
 <h2 id="cxx98">C++98 implementation status</h2>
 
 <p>Clang implements all of the ISO C++ 1998 standard
@@ -927,7 +957,9 @@
       </tr>
       <tr> <!-- from Cologne -->
         <td><a href="https://wg21.link/p0848r3";>P0848R3</a></td>
-        <td rowspan="1" class="none" align="center">No</td>
+        <td rowspan="1" class="none" align="center">
+          <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54006'>No</a>
+        </td>
       </tr>
       <tr>
         <td><a href="https://wg21.link/p1616r1";>P1616R1</a></td>
@@ -938,16 +970,27 @@
       </tr>
       <tr> <!-- from Belfast -->
         <td><a href="https://wg21.link/p1972r0";>P1972R0</a></td>
-        <td rowspan="4" class="none" align="center">No</td>
+        <td rowspan="1" class="none" align="center">
+          <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54008'>No</a>
+        </td>
       </tr>
       <tr>
         <td><a href="https://wg21.link/p1980r0";>P1980R0</a></td>
+        <td rowspan="1" class="none" align="center">
+          <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54037'>No</a>
+        </td>
       </tr>
       <tr> <!-- from Prague -->
         <td><a href="https://wg21.link/p2103r0";>P2103R0</a></td>
+        <td rowspan="1" class="none" align="center">
+          <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54038'>No</a>
+        </td>
       </tr>
       <tr> <!-- from February 2022 -->
         <td><a href="https://wg21.link/p2493r0";>P2493R0</a></td>
+        <td rowspan="1" class="none" align="center">
+          <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54052'>No</a>
+        </td>
       </tr>
       <tr>
         <td><a href="https://wg21.link/p2092r0";>P2092R0</a></td>
@@ -959,7 +1002,9 @@
       </tr>
       <tr>
         <td><a href="https://wg21.link/p2113r0";>P2113R0</a></td>
-        <td rowspan="1" class="none" align="center">No</td>
+        <td rowspan="1" class="none" align="center">
+          <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54039'>No</a>
+        </td>
       </tr>
     <!-- Albuquerque papers -->
     <tr>
@@ -1040,7 +1085,9 @@
     <tr>
       <td><tt>typename</tt> optional in more contexts</td>
       <td><a href="https://wg21.link/p0634r3";>P0634R3</a></td>
-      <td class="none" align="center">No</td>
+      <td class="none" align="center">
+        <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54007'>No</a>
+      </td>
     </tr>
     <tr>
       <td>Pack expansion in lambda <i>init-capture</i></td>
@@ -1156,10 +1203,15 @@
     <tr>
       <td rowspan="2">Parenthesized initialization of aggregates</td>
       <td><a href="https://wg21.link/p0960r3";>P0960R3</a></td>
-      <td rowspan="2" class="none" align="center">No</td>
+      <td rowspan="1" class="none" align="center">
+        <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54040'>No</a>
+      </td>
     </tr>
       <tr> <!-- from Belfast -->
         <td><a href="https://wg21.link/p1975r0";>P1975R0</a></td>
+        <td rowspan="1" class="none" align="center">
+          <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54041'>No</a>
+        </td>
       </tr>
     <tr>
       <td rowspan="10">Modules</td>
@@ -1172,10 +1224,15 @@
       </tr>
       <tr>
         <td><a href="https://wg21.link/p1811r0";>P1811R0</a></td>
-        <td rowspan="2" class="none" align="center">No</td>
+        <td rowspan="1" class="none" align="center">
+          <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54042'>No</a>
+        </td>
       </tr>
       <tr>
         <td><a href="https://wg21.link/p1703r1";>P1703R1</a></td>
+        <td rowspan="1" class="none" align="center">
+          <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54043'>No</a>
+        </td>
       </tr>
       <tr> <!-- from Belfast -->
         <td><a href="https://wg21.link/p1874r1";>P1874R1</a></td>
@@ -1183,13 +1240,21 @@
       </tr>
       <tr> <!-- from Belfast -->
         <td><a href="https://wg21.link/p1979r0";>P1979R0</a></td>
-        <td rowspan="3" class="none" align="center">No</td>
+        <td rowspan="1" class="none" align="center">
+          <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54045'>No</a>
+        </td>
       </tr>
       <tr> <!-- from Prague -->
         <td><a href="https://wg21.link/p1779r3";>P1779R3</a></td>
+        <td rowspan="1" class="none" align="center">
+          <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54046'>No</a>
+        </td>
       </tr>
       <tr>
         <td><a href="https://wg21.link/p1857r3";>P1857R3</a></td>
+        <td rowspan="1" class="none" align="center">
+          <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54047'>No</a>
+        </td>
       </tr>
       <tr>
         <td><a href="https://wg21.link/p2115r0";>P2115R0</a></td>
@@ -1197,7 +1262,9 @@
       </tr>
       <tr>
         <td><a href="https://wg21.link/p1815r2";>P1815R2</a></td>
-        <td class="none" align="center">No</td>
+        <td class="none" align="center">
+          <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54048'>No</a>
+        </td>
       </tr>
     <tr>
       <td>Coroutines</td>
@@ -1234,15 +1301,22 @@
     <tr>
       <td rowspan=2>Class template argument deduction for aggregates</td>
       <td><a href="https://wg21.link/p1816r0";>P1816R0</a></td>
-      <td rowspan=2 class="none" align="center">No</td>
+      <td rowspan=1 class="none" align="center">
+        <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54049'>No</a>
+      </td>
     </tr>
       <tr> <!-- from Prague -->
         <td><a href="https://wg21.link/p2082r1";>P2082R1</a></td>
+      <td rowspan=1 class="none" align="center">
+        <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54050'>No</a>
+      </td>
       </tr>
     <tr>
       <td>Class template argument deduction for alias templates</td>
       <td><a href="https://wg21.link/p1814r0";>P1814R0</a></td>
-      <td class="none" align="center">No</td>
+      <td class="none" align="center">
+        <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54051'>No</a>
+      </td>
     </tr>
     <tr>
       <td>Permit conversions to arrays of unknown bound</td>
@@ -1542,5 +1616,52 @@
 </details>
 
 </div>
+<script>
+async function getIssue(issueNumber) {
+  var response = await fetch('https://api.github.com/repos/llvm/llvm-project/issues/' + issueNumber);
+  return response.json();
+}
+
+async function updateIssueCell(element) {
+  var status = "No";
+  var className = "none";
+  var issueNumber = element.href.split("/").slice(-1)[0];
+  var issue = await getIssue(issueNumber);
+  console.log(issue);
+  if (issue['assignee']) {
+    status = "In Progress";
+    className = "partial";
+  }
+  if (issue['state'] == 'closed') {
+    status = "Clang ToT";
+    className = "unreleased";
+  }
+  element.innerHTML = status;
+  element.parentElement.className = className;
+}
+/* Try to automatially update the status of any issue that has an associated
+ * issue on GitHub.  The status still needs to be manually updated with the
+ * clang version the feature will appear in once it is complete.  The automatic
+ * updates will only use 2 different states:
+ * 'In Progress' when the associated GitHub issue has been assigned to someone.
+ * 'Clang ToT' when the associated GitHub issue has been closed.
+ *
+ * In order to enable automatic updates for a feature, add a link to the github
+ * issue in the appropriate cell, tag it with the 'autoupdate' class, and put No
+ * in the link text field. e.g.
+ * <a class='autoupdate' href='https://github.com/llvm/llvm-project/issues/54006'>No</a>
+ *
+ * This is designed to still provide useful information if javascript is
+ * disabled.  When javascript is disabled, instead of the 'In Progress' or
+ * 'Clang ToT' text, features will have the 'No' text, which is no worse than
+ * if the automation wasn't present.
+ */
+
+Array.from(document.getElementsByClassName("autoupdate")).forEach(element => {
+  if (element.innerHTML != "No")
+    return;
+  updateIssueCell(element);
+})
+</script>
 </body>
 </html>
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D120454: clang/www:... Tom Stellard via Phabricator via cfe-commits

Reply via email to