Skip to content

Merge of work to build and deploy teaching guidelines document in multiple formats #70

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 65 commits into from
Sep 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
5a2262d
Added a new attempt at a revised "Guidelines for Teaching C++" document.
mdadams Mar 9, 2021
f6a3da0
Added some information to the README document and made some corrections
mdadams Apr 22, 2021
ffc6100
Document:
mdadams Apr 23, 2021
d7bc3f7
Fixed some labelling-related issues in the document.
mdadams Apr 23, 2021
03bb8ef
Made a few minor wording changes to the section on contributing.
mdadams Apr 23, 2021
0e24e79
Added two WG21 papers to the references section.
mdadams Apr 23, 2021
13fd4a0
Added a logo to the document title and made a few other minor changes
mdadams May 14, 2021
1730ea8
Added some examples to the usage information for the document
mdadams May 14, 2021
4870006
Changed the document deploy script so that it no longer creates a
mdadams May 14, 2021
f773251
Changed the target of the symlink for the latest version of the
mdadams May 14, 2021
3bc0b24
Removed an outdated link from the document.
mdadams May 14, 2021
c23de54
Made a few improvements to the document deploy script.
mdadams May 20, 2021
4c8355c
Added the creation of a top-level index.html file for the GitHub Pages
mdadams May 20, 2021
54396ce
Added the deployment of built document to the same repository.
mdadams May 20, 2021
6dd41af
Corrected some typos in a workflow file.
mdadams May 20, 2021
a555d9b
Fixed a bug in the deploy script associated with the handling of the
mdadams May 20, 2021
30fef19
Fix a bug in the deploy script.
mdadams May 20, 2021
2862aec
Fix bug in deploy script.
mdadams May 20, 2021
939e6b2
Testing.
mdadams May 20, 2021
1d97303
Testing.
mdadams May 20, 2021
766f13c
Testing.
mdadams May 20, 2021
d207f32
Testing.
mdadams May 20, 2021
0eb6385
Made changes to file layout.
mdadams May 20, 2021
95587e4
More reorganizing.
mdadams May 20, 2021
d4f4ae0
Testing.
mdadams May 20, 2021
6ff132e
Testing.
mdadams May 20, 2021
43ebd54
Revised README.
mdadams May 20, 2021
3e0ade7
Replaced HTML markup for tables with the corresponding Markdown markup
mdadams May 21, 2021
484c296
Added the missing license text.
mdadams May 21, 2021
366a9c6
Pulled contributor names from the Git repository revision history.
mdadams May 21, 2021
5e7ff7f
Testing.
mdadams May 21, 2021
1c48ea5
Testing.
mdadams May 21, 2021
eace426
Testing.
mdadams May 21, 2021
dd3a41d
Testing.
mdadams May 21, 2021
703307c
Testing.
mdadams May 21, 2021
149d0a3
Testing.
mdadams May 21, 2021
619d35d
Testing.
mdadams May 21, 2021
3707f46
Testing.
mdadams May 21, 2021
ebafa2f
Testing.
mdadams May 21, 2021
2f705db
Testing.
mdadams May 21, 2021
8b6f87a
Testing.
mdadams May 21, 2021
1ba86b1
Testing.
mdadams May 21, 2021
1fb755d
Testing.
mdadams May 21, 2021
a147a1f
Testing.
mdadams May 21, 2021
e5a8055
Testing.
mdadams May 21, 2021
4d4638e
Testing.
mdadams May 21, 2021
91322f0
Testing.
mdadams May 21, 2021
663415b
Testing.
mdadams May 21, 2021
8b370a4
Add missing files.
mdadams May 21, 2021
43c3c86
Added a description of the repository organization to the top-level
mdadams May 31, 2021
ca4ff6a
Made some minor editorial changes to the top-level README.
mdadams May 31, 2021
b330b12
Fixed a typo in the README.
mdadams Jun 7, 2021
bc821d5
Fixed wording/spelling in README document.
mdadams Jun 7, 2021
76d8103
Merge branch 'AdaptFolderLayout' into mdadams-v2
mdadams Jul 20, 2021
3d81d6c
Added preliminary support for the use of an access token for
mdadams Jul 20, 2021
4de0d07
Fixed a typo in the deploy script.
mdadams Jul 20, 2021
eb3a03c
Made more changes to the deploy script.
mdadams Jul 20, 2021
3a4df84
Made another change to the deploy script.
mdadams Jul 20, 2021
75a5e1f
Made some editorial changes to the GitHub Actions workflow files.
mdadams Jul 20, 2021
1ae2d42
Commented out some obsolete/unused lines in the release workflow file.
mdadams Jul 20, 2021
7081bd7
Added mention of some new links in the teaching guidelines document.
mdadams Jul 20, 2021
b65cfc7
Added mention of a new link in the teaching guidelines document.
mdadams Jul 20, 2021
f1bff3f
Removed the copy elision module that is neither complete nor approved
mdadams Jul 21, 2021
ba572fe
Removed an obsolete entry in the knowledge areas file.
mdadams Jul 21, 2021
9d28463
Moved some files around in order to facilitate easier merging.
mdadams Sep 8, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# This action is used to perform a test build of the document that includes
# performing spell checking.

