Skip to content

Commit

Permalink
Fix issue #5890: Add an automatic check of version consistency in doc…
Browse files Browse the repository at this point in the history
…umentation
  • Loading branch information
openhands-agent committed Dec 29, 2024
1 parent ebb2d86 commit 0f30eb8
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 0 deletions.
61 changes: 61 additions & 0 deletions .github/scripts/check_version_consistency.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#!/usr/bin/env python3
import os
import re
import sys
from typing import Set, Tuple

def find_version_references(directory: str) -> Tuple[Set[str], Set[str]]:
openhands_versions = set()
runtime_versions = set()

version_pattern_openhands = re.compile(r'openhands:0\.(\d{2})')
version_pattern_runtime = re.compile(r'runtime:0\.(\d{2})')

for root, _, files in os.walk(directory):
# Skip .git directory
if '.git' in root:
continue

for file in files:
if file.endswith(('.md', '.yml', '.yaml', '.txt', '.html', '.py', '.js', '.ts')):
file_path = os.path.join(root, file)
try:
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()

# Find all openhands version references
matches = version_pattern_openhands.findall(content)
openhands_versions.update(matches)

# Find all runtime version references
matches = version_pattern_runtime.findall(content)
runtime_versions.update(matches)
except Exception as e:
print(f"Error reading {file_path}: {e}", file=sys.stderr)

return openhands_versions, runtime_versions

def main():
repo_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
openhands_versions, runtime_versions = find_version_references(repo_root)

exit_code = 0

if len(openhands_versions) > 1:
print("Error: Multiple openhands versions found:", file=sys.stderr)
print("Found versions:", sorted(openhands_versions), file=sys.stderr)
exit_code = 1
elif len(openhands_versions) == 0:
print("Warning: No openhands version references found", file=sys.stderr)

if len(runtime_versions) > 1:
print("Error: Multiple runtime versions found:", file=sys.stderr)
print("Found versions:", sorted(runtime_versions), file=sys.stderr)
exit_code = 1
elif len(runtime_versions) == 0:
print("Warning: No runtime version references found", file=sys.stderr)

sys.exit(exit_code)

if __name__ == '__main__':
main()
13 changes: 13 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,16 @@ jobs:
run: pip install pre-commit==3.7.0
- name: Run pre-commit hooks
run: pre-commit run --files openhands/**/* evaluation/**/* tests/**/* --show-diff-on-failure --config ./dev_config/python/.pre-commit-config.yaml

# Check version consistency across documentation
check-version-consistency:
name: Check version consistency
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up python
uses: actions/setup-python@v5
with:
python-version: 3.12
- name: Run version consistency check
run: .github/scripts/check_version_consistency.py

0 comments on commit 0f30eb8

Please sign in to comment.