| name | Get Release Dates |
| description | Fetch OpenShift release dates and metadata from Sippy API |
Get Release Dates
This skill provides functionality to fetch OpenShift release information including GA dates and development start dates from the Sippy API.
When to Use This Skill
Use this skill when you need to:
- Get GA (General Availability) date for a specific OpenShift release
- Find when development started for a release
- Identify the previous release in the sequence
- Validate if a release exists in Sippy
- Determine if a release is in development or has GA'd
Prerequisites
-
Python 3 Installation
- Check if installed:
which python3
- Python 3.6 or later is required
- Comes pre-installed on most systems
-
Network Access
- The script requires network access to reach the Sippy API
- Ensure you can make HTTPS requests to
sippy.dptools.openshift.org
Implementation Steps
Step 1: Verify Prerequisites
First, ensure Python 3 is available:
python3 --version
If Python 3 is not installed, guide the user through installation for their platform.
Step 2: Locate the Script
The script is located at:
plugins/teams/skills/get-release-dates/get_release_dates.py
Step 3: Run the Script
Execute the script with the release parameter:
python3 plugins/teams/skills/get-release-dates/get_release_dates.py \
--release 4.21
python3 plugins/teams/skills/get-release-dates/get_release_dates.py \
--release 4.20
Step 4: Process the Output
The script outputs JSON data with the following structure:
{
"release": "4.21",
"found": true,
"ga": "2026-02-17T00:00:00Z",
"development_start": "2025-09-02T00:00:00Z",
"previous_release": "4.20"
}
Field Descriptions:
release: The release identifier that was queried
found: Boolean indicating if the release exists in Sippy
ga: GA (General Availability) date. If null, the release is still in development.
development_start: When development started for this release
previous_release: The previous release in the sequence (empty string if none)
If Release Not Found:
{
"release": "99.99",
"found": false
}
Release Status - Development vs GA'd:
- In Development: If
ga is null, the release is still under active development
{
"release": "4.21",
"found": true,
"development_start": "2025-09-02T00:00:00Z",
"previous_release": "4.20"
}
- GA'd (Released): If
ga has a timestamp, the release has reached General Availability
{
"release": "4.17",
"found": true,
"ga": "2024-10-01T00:00:00Z",
"development_start": "2024-05-17T00:00:00Z",
"previous_release": "4.16"
}
Step 5: Use the Information
Based on the release dates:
- Determine release status: Check if release is in development or GA'd
- If
ga is null: Release is still in development
- If
ga has a timestamp: Release has reached General Availability
- Determine release timeline: Use
development_start and ga dates
- Calculate time in development:
ga - development_start
- For in-development releases: Calculate time since
development_start
- Find related releases: Use
previous_release to navigate the release sequence
- Validate release: Check
found field before using the release in other operations
Error Handling
The script handles several error scenarios:
-
Network Errors: If unable to reach Sippy API
Error: URL Error: [reason]
-
HTTP Errors: If API returns an error status
Error: HTTP Error 404: Not Found
-
Invalid Release: Script returns exit code 1 with found: false in output
-
Parsing Errors: If API response is malformed
Error: Failed to fetch release dates: [details]
Output Format
The script outputs JSON to stdout with:
- Success: Exit code 0, JSON with
found: true
- Release Not Found: Exit code 1, JSON with
found: false
- Error: Exit code 1, error message to stderr
API Details
The script queries the Sippy releases API:
The full API response includes:
releases: Array of all available release identifiers
ga_dates: Simple mapping of release to GA date
dates: Detailed mapping with GA and development_start dates
release_attrs: Extended attributes including previous release
Examples
Example 1: Get Current Development Release
python3 plugins/teams/skills/get-release-dates/get_release_dates.py \
--release 4.21
Output:
{
"release": "4.21",
"found": true,
"development_start": "2025-09-02T00:00:00Z",
"previous_release": "4.20"
}
Example 2: Get GA'd Release
python3 plugins/teams/skills/get-release-dates/get_release_dates.py \
--release 4.17
Output:
{
"release": "4.17",
"found": true,
"ga": "2024-10-01T00:00:00Z",
"development_start": "2024-05-17T00:00:00Z",
"previous_release": "4.16"
}
Example 3: Query Non-Existent Release
python3 plugins/teams/skills/get-release-dates/get_release_dates.py \
--release 99.99
Output:
{
"release": "99.99",
"found": false
}
Exit code: 1
Integration with Other Commands
This skill can be used in conjunction with other teams skills:
- Before analyzing regressions: Verify the release exists
- Timeline context: Understand how long a release has been in development
- Release status: Determine if a release is in development or has GA'd
- Release navigation: Find previous/next releases in the sequence
Notes
- The script uses Python's standard library only (no external dependencies)
- API responses are cached by Sippy, so repeated calls are fast
- Release identifiers are case-sensitive (use "4.21" not "4.21.0")
- OKD releases are suffixed with "-okd" (e.g., "4.21-okd")
- ARO releases have special identifiers (e.g., "aro-production")
- "Presubmits" is a special release for pull request data
See Also