Skip to content

Improve documentation release workflow and refactor documentation site#507

Merged
a5anka merged 18 commits intowso2:mainfrom
AnoshanJ:feat/doc-improvements-0.8
Mar 19, 2026
Merged

Improve documentation release workflow and refactor documentation site#507
a5anka merged 18 commits intowso2:mainfrom
AnoshanJ:feat/doc-improvements-0.8

Conversation

@AnoshanJ
Copy link
Contributor

@AnoshanJ AnoshanJ commented Mar 9, 2026

Purpose

Describe the problems, issues, or needs driving this feature/fix and include links to related issues in the following format: Resolves issue1, issue2, etc.

Add documentation product release workflow. Documentation versions are now managed independently via the Makefile or the new docs-release GitHub workflow, using v0.0.0-dev placeholders that get replaced with actual versions when creating versioned snapshots. This ensures the published site always shows real version references while the "Next" (unreleased) docs use dev placeholders.

Resolves #389

Summary

  • Migrate website/docs/ to use v0.0.0-dev placeholders for deterministic version updates during releases
  • Add automatic version placeholder replacement to documentation/Makefile (version and update-version targets)
  • Add new docs-release.yml workflow for manually triggering documentation releases via GitHub Actions
  • Remove redundant update-docs-versions.sh script and its step from the release workflow
  • Rename website/ folder to documentation/ and update all workflow references
  • Delete redundant root docs/ folder

Goals

Describe the solutions that this feature/fix will introduce to resolve the problems described above

Approach

Describe how you are implementing the solutions. Include an animated GIF or screenshot if the change affects the UI (email documentation@wso2.com to review all UI text). Include a link to a Markdown file or Google doc if the feature write-up is too long to paste here.

User stories

Summary of user stories addressed by this change>

Release note

Brief description of the new feature or bug fix as it will appear in the release notes

Documentation

Link(s) to product documentation that addresses the changes of this PR. If no doc impact, enter �N/A� plus brief explanation of why there�s no doc impact

Training

Link to the PR for changes to the training content in https://github.com/wso2/WSO2-Training, if applicable

Certification

Type �Sent� when you have provided new/updated certification questions, plus four answers for each question (correct answer highlighted in bold), based on this change. Certification questions/answers should be sent to certification@wso2.com and NOT pasted in this PR. If there is no impact on certification exams, type �N/A� and explain why.

Marketing

Link to drafts of marketing content that will describe and promote this feature, including product page changes, technical articles, blog posts, videos, etc., if applicable

Automation tests

  • Unit tests

    Code coverage information

  • Integration tests

    Details about the test cases and coverage

Security checks

Samples

Provide high-level details about the samples related to this feature

Related PRs

List any other related PRs

Migrations (if applicable)

Describe migration steps and platforms on which migration has been tested

Test environment

List all JDK versions, operating systems, databases, and browser/versions on which this feature/fix was tested

Learning

Describe the research phase and any blog posts, patterns, libraries, or add-ons you used to solve the problem.##

Summary by CodeRabbit

  • Documentation

    • Removed legacy installation and quick-start guides and updated docs to reference the dev release stream and updated versioned links.
    • Quick Start now includes default credentials (Username: admin, Password: admin) and removes an OpenTelemetry endpoint.
    • Added language tabs (Python/Ballerina) to the "Observe Your First Agent" tutorial.
  • Chores

    • Added a documentation release workflow with input validation, verification, and conditional commit/PR handling.
    • Adjusted CI to target the documentation directory and improved versioning in the documentation build tooling.
    • Removed an old docs-version update script and its release step.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 9, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Replaces website-focused CI/docs with documentation-focused equivalents, adds a documentation release workflow and Makefile version-replacement logic, removes a legacy docs-update script and several standalone docs, and updates many documentation version tokens and links to v0.0.0-dev.

Changes

Cohort / File(s) Summary
CI/CD Workflow Migration
​.github/workflows/docs-deploy.yml, ​.github/workflows/docs-pr-checks.yml, documentation/docusaurus.config.ts
Repointed workflow triggers, cache paths, working directories, build/upload targets, and Docusaurus edit URL from website to documentation.
New Documentation Release Workflow
​.github/workflows/docs-release.yml
Added workflow_dispatch release workflow that validates version/docker_tag, checks out code, sets up Node, runs Makefile versioning in documentation, verifies replacements, and conditionally commits/pushes changes and opens a PR.
Release Workflow Update
​.github/workflows/release.yml
Removed the step that invoked the deleted .github/scripts/update-docs-versions.sh.
Version Substitution Automation
documentation/Makefile
Added cross-platform sed handling and DOCKER_TAG normalization; performs two-phase in-place replacements for v0.0.0-dev / 0.0.0-dev across versioned_docs/version-$(VERSION) (excluding _constants.md) and updates docs/_constants.md.
Legacy Script Removal
​.github/scripts/update-docs-versions.sh
Deleted the Bash script that previously performed global in-place version replacements across ./docs.
Legacy Documentation Removal
docs/install/managed-cluster.md, docs/install/self-hosted-cluster.md, docs/quick-start.md
Removed large standalone installation and quick-start guides (complete file deletions).
Documentation Content Updates
documentation/docs/getting-started/..., documentation/docs/tutorials/observe-first-agent.mdx, documentation/versioned_docs/version-v0.8.x/...
Updated many resource URLs and Helm/manifest version tokens from 0.8.0/v0.8.0 to 0.0.0-dev/v0.0.0-dev; quick-start image tag changed and credentials added; tutorial step 4 converted to language tabs (Python/Ballerina) with language-specific commands.
Minor docs adjustments
documentation/docs/getting-started/managed-cluster.mdx, documentation/docs/getting-started/self-hosted-cluster.mdx
Replaced deployed file links and default version strings to point to the dev release stream (v0.0.0-dev).

Sequence Diagram(s)

sequenceDiagram
  participant Maintainer
  participant GH_Actions as "GitHub Actions Runner"
  participant Node as "Node / npm"
  participant Git as "Git (repo & remote)"
  participant Docs as "documentation/*"

  Maintainer->>GH_Actions: workflow_dispatch(version, docker_tag)
  GH_Actions->>Git: checkout repository
  GH_Actions->>Node: setup Node.js & install deps (working-directory=documentation)
  GH_Actions->>Docs: run Makefile versioning (two-phase sed replacements) and build
  GH_Actions->>Git: git add/commit (if changes) -> push / open PR
  GH_Actions-->>Maintainer: emit release summary (version, docker_tag, PR URL)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested reviewers

  • menakaj

Poem