name: ci

on: [push]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
############################################################
- name: Prepare to build the document.
shell: bash
run: tools/build/prebuild
############################################################
- name: Build the document.
shell: bash
run: |
tools/build/build \
-d ${{runner.temp}}/output \
-z ${{github.ref}} \
-s
############################################################
79 changes: 79 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# This is an action that builds the document and deploys the build document
# to its associated GitHub pages site.

name: release

on:
push:
tags:
- 'v*.*.*'

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
############################################################
- name: Prepare to build the document.
shell: bash
run: tools/build/prebuild
############################################################
# The following builds the document in multiple formats for deployment.
- name: Build the document.
shell: bash
run: |
tools/build/build \
-d ${{runner.temp}}/output \
-z ${{github.ref}}
############################################################
# The following deploys to a different branch of the same repository
# using an access token for authentication.
# Note: It is recommended that this approach not be used.
#- name: Deploy the built document to a GitHub Pages branch.
# env:
# DEPLOY_TOKEN: ${{secrets.DEPLOY_TOKEN}}
# shell: bash
# run: |
# tools/build/deploy \
# -f \
# -m token \
# -t ${{runner.temp}}/deploy_tmp \
# -i ${{runner.temp}}/output \
# -r mdadams/SG20 \
# -b gh-pages \
# -z ${{github.ref}}
############################################################
# The following deploys to a different branch of the same repository
# using a deploy (i.e., SSH) key for authentication.
- name: Deploy the built document to a GitHub Pages branch.
env:
DEPLOY_KEY: ${{secrets.DEPLOY_KEY}}
shell: bash
run: |
tools/build/deploy \
-f \
-m key \
-t ${{runner.temp}}/deploy_tmp \
-i ${{runner.temp}}/output \
-r mdadams/SG20 \
-b gh-pages \
-z ${{github.ref}}
############################################################
# The following deploys to a branch of a different repository
# using a deploy (i.e., SSH) key authentication.
- name: Deploy the built document to a GitHub Pages branch.
env:
DEPLOY_KEY: ${{secrets.ALT_DEPLOY_KEY}}
shell: bash
run: |
tools/build/deploy \
-f \
-m key \
-t ${{runner.temp}}/deploy_tmp_2 \
-i ${{runner.temp}}/output \
-r mdadams/sg20_guidelines_for_teaching_cpp \
-b gh-pages \
-z ${{github.ref}}
############################################################
41 changes: 41 additions & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
Copyright (c) Standard C++ Foundation and its contributors

Standard C++ Foundation grants you a worldwide, nonexclusive, royalty-free,
perpetual license to copy, use, modify, and create derivative works from this
project for your personal or internal business use only. The above copyright
notice and this permission notice shall be included in all copies or
substantial portions of the project. This license does not grant permission
to use the trade names, trademarks, service marks, or product names of the
licensor, except as required for reasonable and customary use in describing
the origin of the project.

Standard C++ Foundation reserves the right to accept contributions to the
project at its discretion.

