Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Sep 23, 2025

This PR implements a comprehensive documentation versioning system using Docusaurus's built-in versioning capabilities. The system allows users to access documentation for specific releases while maintaining the current development documentation at the root path.

Changes Made

Enhanced Docusaurus Configuration

  • Updated docusaurus.config.ts to properly support multiple documentation versions
  • Removed restrictive onlyIncludeVersions setting that was limiting version display
  • Configured proper version labeling and URL paths for seamless navigation

Added Makefile Commands for Version Management

  • docs-version-create VERSION=x.y.z - Creates a new documentation version snapshot
  • docs-version-list - Lists all available documentation versions
  • docs-version-clean - Shows files that would be removed (safe preview)
  • docs-version-clean-force - Force removes all versioned documentation
  • release-docs-version VERSION=x.y.z - Integrated command for release workflow

Updated Release Process Integration

  • Added documentation versioning as step 6 in the release workflow
  • Updated release communication checklist to include documentation versioning
  • Enhanced release help commands to include versioning options
  • Seamlessly integrated with existing make release-* commands

Automated CI/CD Pipeline

  • Enhanced .github/workflows/docs.yaml to automatically deploy versioned documentation on release tags
  • Added GitHub Pages deployment for versioned documentation when tags are created
  • Integrated Rust API documentation build process for releases
  • Updated concurrency settings to prevent deployment conflicts
  • Added automatic creation of versioned documentation archives as release assets

Comprehensive Documentation

  • Created new versioning guide at /docs/appendix/documentation-versioning
  • Covers version management, best practices, file structure, and troubleshooting
  • Explains integration with the release process and maintenance workflows
  • Updated sidebar navigation to include the new guide
  • Added documentation about automated CI deployment process
  • Added detailed section on creating versions for previous releases with step-by-step instructions

How It Works

Manual Version Creation

When a new release is created, the team can run:

make release-docs-version VERSION=1.2.3

Automated CI Deployment

When a release tag is created (e.g., v1.2.3), GitHub Actions automatically:

  • Creates a versioned copy of the documentation
  • Builds the documentation with the new version included
  • Deploys the updated documentation to GitHub Pages
  • Uploads versioned documentation archives as release assets

Retroactive Versioning for Previous Releases

The documentation now includes comprehensive instructions for creating documentation versions for releases that were made before the versioning system was implemented. This process enables creating versions for historical releases like v0.17.0 by:

  • Finding the historical release commit or tag
  • Creating a temporary branch from that release state
  • Generating versioned documentation from the historical docs
  • Safely integrating the versioned docs into the current repository

This creates a snapshot of the current documentation under website/versioned_docs/version-1.2.3/, making it accessible at /docs/1.2.3/. Users can then switch between versions using the dropdown in the navigation bar.

Version Behavior

  • Current (develop): Latest docs at root path with no version banners
  • Released versions: Versioned paths with helpful banners linking back to current docs
  • Navigation: Version dropdown maintains page context when switching between versions

The system preserves the exact state of documentation at release time, ensuring users can always access relevant docs for their specific version of the software. The automated CI pipeline ensures versioned documentation is immediately available when releases are published, and the retroactive versioning capability enables creating documentation for any previous release.

Fixes #1458.


💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

@Copilot Copilot AI changed the title [WIP] Website: add versioning Website: Implement Docusaurus versioning system Sep 23, 2025
@Copilot Copilot AI requested a review from dannywillems September 23, 2025 21:50
Copilot finished work on behalf of dannywillems September 23, 2025 21:50
@dannywillems
Copy link
Member

@copilot add a step in the CI to deploy when we make a release

Copy link
Contributor Author

Copilot AI commented Sep 24, 2025

@copilot add a step in the CI to deploy when we make a release

Added automated CI deployment for documentation versioning. The GitHub Actions workflow now automatically creates and deploys versioned documentation to GitHub Pages when release tags are created. See commit ea828cc for the implementation details.

Copilot AI and others added 2 commits September 24, 2025 11:41
Co-authored-by: dannywillems <6018454+dannywillems@users.noreply.github.com>
Co-authored-by: dannywillems <6018454+dannywillems@users.noreply.github.com>
@Copilot Copilot AI changed the title Website: Implement Docusaurus versioning system Website: Implement Docusaurus versioning system with automated CI deployment Sep 24, 2025
Copilot finished work on behalf of dannywillems September 24, 2025 09:42
@dannywillems
Copy link
Member

@copilot add in the documentation how to create a version for a previous release. In particular, we would like to deploy a version for v0.17.0.

Co-authored-by: dannywillems <6018454+dannywillems@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Sep 24, 2025

@copilot add in the documentation how to create a version for a previous release. In particular, we would like to deploy a version for v0.17.0.

Added comprehensive documentation for creating versions for previous releases, including a specific example workflow for v0.17.0. The guide covers the complete process from finding the release commit to integrating the versioned documentation. See commit 64acbac for the implementation.

@Copilot Copilot AI changed the title Website: Implement Docusaurus versioning system with automated CI deployment Website: Implement Docusaurus versioning system with automated CI deployment and retroactive versioning Sep 24, 2025
Copilot finished work on behalf of dannywillems September 24, 2025 12:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

Website: add versioning
2 participants