Skip to content

Commit 881bfdf

Browse files
authored
Merge branch 'master' into binford2k-patch-2
2 parents 7ccd6fe + 48ba4e6 commit 881bfdf

282 files changed

Lines changed: 6027 additions & 4419 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yaml

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
tag: '${{ steps.set-params.outputs.tag }}'
3636

3737
steps:
38-
- uses: actions/checkout@v6
38+
- uses: actions/checkout@v7
3939
with:
4040
ref: '${{ inputs.ref }}'
4141
fetch-depth: 1
@@ -57,14 +57,17 @@ jobs:
5757
5858
build:
5959
runs-on: ubuntu-24.04
60-
timeout-minutes: 5
60+
# references:all clones and generates docs for three products and the
61+
# component-version tasks make live GitHub API calls, so the build is network-
62+
# variable and runs ~5 min; give headroom above the previous tight 5-min cap.
63+
timeout-minutes: 10
6164
needs:
6265
- setup
6366
env:
6467
ARCHIVE: '${{ needs.setup.outputs.archive }}'
6568

6669
steps:
67-
- uses: actions/checkout@v6
70+
- uses: actions/checkout@v7
6871
with:
6972
ref: '${{ inputs.ref }}'
7073
fetch-depth: 1
@@ -79,12 +82,19 @@ jobs:
7982
env:
8083
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
8184
run: |
82-
bundle exec rake references:openfact INSTALLPATH=docs
83-
bundle exec rake references:openvox INSTALLPATH=docs
84-
bundle exec rake references:openbolt INSTALLPATH=docs
85-
# Refresh the openvox-agent release-contents table from upstream pins.
86-
# Falls back to the committed _data file if the GitHub API is unreachable.
85+
# Build each product/version's reference docs from the pin table in
86+
# _data/products.yml into its collection (see `rake references:all`).
87+
bundle exec rake references:all INSTALLPATH=docs
88+
# Refresh the component-version tables (agent, server, openvoxdb) from
89+
# upstream pins. Each falls back to its committed _data file if the
90+
# GitHub API is unreachable, so a transient failure never breaks the build.
8791
bundle exec rake references:agent_versions || echo 'agent_versions refresh failed; using committed _data'
92+
bundle exec rake references:server_versions || echo 'server_versions refresh failed; using committed _data'
93+
bundle exec rake references:openvoxdb_versions || echo 'openvoxdb_versions refresh failed; using committed _data'
94+
bundle exec rake references:openbolt_versions || echo 'openbolt_versions refresh failed; using committed _data'
95+
# Refresh the supported-platforms table from the shared-actions
96+
# platforms.json, falling back to the committed _data file if unreachable.
97+
bundle exec rake references:supported_platforms || echo 'supported_platforms refresh failed; using committed _data'
8898
bundle exec jekyll build
8999
- name: Archive website
90100
run: |

.github/workflows/deploy.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,10 @@ jobs:
4040
4141
ship:
4242
runs-on: ubuntu-24.04
43-
timeout-minutes: 1
43+
# Pulling and extracting the full-site archive, uploading the Pages artifact,
44+
# and the GH Pages deployment together exceed 1 minute as the site grows, so
45+
# give the job headroom above the previous tight 1-minute cap.
46+
timeout-minutes: 5
4447
needs:
4548
- setup
4649
permissions:

.github/workflows/markdownlint.yml

Lines changed: 15 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -15,72 +15,21 @@ jobs:
1515
markdown-lint:
1616
runs-on: ubuntu-latest
1717
steps:
18-
- uses: actions/checkout@v6
19-
with:
20-
fetch-depth: 0 # required to resolve base.sha for PR diff comparison
21-
- name: Find changed Markdown files
22-
id: changed-markdown
18+
- uses: actions/checkout@v7
19+
- name: List tracked Markdown files
20+
id: tracked-markdown
2321
shell: bash
22+
# Lint git-tracked files only. This lints the canonical versioned dirs
23+
# once and skips the `_latest` symlinks (git stores them as single
24+
# symlink entries, so a filesystem glob would double-lint their targets).
25+
# It also excludes generated reference docs, which are gitignored.
2426
run: |
25-
case "${GITHUB_EVENT_NAME}" in
26-
pull_request)
27-
base_sha="${{ github.event.pull_request.base.sha }}"
28-
head_sha="${GITHUB_SHA}"
29-
;;
30-
push)
31-
base_sha="${{ github.event.before }}"
32-
head_sha="${GITHUB_SHA}"
33-
;;
34-
*)
35-
# workflow_dispatch: lints only files changed in the most recent commit, not the full branch
36-
# || true handles initial commits with no parent
37-
base_sha="$(git rev-parse "${GITHUB_SHA}^" 2>/dev/null || true)"
38-
head_sha="${GITHUB_SHA}"
39-
;;
40-
esac
41-
42-
if [[ -z "${base_sha}" || "${base_sha}" =~ ^0+$ ]]; then
43-
base_sha="$(git rev-list --max-parents=0 "${head_sha}")"
44-
fi
45-
46-
git diff --name-only --diff-filter=A "${base_sha}" "${head_sha}" -- '*.md' '*.markdown' > added-markdown-files.txt
47-
git diff --name-only --diff-filter=CMRT "${base_sha}" "${head_sha}" -- '*.md' '*.markdown' > modified-markdown-files.txt
48-
49-
if [[ -s added-markdown-files.txt ]]; then
50-
echo "has_added=true" >> "${GITHUB_OUTPUT}"
51-
{
52-
echo 'added_files<<EOF'
53-
cat added-markdown-files.txt
54-
echo 'EOF'
55-
} >> "${GITHUB_OUTPUT}"
56-
else
57-
echo "has_added=false" >> "${GITHUB_OUTPUT}"
58-
fi
59-
60-
if [[ -s modified-markdown-files.txt ]]; then
61-
echo "has_modified=true" >> "${GITHUB_OUTPUT}"
62-
{
63-
echo 'modified_files<<EOF'
64-
cat modified-markdown-files.txt
65-
echo 'EOF'
66-
} >> "${GITHUB_OUTPUT}"
67-
else
68-
echo "has_modified=false" >> "${GITHUB_OUTPUT}"
69-
fi
70-
71-
- name: No changed Markdown files
72-
if: steps.changed-markdown.outputs.has_added != 'true' && steps.changed-markdown.outputs.has_modified != 'true'
73-
run: echo "No changed Markdown files to lint."
74-
75-
- name: Lint new Markdown files (enforced)
76-
uses: DavidAnson/markdownlint-cli2-action@v23
77-
if: steps.changed-markdown.outputs.has_added == 'true'
78-
with:
79-
globs: ${{ steps.changed-markdown.outputs.added_files }}
80-
81-
- name: Lint modified Markdown files (advisory)
82-
uses: DavidAnson/markdownlint-cli2-action@v23
83-
if: steps.changed-markdown.outputs.has_modified == 'true'
84-
continue-on-error: true
27+
{
28+
echo 'files<<EOF'
29+
git ls-files '*.md' '*.markdown'
30+
echo 'EOF'
31+
} >> "${GITHUB_OUTPUT}"
32+
- name: Lint tracked Markdown files
33+
uses: DavidAnson/markdownlint-cli2-action@v24
8534
with:
86-
globs: ${{ steps.changed-markdown.outputs.modified_files }}
35+
globs: ${{ steps.tracked-markdown.outputs.files }}

