diff --git a/how-to-docs.html b/how-to-docs.html index cbccba9b47..4f280e75db 100644 --- a/how-to-docs.html +++ b/how-to-docs.html @@ -8,25 +8,27 @@ -

Revised: -24 March 2023

+

Revised: +2 November 2024

How To Instructions

-

These instruction assume you going to keep the issues lists source files in a directory named "issues", -and the issues lists generated HTML files in a directory named "issues-gh-pages".

-
-

Keeping the source files and generated HTML files in separate directories -falls out from the GitHub automatic web page approach: files in a branch named "gh-pages" -are automatically published by GitHub as web pages.

-
+

These instructions assume you keep the issues lists source files in a directory named issues. +Each issue is stored in an XML file. +The code in src generates the HTML issues lists from the XML sources. +When changes to the XML files are pushed to the GitHub repository an automated +GitHub Actions workflow +generates new HTML files and commits them to the gh-pages branch. +The content of the gh-pages branch is automatically deployed +to https://cplusplus.github.io/LWG/. +

Prerequisites

Initial setup

@@ -34,49 +36,57 @@

Initial setup

cd path-to-where-you-want-to-keep-this-stuff
 git clone git@github.com:cplusplus/LWG.git issues
-git clone -b gh-pages git@github.com:cplusplus/LWG.git issues-gh-pages
-cd issues
-mkdir mailing
+
-

Using recent versions of Git the second git clone command -can be replaced by adding a new "worktree" that shares the repository metadata -with the initial clone:

-
-git -C issues worktree add -b gh-pages ../issues-gh-pages origin/gh-pages
-
-

This has the advantage of only cloning the repo once, -which saves time, bandwidth and disk space.

- +

+The commands shown below assume you are in the issues directory +that contains the git repository cloned by the command above. +

+

+The repository contains a Makefile that has recipes for +building the software (make pgms), +updating the meta-data (make new-papers etc.), +and regenerating the HTML lists (make lists). +

-

Build issues software

-

Do this after the initial setup, and then again whenever the source -code (in issues/src) changes.

+

Working with the issues lists on Windows

+

+If you can't use make then the steps are a little more manual: +

-
cd issues
-bin\build_pgms
-
+
cd issues
+mkdir mailing
+bin\build_pgms
+bin\build_lists
+
+

+You will need to re-run bin\build_pgms +whenever the source code (in issues/src) changes. +(This isn't needed when using make because the makefile +will automatically do make pgms as a prerequisite of +make lists.) +

Add or change issues

There is one source file per issue, in issues/xml. The file -issues/xml/lwg-template.xml can be used as a template to start a -new issue. Use any text editor to edit the files.

+issues/xml/lwg-template.xml is a template for a +new issue.

Commit files locally as you update them:

-
cd issues\xml
-edit-as-needed
-git commit -a -m"your commit message here"
-
-

Verify your changes had the desired effect by regenerating the -issues lists and inspecting your changes:

-
-
cd issues
-bin\build_lists
+
# edit the XML files or add new XML files
+# ...
+# stage the edited XML files (and any new ones) to be committed:
+git add xml/issues*.xml
+git commit -m "your commit message here"
-

Once you are happy with your changes, push them up to the GitHub +

Verify your changes had the desired effect by regenerating the +issues lists and inspecting your changes, by running +make lists (or bin\build_lists on Windows). +

+

Once you are happy with your changes, push them up to the GitHub public repository:

-
cd issues
-git push
+
git push

New versions of the issues lists will be automatically published online.

@@ -155,7 +165,8 @@

Generate Issues Lists for a Mailing

  1. The revision history (this should be done first)
      -
    1. Run bin/lists revision history to print the new revision history.
    2. +
    3. Run make history (or equivalently, bin/lists revision history) + to print the new revision history.
    4. Paste the new revision under the <revision_history> tag