|
8 | 8 |
|
9 | 9 | <body>
|
10 | 10 |
|
11 |
| -<p>Revised: |
12 |
| -<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B %Y" startspan -->24 March 2023<!--webbot bot="Timestamp" endspan i-checksum="39626" --></p> |
| 11 | +<p>Revised: |
| 12 | +2 November 2024</p> |
13 | 13 |
|
14 | 14 | <h1>How To Instructions</h1>
|
15 |
| -<p>These instruction assume you going to keep the issues lists source files in a directory named "issues", |
16 |
| -and the issues lists generated HTML files in a directory named "issues-gh-pages".</p> |
17 |
| -<blockquote> |
18 |
| -<p>Keeping the source files and generated HTML files in separate directories |
19 |
| -falls out from the GitHub automatic web page approach: files in a branch named "gh-pages" |
20 |
| -are automatically published by GitHub as web pages.</p> |
21 |
| -</blockquote> |
| 15 | +<p>These instructions assume you keep the issues lists source files in a directory named <code>issues</code>. |
| 16 | +Each issue is stored in an XML file. |
| 17 | +The code in <code>src</code> generates the HTML issues lists from the XML sources. |
| 18 | +When changes to the XML files are pushed to the GitHub repository an automated |
| 19 | +<a href="https://docs.github.com/en/actions">GitHub Actions</a> workflow |
| 20 | +generates new HTML files and commits them to the <code>gh-pages</code> branch. |
| 21 | +The content of the <code>gh-pages</code> branch is automatically deployed |
| 22 | +to <a href="https://cplusplus.github.io/LWG/">https://cplusplus.github.io/LWG/</a>. |
| 23 | +</p> |
22 | 24 |
|
23 | 25 | <h2>Prerequisites</h2>
|
24 | 26 | <ul>
|
25 | 27 | <li>Git</li>
|
26 | 28 | <li>A C++17 compiler. Clang 9 works. GCC 8.x works for unix-like systems, but GCC 9.3 is recommended (because its <code>std::filesystem</code> supports Windows, and no additional <code>-lstdc++fs</code> linker option is needed).</li>
|
27 |
| - <li>Windows is a prerequisite to use the Windows <code>.bat</code> scripts, or |
28 |
| - a POSIX environment is a prerequisite to use the equivalent <code>.sh</code> |
29 |
| - scripts.</li> |
| 29 | + <li>Windows is a prerequisite to use the Windows <code>.bat</code> scripts; |
| 30 | + a POSIX environment is a prerequisite to use the equivalent <code>make</code> |
| 31 | + commands.</li> |
30 | 32 | </ul>
|
31 | 33 |
|
32 | 34 | <h2>Initial setup</h2>
|
33 | 35 | <p><b>Do this once only:</b></p>
|
34 | 36 | <blockquote>
|
35 | 37 | <pre>cd path-to-where-you-want-to-keep-this-stuff
|
36 | 38 | git clone [email protected]:cplusplus/LWG.git issues
|
37 |
| -git clone -b gh-pages [email protected]:cplusplus/LWG.git issues-gh-pages |
38 |
| -cd issues |
39 |
| -mkdir mailing</pre> |
| 39 | +</pre> |
40 | 40 | </blockquote>
|
41 |
| -<p>Using recent versions of Git the second <code>git clone</code> command |
42 |
| -can be replaced by adding a new "worktree" that shares the repository metadata |
43 |
| -with the initial clone:</p> |
44 |
| -<blockquote><pre> |
45 |
| -git -C issues worktree add -b gh-pages ../issues-gh-pages origin/gh-pages |
46 |
| -</pre></blockquote> |
47 |
| -<p>This has the advantage of only cloning the repo once, |
48 |
| -which saves time, bandwidth and disk space.</p> |
49 |
| - |
| 41 | +<p> |
| 42 | +The commands shown below assume you are in the <code>issues</code> directory |
| 43 | +that contains the git repository cloned by the command above. |
| 44 | +</p> |
| 45 | +<p> |
| 46 | +The repository contains a <code>Makefile</code> that has recipes for |
| 47 | +building the software (<code>make pgms</code>), |
| 48 | +updating the meta-data (<code>make new-papers</code> etc.), |
| 49 | +and regenerating the HTML lists (<code>make lists</code>). |
| 50 | +</p> |
50 | 51 |
|
51 |
| -<h2>Build issues software</h2> |
52 |
| -<p>Do this after the initial setup, and then again whenever the source |
53 |
| -code (in <code>issues/src</code>) changes.</p> |
| 52 | +<h2>Working with the issues lists on Windows</h2> |
| 53 | +<p> |
| 54 | +If you can't use <code>make</code> then the steps are a little more manual: |
| 55 | +</p> |
54 | 56 | <blockquote>
|
55 |
| - <pre>cd issues |
56 |
| -bin\build_pgms</pre> |
57 |
| -</blockquote> |
| 57 | +<pre>cd issues |
| 58 | +mkdir mailing |
| 59 | +bin\build_pgms |
| 60 | +bin\build_lists |
| 61 | +</pre></blockquote> |
| 62 | +<p> |
| 63 | +You will need to re-run <code>bin\build_pgms</code> |
| 64 | +whenever the source code (in <code>issues/src</code>) changes. |
| 65 | +(This isn't needed when using <code>make</code> because the makefile |
| 66 | +will automatically do <code>make pgms</code> as a prerequisite of |
| 67 | +<code>make lists</code>.) |
| 68 | +</p> |
58 | 69 |
|
59 | 70 | <h2>Add or change issues</h2>
|
60 | 71 | <p>There is one source file per issue, in <code>issues/xml</code>. The file
|
61 |
| -<code>issues/xml/lwg-template.xml</code> can be used as a template to start a |
62 |
| -new issue. Use any text editor to edit the files.</p> |
| 72 | +<code>issues/xml/lwg-template.xml</code> is a template for a |
| 73 | +new issue.</p> |
63 | 74 | <p>Commit files locally as you update them:</p>
|
64 | 75 | <blockquote>
|
65 |
| - <pre>cd issues\xml |
66 |
| -edit-as-needed |
67 |
| -git commit -a -m"your commit message here"</pre> |
68 |
| -</blockquote> |
69 |
| -<p>Verify your changes had the desired effect by regenerating the |
70 |
| -issues lists and inspecting your changes:</p> |
71 |
| -<blockquote> |
72 |
| - <pre>cd issues |
73 |
| -bin\build_lists</pre> |
| 76 | + <pre><em># edit the XML files or add new XML files</em> |
| 77 | +<em># ...</em> |
| 78 | +<em># stage the edited XML files (and any new ones) to be committed:</em> |
| 79 | +git add xml/issues*.xml |
| 80 | +git commit -m "your commit message here"</pre> |
74 | 81 | </blockquote>
|
75 |
| -<p>Once you are happy with your changes, push them up to the GitHub |
| 82 | +<p>Verify your changes had the desired effect by regenerating the |
| 83 | +issues lists and inspecting your changes, by running |
| 84 | +<code>make lists</code> (or <code>bin\build_lists</code> on Windows). |
| 85 | +</p> |
| 86 | +<p>Once you are happy with your changes, push them up to the GitHub |
76 | 87 | public repository:</p>
|
77 | 88 | <blockquote>
|
78 |
| - <pre>cd issues |
79 |
| -git push</pre> |
| 89 | + <pre>git push</pre> |
80 | 90 | </blockquote>
|
81 | 91 | <p>New versions of the issues lists will be automatically published online.</p>
|
82 | 92 |
|
@@ -155,7 +165,8 @@ <h2>Generate Issues Lists for a Mailing</h2>
|
155 | 165 | <ol>
|
156 | 166 | <li>The revision history (this should be done first)
|
157 | 167 | <ol>
|
158 |
| - <li>Run <code>bin/lists revision history</code> to print the new revision history.</li> |
| 168 | + <li>Run <code>make history</code> (or equivalently, <code>bin/lists revision history</code>) |
| 169 | + to print the new revision history.</li> |
159 | 170 | <li>Paste the new revision under the <code><revision_history></code> tag</li>
|
160 | 171 | </ol>
|
161 | 172 | </li>
|
|
0 commit comments