.github/workflows/test.yml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
steps:
1616
# needs fetch-depth because the packaging dem reads old git tags
1717
- name: Checkout current PR
18-
uses: actions/checkout@v6
18+
uses: actions/checkout@v7
1919
with:
2020
fetch-depth: 0
2121
- name: Install Ruby version 3.3
@@ -36,7 +36,7 @@ jobs:
3636
steps:
3737
# needs fetch-depth because the packaging gem reads old git tags
3838
- name: Checkout current PR
39-
uses: actions/checkout@v6
39+
uses: actions/checkout@v7
4040
with:
4141
fetch-depth: 0
4242
- name: Install Ruby version 3.3
@@ -54,9 +54,7 @@ jobs:
5454
# into docs/ first, the same way the publish workflow does.
5555
- name: Generate reference docs
5656
run: |
57-
bundle exec rake references:openfact INSTALLPATH=docs
58-
bundle exec rake references:openvox INSTALLPATH=docs
59-
bundle exec rake references:openbolt INSTALLPATH=docs
57+
bundle exec rake references:all INSTALLPATH=docs
6058
- name: Build site
6159
run: bundle exec jekyll build
6260
- name: Check internal links

.markdownlint.yaml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
11
---
22
default: true
33

4+
# Line length is capped high (400), rather than at a typical prose width.
5+
# These docs are ported with one-paragraph-per-line source: a whole paragraph
6+
# is a single source line, which the renderer wraps to the viewport, so the
7+
# raw line length has no effect on the published page. Enforcing a tight limit
8+
# would mean reflowing ~800 lines purely for source formatting, with nothing
9+
# visible to readers. We keep a high cap anyway because very long source lines
10+
# do hurt diff review and editing -- 400 leaves normal long prose alone while
11+
# still flagging the genuinely unreadable outliers. Table rows can't wrap, so
12+
# they're exempt at any limit.
413
line-length:
5-
line_length: 210
14+
line_length: 400
15+
tables: false
616

717
blank_lines:
818
maximum: 2

CONTRIBUTING.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,13 @@ bundle exec rake references:openfact INSTALLPATH=docs
5151
bundle exec rake references:openbolt INSTALLPATH=docs
5252
```
5353

54+
Or build every pinned product/version at once — this is what CI does, reading the
55+
pins from `_data/products.yml`:
56+
57+
```console
58+
bundle exec rake references:all INSTALLPATH=docs
59+
```
60+
5461
Note: It is possible to specify a version (tag or branch) to be used.
5562
If no version is provided, the latest stable release tag will be used.
5663
This is useful when checking for changes made in upstream reference source like OpenFact or OpenBolt repo itself.
@@ -61,6 +68,22 @@ bundle exec rake references:openfact INSTALLPATH=docs VERSION=main
6168
bundle exec rake references:openbolt INSTALLPATH=docs VERSION=main
6269
```
6370

71+
By default the references are built into each product's current stable collection
72+
(e.g. `_openvox_latest`). Use `COLLECTION` to target a specific version's directory,
73+
for example when regenerating a frozen older major from its matching upstream tag:
74+
75+
```console
76+
bundle exec rake references:openvox INSTALLPATH=docs VERSION=8.27.0 COLLECTION=_openvox_8x
77+
```
78+
79+
To build every pinned product/version in one go — the same way CI does — use
80+
`references:all`, which reads the version/tag pins from `_data/products.yml`
81+
(it does not take `VERSION` or `COLLECTION`):
82+
83+
```console
84+
bundle exec rake references:all INSTALLPATH=docs
85+
```
86+
6487
## Writing guidelines
6588

6689
### Naming of OpenVox and Puppet

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ group(:generate_references) do
2121
gem 'pandoc-ruby'
2222
gem 'pragmatic_segmenter', '~> 0.3'
2323
gem 'punkt-segmenter', '~> 0.9'
24-
gem 'rdoc', '~> 7.1'
24+
gem 'rdoc', '~> 8.0'
2525
gem 'rgen', '~> 0.8'
2626
gem 'yard', '~> 0.9'
2727
end

0 commit comments

Comments
 (0)