import sys
import yaml
import sphinx.util
+import urllib.request
+logger = sphinx.util.logging.getLogger(__name__)
top_level = \
os.path.dirname(
def is_release_eol(codename):
- with open(os.path.join(top_level, 'doc/releases/releases.yml')) as input:
- releases = yaml.safe_load(input)['releases']
- return 'actual_eol' in releases.get(codename, {})
-
+ # Try fetching the latest status from the main branch first
+ try:
+ url = "https://raw.githubusercontent.com/ceph/ceph/main/doc/releases/releases.yml"
+ with urllib.request.urlopen(url, timeout=5) as response:
+ releases = yaml.safe_load(response)['releases']
+ return 'actual_eol' in releases.get(codename, {})
+ except Exception as e:
+ logger.warn(f"Failed to fetch releases.yml from main, falling back to local: {e}")
+ # Fallback to the local file if the network request fails
+ with open(os.path.join(top_level, 'doc/releases/releases.yml')) as input:
+ releases = yaml.safe_load(input)['releases']
+ return 'actual_eol' in releases.get(codename, {})
# project information
project = 'Ceph'