By contributing material to this project, you grant Standard C++ Foundation,
and those who receive the material directly or indirectly from Standard C++
Foundation, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable,
transferrable license to reproduce, prepare derivative works of, publicly
display, publicly perform, and distribute your contributed material and such
derivative works, and to sublicense any or all of the foregoing rights to third
parties for commercial or non-commercial use. You also grant Standard C++
Foundation, and those who receive the material directly or indirectly from
Standard C++ Foundation, a perpetual, worldwide, non-exclusive, royalty-free,
irrevocable license under your patent claims that directly read on your
contributed material to make, have made, use, offer to sell, sell and import
or otherwise dispose of the material. You warrant that your material is your
original work, or that you have the right to grant the above licenses.

THE PROJECT IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE PROJECT OR THE USE OR OTHER DEALINGS IN THE
PROJECT.

If you believe that anything in the project infringes your copyright, please
contact us at admin@isocpp.org with your contact information and a detailed
description of your intellectual property, including a specific URL where you
believe your intellectual property is being infringed.

8 changes: 8 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
SUBDIRS = \
sources \

.PHONY: all world clean install
all world clean install:
for subdir in $(SUBDIRS); do \
( cd $$subdir && make -$(MAKEFLAGS) $@ ) || exit 1; \
done
112 changes: 112 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
Guidelines for Teaching C++
===========================

This repository contains the source for the document:

- Guidelines for Teaching C++

When the repository is tagged, this document is automatically built
and made available via GitHub Pages at:

- <https://cplusplus.github.io/SG20/latest> (soon)
- <https://mdadams.github.io/sg20_guidelines_for_teaching_cpp/latest>
(currently)
- <https://mdadams.github.io/SG20/latest> (currently)

# Prerequisites for Building the Document

The following software is needed to build the document:

- pandoc
- aspell
- various basic POSIX utilities, including (amongst others):
- make
- awk
- sed

If one would like to build the document in PDF format, the
following software is also required:

- LaTex

# Building the Document

To build the document, simply type:

1. make clean
2. make all
3. make install

(Strictly speaking, step 2 can be skipped, since the install target
has a dependency on the all target.)

The above commands will build the document in several formats:

- HTML format as a single HTML document:
install/html/index.html
- EPUB format:
guidelines.epub
- HTML format split across multiple HTML documents:
install/html_split/index.html

A make target called world is also defined. Building this target (i.e.,
"make world") will generate the document in additional formats, including
PDF format, but requires that LaTeX be installed.

The build process performs spell checking.
The build will fail if any spelling errors are detected.

# Spell Checking

Words that are flagged as having spelling errors can be classified
into two categories:

1. valid English words (such as technical terms) that are not in
the spell checker's dictionary
2. words that are not really "proper" English words but are also not
really errors either (e.g., people's names)

Words in category 1 should be added to the file
config/spellcheck/wordlist.
Words in category 2 should be added to the file
config/spellcheck/ignored_words.txt

# Repository Organization

The files in this repository are organized into directories as follows:

- config:
This directory contains configuration files that control various
aspects of how the guidelines document is built.
- pandoc_templates:
This directory contains document templates used by pandoc during
the document build process.
- spellcheck:
The directory contains lists of additional words and ignorable errors
for spell checking.
- sources:
This directory hierarchy contains the source files for the document.
- css:
This directory contains CSS files used by the document when built
in HTML format.
- images:
This directory contains images used in the document.
- modules:
The directory hierarchy contains the information for individual modules
and topics. There is one directory per module and one file per topic.
- tools:
The directory hierarchy contains various scripts and other tools used for
building and deploying the document to GitHub pages site.
- build:
This directory contains scripts used for building and deploying the
document.
- old:
This directory hierachy needs to be reorganized. This directory
should probably be renamed and its contents possibly reorganized
or relocated elsewhere.
- tools
- tests
- TEST_INPUTS
- pandoc_filters:
This directory contains various filters needed for pandoc. These
filters do things such as allow markdown-aware spell checking.
7 changes: 7 additions & 0 deletions TODO.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Some topics listed on GitHub are unclear as to their meaning.
e.g. Heterogeneous Compiling
[Is "Heterogeneous Computing" intended or "Cross Compiling"?]
There are others too.

More thought is needed on naming conventions for labels for
knowledge areas/units.
Loading