🐇 I hopped through folders, swapped paths with care,
Poked the Makefile, made versions fair,
Took down old scripts and nudged workflows new,
Tidied docs’ links — a dev-rabbit’s few,
Tiny paws, big change — a cheerful hare.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description includes Purpose with issue reference (#389) and explains the core changes, but most template sections (Goals, Approach, User stories, Release notes, Documentation, etc.) remain as template placeholders with no actual content provided. Complete the remaining template sections: Goals, Approach, User stories, Release note, Documentation, Training, Certification, Marketing, Automation tests, Security checks, Samples, Related PRs, Migrations, Test environment, and Learning.
Out of Scope Changes check ❓ Inconclusive Most changes align with issue #389 (workflow updates, docs migration, version management). However, documentation content updates (v0.8.0→v0.0.0-dev replacements in .mdx files) and tutorial restructuring appear to be beyond the scope of decoupling documentation versioning. Clarify whether documentation content updates and tutorial UI refactoring are part of #389's scope or should be separated into distinct issues.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main changes: introducing a documentation release workflow and refactoring the documentation site structure (website to documentation rename).
Linked Issues check ✅ Passed The PR addresses issue #389's objective to update the release workflow to manage website/docs instead of the redundant root docs/ folder, removes the old update-docs-versions.sh, adds the new docs-release workflow, and renames website/ to documentation/.
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
📝 Coding Plan
  • Generate coding plan for human review comments

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
Contributor

@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: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/docs-release.yml:
- Around line 128-134: The COMMIT_MSG is built with literal "\n" sequences so
the git commit -m will include backslashes instead of real newlines; update the
commit step that sets COMMIT_MSG (the variable and final git commit -m
"$COMMIT_MSG") to construct or pass a multi-line string correctly (e.g., use
printf to build COMMIT_MSG, or use echo -e or $'...' to expand escapes) so that
the commit message contains actual newlines and lists as intended.

In `@documentation/Makefile`:
- Around line 90-99: The update-version Makefile target uses macOS-only sed
syntax ("sed -i ''") — change the three sed invocations that operate on
versioned_docs/version-$(VERSION) and docs/_constants.md (the lines manipulating
DOCKER_TAG_NO_V, DOCKER_TAG and VERSION) to the same portable sed approach you
applied to the version target (i.e., avoid the macOS-only -i '' flag: use the
cross-platform pattern used in the other target such as creating a temporary
file or using -i.bak and removing backups), ensuring the replacements for
v0.0.0-dev, the non-prefixed 0.0.0-dev (using DOCKER_TAG_NO_V) and
latestVersion/quickStartDockerTag in docs/_constants.md are preserved.
- Around line 56-66: The Makefile uses macOS-only inplace sed syntax "sed -i ''"
in the version update steps (see the sed invocations replacing v0.0.0-dev and
updating docs/_constants.md and the DOCKER_TAG_NO_V/ VERSION usage), which
breaks on Linux CI; change these commands to a cross-platform approach: either
use a portable temp-file edit pattern (write sed output to a temp file and move
it back) or detect the OS at the top of the Makefile (UNAME_S) and set a
SED_INPLACE variable to use "sed -i ''" on Darwin and "sed -i" on Linux, then
replace direct "sed -i ''" calls in the versioned_docs and docs/_constants.md
lines with the SED_INPLACE variable.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 08267d07-745c-4fa0-886c-386f64e00214

📥 Commits

Reviewing files that changed from the base of the PR and between 929031a and e19552e.

⛔ Files ignored due to path filters (29)
  • documentation/docs/img/evaluation/create-step1.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/create-step2-evaluators.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/evaluation-tab.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/evaluator-drawer.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/llm-provider-config.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/monitor-dashboard.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/run-history.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/run-logs.png is excluded by !**/*.png
  • documentation/package-lock.json is excluded by !**/package-lock.json
  • documentation/static/img/WSO2 Agent Manager Logo_Black.svg is excluded by !**/*.svg
  • documentation/static/img/WSO2 Agent Manager Logo_white.svg is excluded by !**/*.svg
  • documentation/static/img/WSO2-Logo.png is excluded by !**/*.png
  • documentation/static/img/favicon.ico is excluded by !**/*.ico
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/create-step1.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/create-step2-evaluators.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/evaluation-tab.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/evaluator-drawer.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/llm-provider-config.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/monitor-dashboard.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/run-history.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/run-logs.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/create-step1.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/create-step2-evaluators.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/evaluation-tab.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/evaluator-drawer.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/llm-provider-config.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/monitor-dashboard.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/run-history.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/run-logs.png is excluded by !**/*.png
📒 Files selected for processing (110)
  • .github/scripts/update-docs-versions.sh
  • .github/workflows/docs-deploy.yml
  • .github/workflows/docs-pr-checks.yml
  • .github/workflows/docs-release.yml
  • .github/workflows/release.yml
  • docs/install/managed-cluster.md
  • docs/install/self-hosted-cluster.md
  • docs/quick-start.md
  • documentation/.gitignore
  • documentation/Makefile
  • documentation/README.md
  • documentation/docs/_constants.md
  • documentation/docs/components/amp-instrumentation.mdx
  • documentation/docs/concepts/evaluation.mdx
  • documentation/docs/concepts/observability.mdx
  • documentation/docs/contributing/contributing.mdx
  • documentation/docs/getting-started/managed-cluster.mdx
  • documentation/docs/getting-started/quick-start.mdx
  • documentation/docs/getting-started/self-hosted-cluster.mdx
  • documentation/docs/overview/what-is-amp.mdx
  • documentation/docs/tutorials/evaluation-monitors.mdx
  • documentation/docs/tutorials/observe-first-agent.mdx
  • documentation/docusaurus.config.ts
  • documentation/package.json
  • documentation/sidebars.ts
  • documentation/src/components/DocIcon/index.tsx
  • documentation/src/components/DocIcon/styles.module.css
  • documentation/src/components/DocMarkdownActions/index.tsx
  • documentation/src/components/DocMarkdownActions/styles.module.css
  • documentation/src/components/HomepageFeatures/index.tsx
  • documentation/src/components/HomepageFeatures/styles.module.css
  • documentation/src/components/Icon/index.tsx
  • documentation/src/css/custom.css
  • documentation/src/pages/index.module.css
  • documentation/src/pages/index.tsx
  • documentation/src/theme/DocItem/Layout/index.tsx
  • documentation/src/theme/DocItem/Layout/styles.module.css
  • documentation/src/theme/Navbar/Content/index.tsx
  • documentation/src/theme/Navbar/Content/styles.module.css
  • documentation/src/theme/SearchBar/index.tsx
  • documentation/src/theme/SearchBar/styles.css
  • documentation/static/.nojekyll
  • documentation/tsconfig.json
  • documentation/versioned_docs/version-v0.3.0/_constants.md
  • documentation/versioned_docs/version-v0.3.0/components/amp-api.md
  • documentation/versioned_docs/version-v0.3.0/components/amp-console.md
  • documentation/versioned_docs/version-v0.3.0/components/amp-instrumentation.md
  • documentation/versioned_docs/version-v0.3.0/components/amp-trace-observer.md
  • documentation/versioned_docs/version-v0.3.0/contributing/contributing.md
  • documentation/versioned_docs/version-v0.3.0/getting-started/quick-start.md
  • documentation/versioned_docs/version-v0.3.0/getting-started/single-cluster-installation.md
  • documentation/versioned_docs/version-v0.3.0/overview/what-is-amp.md
  • documentation/versioned_docs/version-v0.4.0/_constants.md
  • documentation/versioned_docs/version-v0.4.0/components/amp-api.md
  • documentation/versioned_docs/version-v0.4.0/components/amp-console.md
  • documentation/versioned_docs/version-v0.4.0/components/amp-instrumentation.md
  • documentation/versioned_docs/version-v0.4.0/components/amp-trace-observer.md
  • documentation/versioned_docs/version-v0.4.0/contributing/contributing.md
  • documentation/versioned_docs/version-v0.4.0/getting-started/quick-start.md
  • documentation/versioned_docs/version-v0.4.0/getting-started/single-cluster-installation.md
  • documentation/versioned_docs/version-v0.4.0/overview/what-is-amp.md
  • documentation/versioned_docs/version-v0.5.0/_constants.md
  • documentation/versioned_docs/version-v0.5.0/components/amp-api.md
  • documentation/versioned_docs/version-v0.5.0/components/amp-console.md
  • documentation/versioned_docs/version-v0.5.0/components/amp-instrumentation.md
  • documentation/versioned_docs/version-v0.5.0/components/amp-trace-observer.md
  • documentation/versioned_docs/version-v0.5.0/contributing/contributing.md
  • documentation/versioned_docs/version-v0.5.0/getting-started/managed-cluster.md
  • documentation/versioned_docs/version-v0.5.0/getting-started/quick-start.md
  • documentation/versioned_docs/version-v0.5.0/getting-started/self-hosted-cluster.md
  • documentation/versioned_docs/version-v0.5.0/overview/what-is-amp.md
  • documentation/versioned_docs/version-v0.6.x/_constants.md
  • documentation/versioned_docs/version-v0.6.x/components/amp-api.mdx
  • documentation/versioned_docs/version-v0.6.x/components/amp-console.mdx
  • documentation/versioned_docs/version-v0.6.x/components/amp-instrumentation.mdx
  • documentation/versioned_docs/version-v0.6.x/components/amp-trace-observer.mdx
  • documentation/versioned_docs/version-v0.6.x/contributing/contributing.mdx
  • documentation/versioned_docs/version-v0.6.x/getting-started/managed-cluster.mdx
  • documentation/versioned_docs/version-v0.6.x/getting-started/quick-start.mdx
  • documentation/versioned_docs/version-v0.6.x/getting-started/self-hosted-cluster.mdx
  • documentation/versioned_docs/version-v0.6.x/overview/what-is-amp.mdx
  • documentation/versioned_docs/version-v0.7.x/_constants.md
  • documentation/versioned_docs/version-v0.7.x/components/amp-instrumentation.mdx
  • documentation/versioned_docs/version-v0.7.x/concepts/evaluation.mdx
  • documentation/versioned_docs/version-v0.7.x/concepts/observability.mdx
  • documentation/versioned_docs/version-v0.7.x/contributing/contributing.mdx
  • documentation/versioned_docs/version-v0.7.x/getting-started/managed-cluster.mdx
  • documentation/versioned_docs/version-v0.7.x/getting-started/quick-start.mdx
  • documentation/versioned_docs/version-v0.7.x/getting-started/self-hosted-cluster.mdx
  • documentation/versioned_docs/version-v0.7.x/overview/what-is-amp.mdx
  • documentation/versioned_docs/version-v0.7.x/tutorials/evaluation-monitors.mdx
  • documentation/versioned_docs/version-v0.7.x/tutorials/observe-first-agent.mdx
  • documentation/versioned_docs/version-v0.8.x/_constants.md
  • documentation/versioned_docs/version-v0.8.x/components/amp-instrumentation.mdx
  • documentation/versioned_docs/version-v0.8.x/concepts/evaluation.mdx
  • documentation/versioned_docs/version-v0.8.x/concepts/observability.mdx
  • documentation/versioned_docs/version-v0.8.x/contributing/contributing.mdx
  • documentation/versioned_docs/version-v0.8.x/getting-started/managed-cluster.mdx
  • documentation/versioned_docs/version-v0.8.x/getting-started/quick-start.mdx
  • documentation/versioned_docs/version-v0.8.x/getting-started/self-hosted-cluster.mdx
  • documentation/versioned_docs/version-v0.8.x/overview/what-is-amp.mdx
  • documentation/versioned_docs/version-v0.8.x/tutorials/evaluation-monitors.mdx
  • documentation/versioned_docs/version-v0.8.x/tutorials/observe-first-agent.mdx
  • documentation/versioned_sidebars/version-v0.3.0-sidebars.json
  • documentation/versioned_sidebars/version-v0.4.0-sidebars.json
  • documentation/versioned_sidebars/version-v0.5.0-sidebars.json
  • documentation/versioned_sidebars/version-v0.6.x-sidebars.json
  • documentation/versioned_sidebars/version-v0.7.x-sidebars.json
  • documentation/versioned_sidebars/version-v0.8.x-sidebars.json
  • documentation/versions.json
💤 Files with no reviewable changes (5)
  • .github/workflows/release.yml
  • docs/quick-start.md
  • docs/install/managed-cluster.md
  • docs/install/self-hosted-cluster.md
  • .github/scripts/update-docs-versions.sh

@AnoshanJ AnoshanJ changed the title Improve documentation release workflow and restructure docs Improve documentation release workflow and refactor documentation site Mar 9, 2026
@AnoshanJ AnoshanJ requested a review from a5anka March 9, 2026 05:51
Copy link
Contributor

@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: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
documentation/Makefile (1)

59-74: ⚠️ Potential issue | 🟠 Major

Fail the version target as soon as snapshot creation fails.

This whole if ... else ... fi branch runs in one shell. If npm run docusaurus docs:version $(VERSION) returns non-zero, the later echo commands can still make the recipe look successful, and the release workflow will continue from a broken snapshot. Add set -e inside the else branch or chain the post-processing with &&.

🔧 Minimal fix
 	else \
+		set -e; \
 		npm run docusaurus docs:version $(VERSION); \
 		echo "Replacing version placeholders in versioned docs..."; \
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@documentation/Makefile` around lines 59 - 74, The recipe for creating a new
docs version can continue after a failed snapshot because the commands in the
else branch run in a single shell without exit-on-error; modify the else branch
of the VERSION creation block so that failures stop the recipe — either add `set
-e` at the top of the else block (so `npm run docusaurus docs:version
$(VERSION)` and subsequent commands fail-fast) or chain the post-processing
commands with `&&` after `npm run docusaurus docs:version $(VERSION)`; ensure
the commands that use DOCKER_TAG, DOCKER_TAG_NO_V, SED_INPLACE and updates to
docs/_constants.md only run when the docs:version command succeeded.
🧹 Nitpick comments (1)
documentation/Makefile (1)

64-71: Extract the rewrite/update block into one helper.

Both targets now duplicate the same placeholder replacements and _constants.md updates. A shared macro or private target would keep the rules in one place and reduce drift the next time these patterns change.

Also applies to: 98-105

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@documentation/Makefile` around lines 64 - 71, Extract the repeated sed
replacement logic into a single Makefile helper (either a private target like
"._update-versioned-docs" or a macro variable) and replace the duplicated blocks
that compute DOCKER_TAG_NO_V and run the four $(SED_INPLACE) commands with calls
to that helper; ensure the helper accepts or uses VERSION and DOCKER_TAG (and
SED_INPLACE) and performs the two find+sed replacements plus the two
$(SED_INPLACE) edits to docs/_constants.md so both locations (the current block
and the duplicated block around lines 98-105) invoke the same helper instead of
duplicating the commands.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/docs-release.yml:
- Around line 25-45: The current validation only checks formats; update the
"Validate inputs" step to also compare VERSION and DOCKER_TAG semantics: parse
major.minor (and patch if present) from VERSION and DOCKER_TAG (use the existing
regex matches on VERSION and DOCKER_TAG), then if VERSION contains an "x"
require DOCKER_TAG's major and minor to match VERSION's major and minor, and if
VERSION is fully pinned (no "x") require exact equality between VERSION and
DOCKER_TAG; on mismatch print a clear error and exit 1. Ensure you use the
existing VERSION and DOCKER_TAG variables and keep the existing format checks
before performing this semantic comparison.
- Around line 81-102: Add reliable failure handling and accurate placeholder
checks to the verification step: enable set -o pipefail at the top of the step,
replace the fragile "grep ... | wc -l || echo '0'" constructs with a safe count
(e.g., use grep -r -E "v?0\.0\.0-dev" versioned_docs/version-$VERSION/ | wc -l
or grep -r -c -E "v?0\.0\.0-dev" and ensure the count is numeric) to populate
PLACEHOLDER_COUNT, check for both forms (v0.0.0-dev and 0.0.0-dev) using the -E
pattern or two greps, and if PLACEHOLDER_COUNT -gt 0 then print matches and exit
1 so the job fails; also verify docs/_constants.md contains the expected values
(for example check for $DOCKER_TAG or specific constants with grep -q and exit 1
if missing) instead of just catting the file.

---

Outside diff comments:
In `@documentation/Makefile`:
- Around line 59-74: The recipe for creating a new docs version can continue
after a failed snapshot because the commands in the else branch run in a single
shell without exit-on-error; modify the else branch of the VERSION creation
block so that failures stop the recipe — either add `set -e` at the top of the
else block (so `npm run docusaurus docs:version $(VERSION)` and subsequent
commands fail-fast) or chain the post-processing commands with `&&` after `npm
run docusaurus docs:version $(VERSION)`; ensure the commands that use
DOCKER_TAG, DOCKER_TAG_NO_V, SED_INPLACE and updates to docs/_constants.md only
run when the docs:version command succeeded.

---

Nitpick comments:
In `@documentation/Makefile`:
- Around line 64-71: Extract the repeated sed replacement logic into a single
Makefile helper (either a private target like "._update-versioned-docs" or a
macro variable) and replace the duplicated blocks that compute DOCKER_TAG_NO_V
and run the four $(SED_INPLACE) commands with calls to that helper; ensure the
helper accepts or uses VERSION and DOCKER_TAG (and SED_INPLACE) and performs the
two find+sed replacements plus the two $(SED_INPLACE) edits to
docs/_constants.md so both locations (the current block and the duplicated block
around lines 98-105) invoke the same helper instead of duplicating the commands.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 31511c3f-8821-4902-837c-8a14e92526d3

📥 Commits

Reviewing files that changed from the base of the PR and between e19552e and 9830ab4.

📒 Files selected for processing (2)
  • .github/workflows/docs-release.yml
  • documentation/Makefile

@AnoshanJ AnoshanJ force-pushed the feat/doc-improvements-0.8 branch from 9830ab4 to 8cc1805 Compare March 13, 2026 05:35
Copy link
Contributor

@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

♻️ Duplicate comments (1)
.github/workflows/docs-release.yml (1)

62-65: ⚠️ Potential issue | 🟠 Major

Pinned-version validation still allows prerelease docker tags.

For pinned VERSION values, the current check strips DOCKER_TAG prerelease suffix before comparison, so v0.8.0 and v0.8.0-rc.1 are treated as equal. That defeats strict pinning.

🔧 Suggested fix
-          else
-            # VERSION is fully pinned (e.g., v0.8.0) — require exact match
-            if [[ "v${V_MAJOR}.${V_MINOR}.${V_PATCH}" != "v${DT_MAJOR}.${DT_MINOR}.${DT_PATCH}" ]]; then
-              echo "Error: Fully pinned VERSION $VERSION must match DOCKER_TAG $DOCKER_TAG (ignoring pre-release suffix)"
-              exit 1
-            fi
-          fi
+          else
+            # VERSION is fully pinned (e.g., v0.8.0) — require exact match
+            if [[ "$VERSION" != "$DOCKER_TAG" ]]; then
+              echo "Error: Fully pinned VERSION $VERSION must exactly match DOCKER_TAG $DOCKER_TAG"
+              exit 1
+            fi
+          fi
#!/bin/bash
set -euo pipefail

VERSION=v0.8.0
DOCKER_TAG=v0.8.0-rc.1

V_MAJOR="${VERSION#v}"; V_MAJOR="${V_MAJOR%%.*}"
V_MINOR="${VERSION#v*.}"; V_MINOR="${V_MINOR%%.*}"
V_PATCH="${VERSION##*.}"

DT_NO_PREFIX="${DOCKER_TAG#v}"
DT_MAJOR="${DT_NO_PREFIX%%.*}"
DT_REST="${DT_NO_PREFIX#*.}"
DT_MINOR="${DT_REST%%.*}"
DT_PATCH="${DT_REST#*.}"
DT_PATCH="${DT_PATCH%%-*}"

if [[ "v${V_MAJOR}.${V_MINOR}.${V_PATCH}" == "v${DT_MAJOR}.${DT_MINOR}.${DT_PATCH}" ]]; then
  echo "Current logic accepts pinned VERSION with prerelease DOCKER_TAG"
else
  echo "Current logic rejects it"
fi
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/docs-release.yml around lines 62 - 65, The current
pinned-VERSION check strips DOCKER_TAG prerelease suffix (the logic that
computes DT_PATCH/DT_NO_PREFIX) so vX.Y.Z matches vX.Y.Z-rc.1; update the
comparison to require exact equality with the full DOCKER_TAG (or ensure
DT_PATCH keeps the prerelease segment) so that
"v${V_MAJOR}.${V_MINOR}.${V_PATCH}" must equal "${DOCKER_TAG}" exactly when
VERSION is fully pinned; modify the DT parsing or the if-condition that compares
VERSION and DOCKER_TAG to reject any DOCKER_TAG containing a prerelease suffix
(e.g., detect a '-' in DOCKER_TAG and fail) and keep references to V_MAJOR,
V_MINOR, V_PATCH, DT_MAJOR, DT_MINOR, DT_PATCH, DOCKER_TAG, and VERSION when
applying the change.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/docs-release.yml:
- Around line 77-83: The workflow can be triggered from non-main branches but
the checkout step (uses: actions/checkout@v4) does not pin a branch while the
push action later always pushes to main, allowing feature-branch content to be
pushed into main; fix by pinning the checkout to the main branch (add ref:
refs/heads/main or ref: ${{ github.event.repository.default_branch }}) in the
checkout step or restrict workflow_dispatch to only run on main
(workflow_dispatch: branches: [main]), ensuring the code checked out matches the
branch you intend to push to.

---

Duplicate comments:
In @.github/workflows/docs-release.yml:
- Around line 62-65: The current pinned-VERSION check strips DOCKER_TAG
prerelease suffix (the logic that computes DT_PATCH/DT_NO_PREFIX) so vX.Y.Z
matches vX.Y.Z-rc.1; update the comparison to require exact equality with the
full DOCKER_TAG (or ensure DT_PATCH keeps the prerelease segment) so that
"v${V_MAJOR}.${V_MINOR}.${V_PATCH}" must equal "${DOCKER_TAG}" exactly when
VERSION is fully pinned; modify the DT parsing or the if-condition that compares
VERSION and DOCKER_TAG to reject any DOCKER_TAG containing a prerelease suffix
(e.g., detect a '-' in DOCKER_TAG and fail) and keep references to V_MAJOR,
V_MINOR, V_PATCH, DT_MAJOR, DT_MINOR, DT_PATCH, DOCKER_TAG, and VERSION when
applying the change.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 590eca38-b2ce-4cea-81d9-af2464fb4c8e

📥 Commits

Reviewing files that changed from the base of the PR and between 9830ab4 and 8cc1805.

⛔ Files ignored due to path filters (11)
  • documentation/docs/img/evaluation/create-step1.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/create-step2-evaluators.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/evaluation-tab.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/evaluator-drawer.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/llm-provider-config.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/monitor-dashboard.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/run-history.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/run-logs.png is excluded by !**/*.png
  • documentation/package-lock.json is excluded by !**/package-lock.json
  • documentation/static/img/WSO2 Agent Manager Logo_Black.svg is excluded by !**/*.svg
  • documentation/static/img/WSO2 Agent Manager Logo_white.svg is excluded by !**/*.svg
📒 Files selected for processing (42)
  • .github/scripts/update-docs-versions.sh
  • .github/workflows/docs-deploy.yml
  • .github/workflows/docs-pr-checks.yml
  • .github/workflows/docs-release.yml
  • .github/workflows/release.yml
  • docs/install/managed-cluster.md
  • docs/install/self-hosted-cluster.md
  • docs/quick-start.md
  • documentation/.gitignore
  • documentation/Makefile
  • documentation/README.md
  • documentation/docs/_constants.md
  • documentation/docs/components/amp-instrumentation.mdx
  • documentation/docs/concepts/evaluation.mdx
  • documentation/docs/concepts/observability.mdx
  • documentation/docs/contributing/contributing.mdx
  • documentation/docs/getting-started/managed-cluster.mdx
  • documentation/docs/getting-started/quick-start.mdx
  • documentation/docs/getting-started/self-hosted-cluster.mdx
  • documentation/docs/overview/what-is-amp.mdx
  • documentation/docs/tutorials/evaluation-monitors.mdx
  • documentation/docs/tutorials/observe-first-agent.mdx
  • documentation/docusaurus.config.ts
  • documentation/package.json
  • documentation/sidebars.ts
  • documentation/src/components/DocIcon/index.tsx
  • documentation/src/components/DocIcon/styles.module.css
  • documentation/src/components/DocMarkdownActions/index.tsx
  • documentation/src/components/DocMarkdownActions/styles.module.css
  • documentation/src/components/HomepageFeatures/index.tsx
  • documentation/src/components/HomepageFeatures/styles.module.css
  • documentation/src/components/Icon/index.tsx
  • documentation/src/css/custom.css
  • documentation/src/pages/index.module.css
  • documentation/src/pages/index.tsx
  • documentation/src/theme/DocItem/Layout/index.tsx
  • documentation/src/theme/DocItem/Layout/styles.module.css
  • documentation/src/theme/Navbar/Content/index.tsx
  • documentation/src/theme/Navbar/Content/styles.module.css
  • documentation/src/theme/SearchBar/index.tsx
  • documentation/src/theme/SearchBar/styles.css
  • documentation/static/.nojekyll
💤 Files with no reviewable changes (5)
  • docs/quick-start.md
  • .github/workflows/release.yml
  • docs/install/self-hosted-cluster.md
  • docs/install/managed-cluster.md
  • .github/scripts/update-docs-versions.sh
🚧 Files skipped from review as they are similar to previous changes (4)
  • documentation/docs/getting-started/self-hosted-cluster.mdx
  • documentation/docs/getting-started/quick-start.mdx
  • .github/workflows/docs-pr-checks.yml
  • documentation/docusaurus.config.ts

Comment on lines +77 to +83
- name: Checkout code
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
persist-credentials: true
fetch-depth: 0

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail
rg -n -C2 'actions/checkout@v4|ref:|git push origin main' .github/workflows/docs-release.yml

Repository: wso2/agent-manager

Length of output: 44


🏁 Script executed:

fd -type f 'docs-release.yml' .github/

Repository: wso2/agent-manager

Length of output: 232


🏁 Script executed:

wc -l .github/workflows/docs-release.yml

Repository: wso2/agent-manager

Length of output: 100


🏁 Script executed:

cat -n .github/workflows/docs-release.yml | head -100

Repository: wso2/agent-manager

Length of output: 4095


🏁 Script executed:

cat -n .github/workflows/docs-release.yml | sed -n '100,202p'

Repository: wso2/agent-manager

Length of output: 5404


Workflow can push non-main dispatch content into main.

workflow_dispatch can run from any branch, but checkout at line 77-82 is not pinned while push at line 176 is hardcoded to main. This allows feature branch code to be committed to main if the workflow is triggered from a non-main branch.

🔧 Suggested hardening
       - name: Checkout code
         uses: actions/checkout@v4
         with:
+          ref: main
           token: ${{ secrets.GITHUB_TOKEN }}
           persist-credentials: true
           fetch-depth: 0
...
-            git push origin main
+            git push origin HEAD:main
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/docs-release.yml around lines 77 - 83, The workflow can be
triggered from non-main branches but the checkout step (uses:
actions/checkout@v4) does not pin a branch while the push action later always
pushes to main, allowing feature-branch content to be pushed into main; fix by
pinning the checkout to the main branch (add ref: refs/heads/main or ref: ${{
github.event.repository.default_branch }}) in the checkout step or restrict
workflow_dispatch to only run on main (workflow_dispatch: branches: [main]),
ensuring the code checked out matches the branch you intend to push to.

Copy link
Contributor

@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.

🧹 Nitpick comments (1)
documentation/docs/tutorials/observe-first-agent.mdx (1)

64-65: Tighten env-var instruction wording for clarity.

“Set the above env variables.” is a bit vague; use explicit “export … in the same shell session before running”.

✏️ Suggested wording update
-Set the above env variables.
+Export these environment variables in the same shell session before running your agent.
-Set the above env variables.
+Export these environment variables in the same shell session before running your Ballerina program.

Also applies to: 131-132

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@documentation/docs/tutorials/observe-first-agent.mdx` around lines 64 - 65,
Replace the vague sentence "Set the above env variables." in
documentation/docs/tutorials/observe-first-agent.mdx (occurrences around lines
64–65 and 131–132) with a clearer instruction that tells users to export the
variables in the same shell session before running the commands, e.g., instruct
to run "export VAR=value" (or set in Windows equivalent) in the same terminal
where they will execute the tutorial commands so the environment is available to
the process.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@documentation/docs/tutorials/observe-first-agent.mdx`:
- Around line 64-65: Replace the vague sentence "Set the above env variables."
in documentation/docs/tutorials/observe-first-agent.mdx (occurrences around
lines 64–65 and 131–132) with a clearer instruction that tells users to export
the variables in the same shell session before running the commands, e.g.,
instruct to run "export VAR=value" (or set in Windows equivalent) in the same
terminal where they will execute the tutorial commands so the environment is
available to the process.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 0454cb90-8255-40c5-a007-f9c106e6c35f

📥 Commits

Reviewing files that changed from the base of the PR and between 8cc1805 and be92c70.

📒 Files selected for processing (1)
  • documentation/docs/tutorials/observe-first-agent.mdx

@AnoshanJ AnoshanJ requested review from hanzjk and menakaj and removed request for hanzjk March 13, 2026 09:23
@a5anka
Copy link
Member

a5anka commented Mar 16, 2026

Review Note: Workflow pushes directly to main without branch protection consideration

File: .github/workflows/docs-release.yml:176

git push origin main

If main has branch protection rules requiring PRs or status checks, this push will fail. The GITHUB_TOKEN used by default doesn't have permission to bypass branch protection.

Options to consider:

  1. Push to a branch and auto-create a PR — safest, preserves review trail
  2. Use a PAT or GitHub App token with bypass permissions if direct push is intentional
  3. Document the requirement — note that branch protection must allow the GitHub Actions bot to push directly, or that a repo admin needs to configure a bypass rule

This is worth addressing before the workflow is used in production to avoid confusing failures.

@AnoshanJ AnoshanJ force-pushed the feat/doc-improvements-0.8 branch from be92c70 to 681d4dc Compare March 18, 2026 07:52
Copy link
Contributor

@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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
documentation/docs/tutorials/observe-first-agent.mdx (1)

41-88: ⚠️ Potential issue | 🟡 Minor

Replace Markdown headings with HTML headings inside tab-only sections to exclude them from the page TOC.

Docusaurus includes headings inside <TabItem> in the generated table of contents at build time, mixing Python and Ballerina steps together. Users clicking these TOC links see inactive tabs without visible content. Use <h3>4.1 Install AMP Instrumentation Package</h3> instead of ### 4.1 Install AMP Instrumentation Package for all substeps in both language panes to keep them out of the TOC.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@documentation/docs/tutorials/observe-first-agent.mdx` around lines 41 - 88,
The Markdown subheadings (e.g., "### 4.1 Install AMP Instrumentation Package",
"### 4.2 Generate an API Key", "### 4.3 Set Environment Variables", "### 4.4 Run
Your Agent with Instrumentation") inside the tab-only sections should be
replaced with explicit HTML headings (e.g., <h3>4.1 Install AMP Instrumentation
Package</h3>, etc.) so they are not picked up by Docusaurus TOC; update each
"### ..." line in the tab panes to the corresponding <h3>...</h3> form
(including all substep headings in both language panes) while leaving the rest
of the content and code blocks unchanged.
🧹 Nitpick comments (2)
.github/workflows/docs-release.yml (1)

78-83: Consider pinning checkout to main branch.

The checkout step doesn't specify a ref, so if workflow_dispatch is triggered from a non-main branch, the documentation snapshot will be based on that branch's state rather than main. While the PR-based approach allows reviewers to catch this, explicitly pinning to main would prevent accidental releases from feature branches.

🔧 Proposed fix
       - name: Checkout code
         uses: actions/checkout@v4
         with:
+          ref: main
           token: ${{ secrets.GITHUB_TOKEN }}
           persist-credentials: true
           fetch-depth: 0
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/docs-release.yml around lines 78 - 83, The checkout step
using actions/checkout@v4 currently omits a ref so workflows triggered from
non-main branches can checkout that branch; update the Checkout code block for
actions/checkout@v4 to explicitly set ref: main so the workflow always checks
out the main branch (modify the step that contains uses: actions/checkout@v4 and
with: token/persist-credentials/fetch-depth to include ref: main).
documentation/docs/tutorials/observe-first-agent.mdx (1)

38-38: Consider a shared groupId for these language tabs.

If other docs also use the same Python/Ballerina split, adding a namespaced groupId here lets Docusaurus sync that choice across tab groups and persist it in localStorage. groupIds are globally namespaced, so something specific like agent-language is safer than a generic name. (docusaurus.io)

♻️ Suggested tweak
-<Tabs>
+<Tabs groupId="agent-language">
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@documentation/docs/tutorials/observe-first-agent.mdx` at line 38, The Tabs
component in observe-first-agent.mdx should include a namespaced groupId so the
language selection persists across tab groups; update the <Tabs> element to add
a globally unique groupId (e.g., "agent-language") and ensure other docs using
the same Python/Ballerina split use the same groupId so Docusaurus can sync and
persist the selection in localStorage.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@documentation/docs/tutorials/observe-first-agent.mdx`:
- Around line 41-88: The Markdown subheadings (e.g., "### 4.1 Install AMP
Instrumentation Package", "### 4.2 Generate an API Key", "### 4.3 Set
Environment Variables", "### 4.4 Run Your Agent with Instrumentation") inside
the tab-only sections should be replaced with explicit HTML headings (e.g.,
<h3>4.1 Install AMP Instrumentation Package</h3>, etc.) so they are not picked
up by Docusaurus TOC; update each "### ..." line in the tab panes to the
corresponding <h3>...</h3> form (including all substep headings in both language
panes) while leaving the rest of the content and code blocks unchanged.

---

Nitpick comments:
In @.github/workflows/docs-release.yml:
- Around line 78-83: The checkout step using actions/checkout@v4 currently omits
a ref so workflows triggered from non-main branches can checkout that branch;
update the Checkout code block for actions/checkout@v4 to explicitly set ref:
main so the workflow always checks out the main branch (modify the step that
contains uses: actions/checkout@v4 and with:
token/persist-credentials/fetch-depth to include ref: main).

In `@documentation/docs/tutorials/observe-first-agent.mdx`:
- Line 38: The Tabs component in observe-first-agent.mdx should include a
namespaced groupId so the language selection persists across tab groups; update
the <Tabs> element to add a globally unique groupId (e.g., "agent-language") and
ensure other docs using the same Python/Ballerina split use the same groupId so
Docusaurus can sync and persist the selection in localStorage.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 852059cf-ca00-4000-be4e-8f059b7bd3e3

📥 Commits

Reviewing files that changed from the base of the PR and between be92c70 and 681d4dc.

⛔ Files ignored due to path filters (29)
  • documentation/docs/img/evaluation/create-step1.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/create-step2-evaluators.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/evaluation-tab.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/evaluator-drawer.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/llm-provider-config.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/monitor-dashboard.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/run-history.png is excluded by !**/*.png
  • documentation/docs/img/evaluation/run-logs.png is excluded by !**/*.png
  • documentation/package-lock.json is excluded by !**/package-lock.json
  • documentation/static/img/WSO2 Agent Manager Logo_Black.svg is excluded by !**/*.svg
  • documentation/static/img/WSO2 Agent Manager Logo_white.svg is excluded by !**/*.svg
  • documentation/static/img/WSO2-Logo.png is excluded by !**/*.png
  • documentation/static/img/favicon.ico is excluded by !**/*.ico
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/create-step1.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/create-step2-evaluators.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/evaluation-tab.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/evaluator-drawer.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/llm-provider-config.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/monitor-dashboard.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/run-history.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.7.x/img/evaluation/run-logs.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/create-step1.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/create-step2-evaluators.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/evaluation-tab.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/evaluator-drawer.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/llm-provider-config.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/monitor-dashboard.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/run-history.png is excluded by !**/*.png
  • documentation/versioned_docs/version-v0.8.x/img/evaluation/run-logs.png is excluded by !**/*.png
📒 Files selected for processing (108)
  • .github/scripts/update-docs-versions.sh
  • .github/workflows/docs-deploy.yml
  • .github/workflows/docs-pr-checks.yml
  • .github/workflows/docs-release.yml
  • .github/workflows/release.yml
  • docs/install/managed-cluster.md
  • docs/install/self-hosted-cluster.md
  • docs/quick-start.md
  • documentation/.gitignore
  • documentation/Makefile
  • documentation/README.md
  • documentation/docs/_constants.md
  • documentation/docs/components/amp-instrumentation.mdx
  • documentation/docs/concepts/evaluation.mdx
  • documentation/docs/concepts/observability.mdx
  • documentation/docs/contributing/contributing.mdx
  • documentation/docs/getting-started/managed-cluster.mdx
  • documentation/docs/getting-started/quick-start.mdx
  • documentation/docs/getting-started/self-hosted-cluster.mdx
  • documentation/docs/overview/what-is-amp.mdx
  • documentation/docs/tutorials/evaluation-monitors.mdx
  • documentation/docs/tutorials/observe-first-agent.mdx
  • documentation/docusaurus.config.ts
  • documentation/package.json
  • documentation/sidebars.ts
  • documentation/src/components/DocIcon/index.tsx
  • documentation/src/components/DocIcon/styles.module.css
  • documentation/src/components/DocMarkdownActions/index.tsx
  • documentation/src/components/DocMarkdownActions/styles.module.css
  • documentation/src/components/HomepageFeatures/index.tsx
  • documentation/src/components/HomepageFeatures/styles.module.css
  • documentation/src/components/Icon/index.tsx
  • documentation/src/css/custom.css
  • documentation/src/pages/index.module.css
  • documentation/src/pages/index.tsx
  • documentation/src/theme/DocItem/Layout/index.tsx
  • documentation/src/theme/DocItem/Layout/styles.module.css
  • documentation/src/theme/Navbar/Content/index.tsx
  • documentation/src/theme/Navbar/Content/styles.module.css
  • documentation/src/theme/SearchBar/index.tsx
  • documentation/src/theme/SearchBar/styles.css
  • documentation/static/.nojekyll
  • documentation/tsconfig.json
  • documentation/versioned_docs/version-v0.3.0/_constants.md
  • documentation/versioned_docs/version-v0.3.0/components/amp-api.md
  • documentation/versioned_docs/version-v0.3.0/components/amp-console.md
  • documentation/versioned_docs/version-v0.3.0/components/amp-instrumentation.md
  • documentation/versioned_docs/version-v0.3.0/components/amp-trace-observer.md
  • documentation/versioned_docs/version-v0.3.0/contributing/contributing.md
  • documentation/versioned_docs/version-v0.3.0/getting-started/quick-start.md
  • documentation/versioned_docs/version-v0.3.0/getting-started/single-cluster-installation.md
  • documentation/versioned_docs/version-v0.3.0/overview/what-is-amp.md
  • documentation/versioned_docs/version-v0.4.0/_constants.md
  • documentation/versioned_docs/version-v0.4.0/components/amp-api.md
  • documentation/versioned_docs/version-v0.4.0/components/amp-console.md
  • documentation/versioned_docs/version-v0.4.0/components/amp-instrumentation.md
  • documentation/versioned_docs/version-v0.4.0/components/amp-trace-observer.md
  • documentation/versioned_docs/version-v0.4.0/contributing/contributing.md
  • documentation/versioned_docs/version-v0.4.0/getting-started/quick-start.md
  • documentation/versioned_docs/version-v0.4.0/getting-started/single-cluster-installation.md
  • documentation/versioned_docs/version-v0.4.0/overview/what-is-amp.md
  • documentation/versioned_docs/version-v0.5.0/_constants.md
  • documentation/versioned_docs/version-v0.5.0/components/amp-api.md
  • documentation/versioned_docs/version-v0.5.0/components/amp-console.md
  • documentation/versioned_docs/version-v0.5.0/components/amp-instrumentation.md
  • documentation/versioned_docs/version-v0.5.0/components/amp-trace-observer.md
  • documentation/versioned_docs/version-v0.5.0/contributing/contributing.md
  • documentation/versioned_docs/version-v0.5.0/getting-started/managed-cluster.md
  • documentation/versioned_docs/version-v0.5.0/getting-started/quick-start.md
  • documentation/versioned_docs/version-v0.5.0/getting-started/self-hosted-cluster.md
  • documentation/versioned_docs/version-v0.5.0/overview/what-is-amp.md
  • documentation/versioned_docs/version-v0.6.x/_constants.md
  • documentation/versioned_docs/version-v0.6.x/components/amp-api.mdx
  • documentation/versioned_docs/version-v0.6.x/components/amp-console.mdx
  • documentation/versioned_docs/version-v0.6.x/components/amp-instrumentation.mdx
  • documentation/versioned_docs/version-v0.6.x/components/amp-trace-observer.mdx
  • documentation/versioned_docs/version-v0.6.x/contributing/contributing.mdx
  • documentation/versioned_docs/version-v0.6.x/getting-started/managed-cluster.mdx
  • documentation/versioned_docs/version-v0.6.x/getting-started/quick-start.mdx
  • documentation/versioned_docs/version-v0.6.x/getting-started/self-hosted-cluster.mdx
  • documentation/versioned_docs/version-v0.6.x/overview/what-is-amp.mdx
  • documentation/versioned_docs/version-v0.7.x/_constants.md
  • documentation/versioned_docs/version-v0.7.x/components/amp-instrumentation.mdx
  • documentation/versioned_docs/version-v0.7.x/concepts/evaluation.mdx
  • documentation/versioned_docs/version-v0.7.x/concepts/observability.mdx
  • documentation/versioned_docs/version-v0.7.x/contributing/contributing.mdx
  • documentation/versioned_docs/version-v0.7.x/getting-started/managed-cluster.mdx
  • documentation/versioned_docs/version-v0.7.x/getting-started/quick-start.mdx
  • documentation/versioned_docs/version-v0.7.x/getting-started/self-hosted-cluster.mdx
  • documentation/versioned_docs/version-v0.7.x/overview/what-is-amp.mdx
  • documentation/versioned_docs/version-v0.7.x/tutorials/evaluation-monitors.mdx
  • documentation/versioned_docs/version-v0.7.x/tutorials/observe-first-agent.mdx
  • documentation/versioned_docs/version-v0.8.x/_constants.md
  • documentation/versioned_docs/version-v0.8.x/components/amp-instrumentation.mdx
  • documentation/versioned_docs/version-v0.8.x/concepts/evaluation.mdx
  • documentation/versioned_docs/version-v0.8.x/concepts/observability.mdx
  • documentation/versioned_docs/version-v0.8.x/contributing/contributing.mdx
  • documentation/versioned_docs/version-v0.8.x/getting-started/managed-cluster.mdx
  • documentation/versioned_docs/version-v0.8.x/getting-started/quick-start.mdx
  • documentation/versioned_docs/version-v0.8.x/getting-started/self-hosted-cluster.mdx
  • documentation/versioned_docs/version-v0.8.x/overview/what-is-amp.mdx
  • documentation/versioned_docs/version-v0.8.x/tutorials/evaluation-monitors.mdx
  • documentation/versioned_docs/version-v0.8.x/tutorials/observe-first-agent.mdx
  • documentation/versioned_sidebars/version-v0.3.0-sidebars.json
  • documentation/versioned_sidebars/version-v0.4.0-sidebars.json
  • documentation/versioned_sidebars/version-v0.5.0-sidebars.json
  • documentation/versioned_sidebars/version-v0.6.x-sidebars.json
  • documentation/versioned_sidebars/version-v0.7.x-sidebars.json
💤 Files with no reviewable changes (5)
  • .github/scripts/update-docs-versions.sh
  • docs/install/self-hosted-cluster.md
  • .github/workflows/release.yml
  • docs/install/managed-cluster.md
  • docs/quick-start.md
✅ Files skipped from review due to trivial changes (1)
  • documentation/versioned_docs/version-v0.8.x/getting-started/quick-start.mdx
🚧 Files skipped from review as they are similar to previous changes (2)
  • documentation/docusaurus.config.ts
  • documentation/docs/getting-started/quick-start.mdx

@AnoshanJ
Copy link
Contributor Author

The documentation workflow is updated based on the comments: Push to a branch and auto-create a PR

@AnoshanJ AnoshanJ force-pushed the feat/doc-improvements-0.8 branch from 681d4dc to 435d46a Compare March 18, 2026 11:42
@AnoshanJ AnoshanJ force-pushed the feat/doc-improvements-0.8 branch from 435d46a to 9d38564 Compare March 19, 2026 09:03
Copy link
Member

@a5anka a5anka left a comment

Choose a reason for hiding this comment

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

Observation on docs/_constants.md mutation during versioning (documentation/Makefile lines 70–71, 104–105)

The version and update-version targets update docs/_constants.md (the "Next"/unreleased version source) with the release version values:

$(SED_INPLACE) "s/latestVersion: '.*'/latestVersion: '$(VERSION)'/" docs/_constants.md;
$(SED_INPLACE) "s/quickStartDockerTag: '.*'/quickStartDockerTag: '$(DOCKER_TAG)'/" docs/_constants.md;

This means after a release, the "Next" docs will show the last released version in their constants (e.g., v0.9.x / v0.9.0) rather than the dev placeholder (v0.0.0-dev). A few implications to be aware of:

  1. After the release workflow runs and merges, the docs/_constants.md on main will permanently carry the released version, not a dev placeholder. This is fine if intentional — it means the site's announcement bar and footer links always reference the latest release.

  2. However, if someone later adds new doc content referencing version-specific URLs/tags in the "Next" docs, they need to know they should use v0.0.0-dev placeholders in the markdown files themselves, but _constants.md will not use placeholders — it will carry the latest release values. This is a subtle distinction that could cause confusion for contributors.

  3. The docusaurus.config.ts also reads quickStartDockerTag from _constants.md at build time for the announcement bar, so this coupling is load-bearing.

Suggestion: Consider either:

  • Documenting this behavior (e.g., a comment in _constants.md explaining it gets updated by the release workflow), or
  • Resetting _constants.md back to dev placeholders after the versioned snapshot is created, so "Next" always shows dev values and the released version only lives in the versioned snapshot.

@a5anka a5anka merged commit 5beda96 into wso2:main Mar 19, 2026
4 checks passed
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.

Update Release documentation workflow

2 participants