Rundeck Documentation
Rundeck Documentation project.
Getting Started
Dependencies
- NodeJS version
22.22.0is the currently supported and only version that should be used. - NVM is helpful in making sure your machine is using the currently supported versions as we upgrade in the future.
Recommended setup steps
Install nvm to manage your NodeJS installations.
Run nvm install; nvm use; to install and set the NodeJS version. (it will use the .nvmrc file in the root of this directory as the version we are currently supporting.)
After setting the proper Node version, run this npm command before the first you start the docs site locally.
npm install
Note: It may be helpful to delete any existing
node_modulesfolder and thepackage-lock.jsonfile before running npm install.
Cloudsmith Authentication Setup
For PagerDuty employees with Cloudsmith access
Export your Cloudsmith token before installing dependencies:
export CLOUDSMITH_NPM_TOKEN=your-cloudsmith-token-hereFor contributors without Cloudsmith access
Delete the .npmrc file in the repository root:
rm .npmrcHow To
Run Locally for Development
npm run docs:dev
Compiles and hot-reloads for development. As (most) content changes are made they show up immediately.
Build
Compiles and minifies for production.
npm run docs:build
Submitting Changes
Rundeck welcomes documentation PRs. Please submit PRs against the default branch (currently 4.0.x) and we will review.
Publishing
Docs will be built and published to a base matching a branch name of
/4\.[1-9]\..*/:
- Branch
4.0.x=>docs.rundeck.com/4.0.x/ - Branch
4.13.0=>docs.rundeck.com/4.13.0/
Latest
Version tag must contain the full Rundeck version with date!
Tag a commit to publish the matching version base as well as the main production docs:
- Tag
v4.13.0-20230515=>docs.rundeck.com/4.13.0/ANDdocs.rundeck.com/docs/
Example Code:
git tag -f v4.13.0-20230515
git push -f origin v4.13.0-20230515
Maintenance
For maintenance to docs on previous versions, simply switch to or create the branch:
# For 3.2.8
git checkout v3.2.8
git checkout -b 3.2.8
git push originDocumentation Structure
The documentation is organized as follows:
/docs/- Main documentation content (published to docs.rundeck.com)/docs/.vuepress/- VuePress configuration/docs/.vuepress/public/assets/img/- Images Folder/dev-docs/- Internal developer documentation (scripts, architecture, workflows)
How to Create Release Notes
Prerequisites
GitHub API Token Setup
Create a .env file in the project root:
# Create .env file
touch .env
# Add your GitHub API token
echo "GH_API_TOKEN=ghp_your_actual_token_here" > .envGet a token at: https://github.com/settings/tokens
Required permissions:
repo- Full control of private repositories- Access to
rundeckpro/rundeckpro(private) - Access to
rundeckpro/sidecar(private)
PR Labeling
Both Rundeck Core and Enterprise repositories use the release-notes/include label:
- PRs with this label will be included in release notes
- PRs without this label will be excluded
Release Notes Sections:
The script automatically extracts content from the ## Release Notes section in PR descriptions. Structure your PRs like this:
## Release Notes
Brief customer-facing description of the change.
This content will appear in the generated release notes.
## Technical Details
Implementation specifics (not included in release notes).Tag-Based Release Notes (Current Approach)
The release notes script uses git tag comparison to find all PRs between two releases. This ensures accuracy by capturing all changes in the actual git history.
Basic Usage
# Generate release notes (auto-detects previous version)
# Example: 5.17.0 automatically compares with 5.16.0
npm run notes -- --milestone=5.17.0Version Auto-Detection
| Target Version | Auto-detected Previous | What it compares |
|---|---|---|
5.17.0 |
5.16.0 |
All PRs between v5.16.0 and v5.17.0 tags |
5.17.1 |
5.17.0 |
All PRs between v5.17.0 and v5.17.1 tags |
5.0.0 |
4.17.0 |
All PRs between v4.17.0 and v5.0.0 tags |
Custom Version Range
For patch releases or special cases, specify the previous version:
# Compare 5.17.0 to 5.17.1
npm run notes -- --milestone=5.17.1 --from-version=5.17.0Draft Mode (Recommended for Testing)
Generate a draft without modifying configuration files:
# Creates docs/history/5_x/draft.md
npm run notes:draft -- --milestone=5.17.0
# Review the draft
cat docs/history/5_x/draft.md
# When satisfied, generate the final version
npm run notes -- --milestone=5.17.0Tag Detection:
- If the tag exists (e.g.,
v5.17.0), draft mode uses the exact tag comparison - If the tag doesn't exist yet, draft mode automatically uses
HEADto preview what will be in the release- You'll see: "Warning: Tag 5.17.0 not found, using HEAD for preview"
- This allows you to preview release notes before creating the tag
What the Script Does
When you run npm run notes -- --milestone=5.17.0, it will:
- Compare git tags to find all PRs between versions (e.g., v5.16.0 → v5.17.0)
- Extract Release Notes sections from PR bodies
- Collect contributor information (excluding bots and internal accounts)
- Generate release notes markdown at
docs/history/5_x/version-5.17.0.md - Update sidebar and navbar links (unless
--draftmode) - Update configuration files:
.docsearch/config.json- Search indexing versiondocs/.vuepress/setup.js- Version informationdocs/.vuepress/sidebar-menus/history.ts- Version linkdocs/.vuepress/navbar-menus/about.js- Release notes linkdocs/.vuepress/pr-feed-config.json- PR feed baseline
- Handle all merge strategies (merge commits, squash merges, rebase merges)
Note: The generated file requires manual edits for dates, Overview section, and final descriptions.
Typical Workflow
Self-Hosted Release Process
# 1. Generate draft for review (before tagging)
# If tag doesn't exist yet, uses HEAD for preview
npm run notes:draft -- --milestone=5.17.0
# 2. Review the generated draft
code docs/history/5_x/draft.md
# 3. Create the version tag
git tag v5.17.0
git push origin v5.17.0
# 4. Generate final release notes (updates all configs)
# Now uses the exact tag for accurate PR detection
npm run notes -- --milestone=5.17.0
# 5. Edit the generated file for dates, overview, etc.
code docs/history/5_x/version-5.17.0.md
# 6. Commit all changes
git add docs/history/5_x/version-5.17.0.md
git add docs/.vuepress/sidebar-menus/history.ts
git add docs/.vuepress/navbar-menus/about.js
git add docs/.vuepress/setup.js
git add .docsearch/config.json
git add docs/.vuepress/pr-feed-config.json
git commit -m "Release notes for 5.17.0"
git pushNote: You can preview with draft mode before creating the tag. Draft mode will use HEAD if the tag doesn't exist yet.
SaaS Development Updates Feed
For generating RSS/Atom feeds and markdown pages showing recent PRs deployed to the SaaS platform (but not yet in self-hosted releases), see dev-docs/PR-FEED-README.md.
This feed automatically tracks changes since the last self-hosted release and is updated after each SaaS deployment:
npm run pr-feedThe feed date range is automatically updated when you create release notes - no manual configuration needed!
Troubleshooting Release Notes
"Tag X.Y.Z not found" Warning or Error
In Draft Mode:
- Shows warning: "Tag 5.18.0 not found, using HEAD for preview"
- Uses HEAD (main branch) to preview PRs
- This is normal before the tag is created
In Final Mode:
- Shows error: "Tag 5.18.0 not found. Create the tag first or use --draft mode."
- Creates a placeholder file with minimal content
- Re-run after creating the tag to populate with actual PRs
Solution:
- Use draft mode to preview:
npm run notes:draft -- --milestone=5.18.0 - Create the tag when ready:
git tag v5.18.0 && git push origin v5.18.0 - Generate final notes:
npm run notes -- --milestone=5.18.0
For repo-specific warnings (docs, ansible-plugin):
- This is normal - these repos don't use version tags
- They'll be skipped gracefully
"GH_API_TOKEN environment variable is not set"
Solution: Create .env file with your GitHub token (see Prerequisites above).
No PRs found
Check:
- Version range is correct
- Tags exist in the repositories
- PRs are merged (not just closed)
- PRs have the required labels (
release-notes/includefor enterprise)
Get Help
# View all available options
npm run notes -- --helpAdvanced Options
# Specify custom previous version
npm run notes -- --milestone=5.17.1 --from-version=5.17.0
# Draft mode (doesn't update configs)
npm run notes:draft -- --milestone=5.17.0
# Direct script usage
node ./docs/.vuepress/notes.mjs --milestone=5.17.0 --from-version=5.16.0Troubleshooting
If you encounter errors running the site locally, follow these steps to ensure a clean environment and proper setup:
Prerequisites
- Make sure NVM (Node Version Manager) is installed on your machine
- Ensure you have proper repository access
# 1. Navigate to repository root
cd <repository directory>
# 2. Set correct Node.js version
nvm install # Installs version specified in .nvmrc
nvm use # Switches to the correct version
# 3. Clean existing dependencies
rm -rf node_modules package-lock.json
# 4. Ensure you're on the correct branch
git checkout 4.0.x
git pull origin 4.0.x
# 5. Verify branch (should show '* 4.0.x')
git branch
# 6. Reinstall dependencies
npm install
# 7. Start development server
npm run docs:dev
Common Issues and Solutions
- If nvm command is not found, restart your terminal after installation
- If npm install fails, try clearing npm cache: npm cache clean --force
- If the dev server shows outdated content, clear your browser cache
- For permission errors, ensure you're not using sudo with npm commands
Still Having Issues?
- Check the console for specific error messages
- Verify your Node.js version matches the project requirements: node --version