Skip to content

Conversation

@jason-lynch
Copy link
Member

Summary

Replaces the mkdocs-macros-plugin with a find-and-replace in the release process. When you run make <major|minor|patch>-release, we will now replace all occurrences of the current version in the docs with the new version. We must validate that these replacements are complete and correct in the release review PR.

Changes

  • Remove mkdocs-macros-plugin
  • Replace template expressions with the current version number
  • Change release process replace all occurrences of the current version number with the next version number

Testing

You can see what the release process changes will do by running:

make --dry-run patch-release

If you were to run this release target without --dry-run, these are the replacements it would make (I've prefixed all fences with # to preserve markdown formatting):

diff --git a/docs/api/openapi.md b/docs/api/openapi.md
index d0134b9..d5ae8f8 100644
--- a/docs/api/openapi.md
+++ b/docs/api/openapi.md
@@ -7,7 +7,7 @@ The Control Plane server serves a JSON OpenAPI v3 specification from the
 
 You can also access offline copies of the OpenAPI specification in the pgEdge Control Plane repository. We generate a few versions of the specification to accommodate different tools and use cases:
 
-- [OpenAPI v3 YAML](https://github.com/pgEdge/control-plane/blob/v0.6.2/api/apiv1/gen/http/openapi3.yaml)
-- [OpenAPI v3 JSON](https://github.com/pgEdge/control-plane/blob/v0.6.2/api/apiv1/gen/http/openapi3.json)
-- [OpenAPI v2 YAML](https://github.com/pgEdge/control-plane/blob/v0.6.2/api/apiv1/gen/http/openapi.yaml)
-- [OpenAPI v2 JSON](https://github.com/pgEdge/control-plane/blob/v0.6.2/api/apiv1/gen/http/openapi.json)
\ No newline at end of file
+- [OpenAPI v3 YAML](https://github.com/pgEdge/control-plane/blob/v0.6.3/api/apiv1/gen/http/openapi3.yaml)
+- [OpenAPI v3 JSON](https://github.com/pgEdge/control-plane/blob/v0.6.3/api/apiv1/gen/http/openapi3.json)
+- [OpenAPI v2 YAML](https://github.com/pgEdge/control-plane/blob/v0.6.3/api/apiv1/gen/http/openapi.yaml)
+- [OpenAPI v2 JSON](https://github.com/pgEdge/control-plane/blob/v0.6.3/api/apiv1/gen/http/openapi.json)
\ No newline at end of file
diff --git a/docs/api/reference.md b/docs/api/reference.md
index b1c1bd7..7bfb9a3 100644
--- a/docs/api/reference.md
+++ b/docs/api/reference.md
@@ -34,4 +34,4 @@ hide:
 
 </style>
 
-<redoc src="https://raw.githubusercontent.com/pgEdge/control-plane/refs/tags/v0.6.2/api/apiv1/gen/http/openapi3.json"/>
\ No newline at end of file
+<redoc src="https://raw.githubusercontent.com/pgEdge/control-plane/refs/tags/v0.6.3/api/apiv1/gen/http/openapi3.json"/>
\ No newline at end of file
diff --git a/docs/development/e2e-tests.md b/docs/development/e2e-tests.md
index 36fac6a..28756d9 100644
--- a/docs/development/e2e-tests.md
+++ b/docs/development/e2e-tests.md
@@ -395,7 +395,7 @@ specifying `FIXTURE_CONTROL_PLANE_IMAGE` with the
 `{deploy,update,reset}-{lima,ec2}-fixture` targets. For example:
 
# ```sh
-make update-lima-fixture FIXTURE_CONTROL_PLANE_IMAGE='ghcr.io/pgedge/control-plane:v0.6.2-rc.1'
+make update-lima-fixture FIXTURE_CONTROL_PLANE_IMAGE='ghcr.io/pgedge/control-plane:v0.6.3-rc.1'
# ```
 
 ### Fixture variants
diff --git a/docs/installation/installation.md b/docs/installation/installation.md
index 74bfd8f..532b6f5 100644
--- a/docs/installation/installation.md
+++ b/docs/installation/installation.md
@@ -98,7 +98,7 @@ Given that output, the following stack definition file will deploy a single Cont
# ```yaml
 services:
   host-1:
-    image: ghcr.io/pgedge/control-plane:v0.6.2
+    image: ghcr.io/pgedge/control-plane:v0.6.3
     command: run
     environment:
       - PGEDGE_HOST_ID=host-1
@@ -113,7 +113,7 @@ services:
         constraints:
           - node.id==vzou89zyd4n3xz6p6jvoohqxx
   host-2:
-    image: ghcr.io/pgedge/control-plane:v0.6.2
+    image: ghcr.io/pgedge/control-plane:v0.6.3
     command: run
     environment:
       - PGEDGE_HOST_ID=host-2
@@ -128,7 +128,7 @@ services:
         constraints:
           - node.id==5sa7m11ub62t1n22feuhg0mbp
   host-3:
-    image: ghcr.io/pgedge/control-plane:v0.6.2
+    image: ghcr.io/pgedge/control-plane:v0.6.3
     command: run
     environment:
       - PGEDGE_HOST_ID=host-3
@@ -191,7 +191,7 @@ For example:
 
# ```yaml
   host-4:
-    image: ghcr.io/pgedge/control-plane:v0.6.2
+    image: ghcr.io/pgedge/control-plane:v0.6.3
     command: run
     environment:
       - PGEDGE_HOST_ID=host-4
@@ -227,7 +227,7 @@ Paste the output below and click "Generate Stack." This generator is fully local
 
 <textarea id="nodes" rows="8" style="width:100%; font-family:monospace;"></textarea>
 
-<button id="generateBtn" data-input="nodes" data-output="global-output" data-version="v0.6.2" class="md-button yaml-generate">Generate Stack Definition</button>
+<button id="generateBtn" data-input="nodes" data-output="global-output" data-version="v0.6.3" class="md-button yaml-generate">Generate Stack Definition</button>
 
 ``` yaml {#global-output}
 # Once submitted, the generated stack will appear here.
diff --git a/docs/installation/mtls.md b/docs/installation/mtls.md
index 49418a4..078af8f 100644
--- a/docs/installation/mtls.md
+++ b/docs/installation/mtls.md
@@ -35,7 +35,7 @@ For example, if you've placed the certificates in a `/opt/pgedge/control-plane`
# ```yaml
 services:
   host-1:
-    image: ghcr.io/pgedge/control-plane:v0.6.2
+    image: ghcr.io/pgedge/control-plane:v0.6.3
     command: run
     environment:
       - PGEDGE_HOST_ID=host-1
@@ -195,7 +195,7 @@ Now that our certificates are available on each machine, we can update our stack
# ```yaml
 services:
   host-1:
-    image: ghcr.io/pgedge/control-plane:v0.6.2
+    image: ghcr.io/pgedge/control-plane:v0.6.3
     command: run
     environment:
       - PGEDGE_HOST_ID=host-1
@@ -219,7 +219,7 @@ services:
         constraints:
           - node.id==81kw1zwmh9y8hk4rd7igylry0
   host-2:
-    image: ghcr.io/pgedge/control-plane:v0.6.2
+    image: ghcr.io/pgedge/control-plane:v0.6.3
     command: run
     environment:
       - PGEDGE_HOST_ID=host-2
@@ -240,7 +240,7 @@ services:
         constraints:
           - node.id==xz7069ytbdq7uzd2tvrj2wlf2
   host-3:
-    image: ghcr.io/pgedge/control-plane:v0.6.2
+    image: ghcr.io/pgedge/control-plane:v0.6.3
     command: run
     environment:
       - PGEDGE_HOST_ID=host-3
diff --git a/docs/installation/upgrading.md b/docs/installation/upgrading.md
index 3830751..dcf8276 100644
--- a/docs/installation/upgrading.md
+++ b/docs/installation/upgrading.md
@@ -6,11 +6,11 @@ Plane. The Control Plane version is specified in the image property of the [stac
# ```yaml
 services:
   host-1:
-    image: ghcr.io/pgedge/control-plane:v0.6.2
+    image: ghcr.io/pgedge/control-plane:v0.6.3
# ```
 
 You can *pin* to a specific version by including a version in the `image`
-fields in your service specification, such as `ghcr.io/pgedge/control-plane:v0.6.2`. 
+fields in your service specification, such as `ghcr.io/pgedge/control-plane:v0.6.3`. 
 
 If you do not include a version, Docker will pull the `ghcr.io/pgedge/control-plane:latest` tag by default. 
 

You can try this for yourself, but please answer "N" to the prompt to avoid creating a real release. If you do this, you can return to your previous state by doing:

# roll back all changes
git restore --staged .
git checkout -- .

# remove the changelog for the new version
rm changes/<new version>.md

# checkout your previous branch
git checkout -

# delete the release branch for the new version
git branch -D release/<new version>

PLAT-405

@jason-lynch jason-lynch requested a review from mmols February 5, 2026 18:16
@coderabbitai
Copy link

coderabbitai bot commented Feb 5, 2026

📝 Walkthrough

Walkthrough

Release and documentation updates: Makefile release workflow fixed and changed to perform platform-specific in-place edits (macOS vs others) and moved version-replacement earlier; multiple docs and examples had version placeholders replaced with v0.6.2; mkdocs macros configuration and plugin removed; Dockerfile no longer installs mkdocs-macros-plugin.

Changes

Cohort / File(s) Summary
Release & Build Configuration
Makefile, docs/Dockerfile, mkdocs.yml
Fixed missing endif in release workflow; moved and added platform-specific sed -i usage for in-place docs version replacement (macOS vs others); removed yq line that set .extra.control_plane_version; removed mkdocs-macros-plugin from docs/Dockerfile; removed macros plugin config and control_plane_version entry from mkdocs.yml.
API Documentation
docs/api/openapi.md, docs/api/reference.md
Replaced placeholder << control_plane_version >> with concrete tag v0.6.2 in OpenAPI links and Redoc iframe source.
Installation Documentation
docs/installation/installation.md, docs/installation/mtls.md, docs/installation/upgrading.md
Replaced image tag placeholders ghcr.io/pgedge/control-plane:<< control_plane_version >> and generator button data-version with v0.6.2 across examples and stacks.
Development Documentation
docs/development/development.md
Inserted advisory note (twice) into the release/prompt workflow describing that the process replaces previous version numbers with the new version in docs and advising reviewers to validate release PRs.
Miscellaneous docs
docs/...
Various small text/HTML updates associated with the version string replacements and removed macro usage across docs.

Poem

🐰 A tiny rabbit scampers through,
Replacing tokens — v0.6.2!
Sed hops left on Mac, right on Linux trails,
Macros waved goodbye, the docs tell tales. ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'docs: replace mkdocs-macros-plugin' is directly related to the main change: removing the mkdocs-macros-plugin and replacing it with a find-and-replace in the release process.
Description check ✅ Passed The PR description includes all required template sections: Summary (describing the change), Changes (bulleted list), Testing (with detailed commands and examples), Checklist (marked as incomplete), and Notes for Reviewers. All sections are substantively filled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/PLAT-405/replace-mkdocs-macros-plugin

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@Makefile`:
- Around line 284-288: The Makefile's sed lines use the non-recursive glob
docs/**/*.md which /bin/sh doesn't expand; replace that glob with a find-based
invocation so files in nested dirs are processed. Update the two sed branches
(the Darwin branch invoking sed -i '' and the else branch invoking sed -i) to
run find docs -type f -name '*.md' and pass each matched file to sed (e.g. via
find ... -exec or find ... -print0 | xargs -0) so the replacement of $(shell
$(changie) latest) with $(VERSION) reliably touches all docs; keep the existing
sed dialect difference between the Darwin (BSD sed -i '') and non-Darwin (GNU
sed -i) branches and reuse the same replacement string referencing VERSION and
changie.
🧹 Nitpick comments (1)
docs/Dockerfile (1)

3-3: Pin doc plugin versions for reproducible builds.

Unpinned installs can introduce breakage over time; consider a constraints/requirements file or explicit version pins.

Replaces the mkdocs-macros-plugin with a find-and-replace in the release
process. When you run `make <major|minor|patch>-release`, we will now
replace all occurrences of the current version in the docs with the new
version. We must validate that these replacements are complete and
correct in the release review PR.

PLAT-405
@jason-lynch jason-lynch force-pushed the feat/PLAT-405/replace-mkdocs-macros-plugin branch from e56242f to e5f687d Compare February 6, 2026 15:26
@jason-lynch jason-lynch merged commit 4d1ca21 into main Feb 6, 2026
3 checks passed
@jason-lynch jason-lynch deleted the feat/PLAT-405/replace-mkdocs-macros-plugin branch February 6, 2026 15:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants