Back to Skills

Get Release Dates

openshift-eng
Updated Today
29 views
16
110
16
View on GitHub
Developmentapidata

About

This skill fetches OpenShift release metadata like GA dates and development start dates from the Sippy API. Use it to validate a release's existence, check its status, or find its previous release in the sequence. It requires Python 3 and network access to the Sippy API endpoint.

Quick Install

Claude Code

Recommended
Plugin CommandRecommended
/plugin add https://github.com/openshift-eng/ai-helpers
Git CloneAlternative
git clone https://github.com/openshift-eng/ai-helpers.git ~/.claude/skills/Get Release Dates

Copy and paste this command in Claude Code to install this skill

Documentation

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

  1. Python 3 Installation

    • Check if installed: which python3
    • Python 3.6 or later is required
    • Comes pre-installed on most systems
  2. 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/component-health/skills/get-release-dates/get_release_dates.py

Step 3: Run the Script

Execute the script with the release parameter:

# Get dates for release 4.21
python3 plugins/component-health/skills/get-release-dates/get_release_dates.py \
  --release 4.21

# Get dates for release 4.20
python3 plugins/component-health/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:

  1. 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
  2. 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
  3. Find related releases: Use previous_release to navigate the release sequence
  4. Validate release: Check found field before using the release in other operations

Error Handling

The script handles several error scenarios:

  1. Network Errors: If unable to reach Sippy API

    Error: URL Error: [reason]
    
  2. HTTP Errors: If API returns an error status

    Error: HTTP Error 404: Not Found
    
  3. Invalid Release: Script returns exit code 1 with found: false in output

  4. 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/component-health/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/component-health/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/component-health/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 component-health skills:

  1. Before analyzing regressions: Verify the release exists
  2. Timeline context: Understand how long a release has been in development
  3. Release status: Determine if a release is in development or has GA'd
  4. 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

GitHub Repository

openshift-eng/ai-helpers
Path: plugins/component-health/skills/get-release-dates

Related Skills

evaluating-llms-harness

Testing

This Claude Skill runs the lm-evaluation-harness to benchmark LLMs across 60+ standardized academic tasks like MMLU and GSM8K. It's designed for developers to compare model quality, track training progress, or report academic results. The tool supports various backends including HuggingFace and vLLM models.

View skill

langchain

Meta

LangChain is a framework for building LLM applications using agents, chains, and RAG pipelines. It supports multiple LLM providers, offers 500+ integrations, and includes features like tool calling and memory management. Use it for rapid prototyping and deploying production systems like chatbots, autonomous agents, and question-answering services.

View skill

llamaindex

Meta

LlamaIndex is a data framework for building RAG-powered LLM applications, specializing in document ingestion, indexing, and querying. It provides key features like vector indices, query engines, and agents, and supports over 300 data connectors. Use it for document Q&A, chatbots, and knowledge retrieval when building data-centric applications.

View skill

csv-data-summarizer

Meta

This skill automatically analyzes CSV files to generate comprehensive statistical summaries and visualizations using Python's pandas and matplotlib/seaborn. It should be triggered whenever a user uploads or references CSV data without prompting for analysis preferences. The tool provides immediate insights into data structure, quality, and patterns through automated analysis and visualization.

View skill