Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 19 additions & 16 deletions .tekton/.currency/docs/report.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,31 @@
| Package name | Support Policy | Beta version | Last Supported Version | Latest version | Up-to-date | Release date | Latest Version Published At | Days behind | Cloud Native |
|:---------------------|:-----------------|:---------------|:-------------------------|:-----------------|:-------------|:---------------|:------------------------------|:--------------|:---------------|
| ASGI | 45-days | No | 3.0 | 3.0 | Yes | 2019-03-04 | 2019-03-04 | 0 day/s | No |
| Celery | 45-days | No | 5.4.0 | 5.4.0 | Yes | 2024-04-17 | 2024-04-17 | 0 day/s | No |
| Django | 45-days | No | 5.1.7 | 5.1.7 | Yes | 2025-03-06 | 2025-03-06 | 0 day/s | No |
| FastAPI | 45-days | No | 0.115.11 | 0.115.11 | Yes | 2025-03-01 | 2025-03-01 | 0 day/s | No |
| Flask | 45-days | No | 3.1.0 | 3.1.0 | Yes | 2024-11-13 | 2024-11-13 | 0 day/s | No |
| Celery | 45-days | No | 5.5.3 | 5.5.3 | Yes | 2025-06-01 | 2025-06-01 | 0 day/s | No |
| Django | 45-days | No | 5.2.3 | 5.2.3 | Yes | 2025-06-10 | 2025-06-10 | 0 day/s | No |
| FastAPI | 45-days | No | 0.115.12 | 0.115.12 | Yes | 2025-03-23 | 2025-03-23 | 0 day/s | No |
| Flask | 45-days | No | 3.1.1 | 3.1.1 | Yes | 2025-05-13 | 2025-05-13 | 0 day/s | No |
| Pyramid | 45-days | No | 2.0.2 | 2.0.2 | Yes | 2023-08-25 | 2023-08-25 | 0 day/s | No |
| Sanic | On demand | No | 24.12.0 | 24.12.0 | Yes | 2024-12-31 | 2024-12-31 | 0 day/s | No |
| Starlette | 45-days | No | 0.46.1 | 0.46.1 | Yes | 2025-03-08 | 2025-03-08 | 0 day/s | No |
| Tornado | 45-days | No | 6.4.2 | 6.4.2 | Yes | 2024-11-22 | 2024-11-22 | 0 day/s | No |
| Sanic | On demand | No | 25.3.0 | 25.3.0 | Yes | 2025-03-31 | 2025-03-31 | 0 day/s | No |
| Starlette | 45-days | No | 0.47.0 | 0.47.0 | Yes | 2025-05-29 | 2025-05-29 | 0 day/s | No |
| Tornado | 45-days | No | 6.5.1 | 6.5.1 | Yes | 2025-05-22 | 2025-05-22 | 0 day/s | No |
| Webapp2 | On demand | No | 2.5.2 | 2.5.2 | Yes | 2012-09-28 | 2012-09-28 | 0 day/s | No |
| WSGI | 0-day | Yes | 1.0.1 | 1.0.1 | Yes | 2010-09-26 | 2010-09-26 | 0 day/s | No |
| Aiohttp | 45-days | No | 3.11.13 | 3.11.13 | Yes | 2025-02-24 | 2025-02-24 | 0 day/s | No |
| Aiohttp | 45-days | No | 3.12.13 | 3.12.13 | Yes | 2025-06-14 | 2025-06-14 | 0 day/s | No |
| Asynqp | Deprecated | No | 0.6 | 0.6 | Yes | 2019-01-20 | 2019-01-20 | 0 day/s | No |
| Boto3 | 45-days | No | 1.37.11 | 1.37.11 | Yes | 2025-03-11 | 2025-03-11 | 0 day/s | Yes |
| Google-cloud-pubsub | 45-days | No | 2.28.0 | 2.28.0 | Yes | 2025-01-30 | 2025-01-30 | 0 day/s | Yes |
| Boto3 | 45-days | No | 1.38.36 | 1.38.36 | Yes | 2025-06-12 | 2025-06-12 | 0 day/s | Yes |
| Google-cloud-pubsub | 45-days | No | 2.30.0 | 2.30.0 | Yes | 2025-06-09 | 2025-06-09 | 0 day/s | Yes |
| Google-cloud-storage | 45-days | No | 3.1.0 | 3.1.0 | Yes | 2025-02-28 | 2025-02-28 | 0 day/s | Yes |
| Grpcio | 45-days | No | 1.71.0 | 1.71.0 | Yes | 2025-03-10 | 2025-03-10 | 0 day/s | Yes |
| Grpcio | 45-days | No | 1.73.0 | 1.73.0 | Yes | 2025-06-09 | 2025-06-09 | 0 day/s | Yes |
| Mysqlclient | 45-days | No | 2.2.7 | 2.2.7 | Yes | 2025-01-10 | 2025-01-10 | 0 day/s | Yes |
| Pika | 45-days | No | 1.3.2 | 1.3.2 | Yes | 2023-05-05 | 2023-05-05 | 0 day/s | No |
| PyMySQL | 45-days | No | 1.1.1 | 1.1.1 | Yes | 2024-05-21 | 2024-05-21 | 0 day/s | Yes |
| Pymongo | 45-days | No | 4.11.2 | 4.11.2 | Yes | 2025-03-03 | 2025-03-03 | 0 day/s | Yes |
| Pymongo | 45-days | No | 4.13.1 | 4.13.1 | Yes | 2025-06-11 | 2025-06-11 | 0 day/s | Yes |
| Psycopg2 | 45-days | No | 2.9.10 | 2.9.10 | Yes | 2024-10-16 | 2024-10-16 | 0 day/s | No |
| Redis | 45-days | No | 5.2.1 | 5.2.1 | Yes | 2024-12-06 | 2024-12-06 | 0 day/s | Yes |
| Requests | 45-days | No | 2.32.3 | 2.32.3 | Yes | 2024-05-29 | 2024-05-29 | 0 day/s | Yes |
| SQLAlchemy | 45-days | No | 2.0.39 | 2.0.39 | Yes | 2025-03-11 | 2025-03-11 | 0 day/s | Yes |
| Urllib3 | 45-days | No | 2.3.0 | 2.3.0 | Yes | 2024-12-22 | 2024-12-22 | 0 day/s | No |
| Redis | 45-days | No | 6.2.0 | 6.2.0 | Yes | 2025-05-28 | 2025-05-28 | 0 day/s | Yes |
| Requests | 45-days | No | 2.32.4 | 2.32.4 | Yes | 2025-06-09 | 2025-06-09 | 0 day/s | Yes |
| SQLAlchemy | 45-days | No | 2.0.41 | 2.0.41 | Yes | 2025-05-14 | 2025-05-14 | 0 day/s | Yes |
| Urllib3 | 45-days | No | 2.4.0 | 2.4.0 | Yes | 2025-04-10 | 2025-04-10 | 0 day/s | No |
| Spyne | 45-days | No | 2.14.0 | 2.14.0 | Yes | 2022-02-03 | 2022-02-03 | 0 day/s | No |
| Aio-pika | 45-days | No | 9.5.5 | 9.5.5 | Yes | 2025-02-26 | 2025-02-26 | 0 day/s | No |
| Aioamqp | 45-days | No | 0.15.0 | 0.15.0 | Yes | 2022-04-05 | 2022-04-05 | 0 day/s | No |
2 changes: 1 addition & 1 deletion .tekton/.currency/resources/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ pandas
beautifulsoup4
tabulate
kubernetes
packaging
packaging
18 changes: 18 additions & 0 deletions .tekton/.currency/resources/table.json
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,24 @@
"Support Policy": "45-days",
"Beta version": "No",
"Cloud Native": "No"
},
{
"Package name": "Spyne",
"Support Policy": "45-days",
"Beta version": "No",
"Cloud Native": "No"
},
{
"Package name": "Aio-pika",
"Support Policy": "45-days",
"Beta version": "No",
"Cloud Native": "No"
},
{
"Package name": "Aioamqp",
"Support Policy": "45-days",
"Beta version": "No",
"Cloud Native": "No"
}
]
}
34 changes: 15 additions & 19 deletions .tekton/.currency/scripts/generate_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,37 +96,33 @@ def get_upstream_version(dependency, last_supported_version):
# get info using PYPI API
response = requests.get(f"{PIP_INDEX_URL}/{dependency}/json")
response_json = response.json()

latest_version = response_json["info"]["version"]
release_time = response_json["releases"][latest_version][-1][
"upload_time_iso_8601"
]
latest_version_release_date = datetime.strptime(
release_time, "%Y-%m-%dT%H:%M:%S.%fZ"
)
formatted_release_date = latest_version_release_date.strftime("%Y-%m-%d")
for version, release_info in response_json["releases"].items():
if version == last_supported_version:
release_time = release_info[-1]["upload_time_iso_8601"]
last_supported_version_release_date = datetime.strptime(
release_time, "%Y-%m-%dT%H:%M:%S.%fZ"
).strftime("%Y-%m-%d")
release_info_latest = response_json["releases"][latest_version]
release_time_latest = release_info_latest[-1]["upload_time_iso_8601"]
release_date_latest = re.search(r"([\d-]+)T", release_time_latest)[1]

release_info_last_supported = response_json["releases"][last_supported_version]
release_time_last_supported = release_info_last_supported[-1]["upload_time_iso_8601"]
release_date_last_supported = re.search(r"([\d-]+)T", release_time_last_supported)[1]

return (
latest_version,
formatted_release_date,
last_supported_version_release_date,
release_date_latest,
release_date_last_supported,
)


def get_last_supported_version(tekton_ci_output, dependency):
"""Get up-to-date supported version"""
pattern = r"-([^\s]+)"

if dependency == "Psycopg2":
dependency = "psycopg2-binary"

# either start with a space or in a new line
pattern = r"(?:^|\s)" + dependency + r"-([^\s]+)"

last_supported_version = re.search(
dependency + pattern, tekton_ci_output, flags=re.I | re.M
pattern, tekton_ci_output, flags=re.I | re.M
)

return last_supported_version[1]
Expand Down Expand Up @@ -293,7 +289,7 @@ def main():
title = "## Python supported packages and versions"

# Combine disclaimer, title, and markdown table with line breaks
final_markdown = disclaimer + "\n" + title + "\n" + markdown_table
final_markdown = f"{disclaimer}\n{title}\n{markdown_table}\n"

with open(REPORT_FILE, "w") as file:
file.write(final_markdown)
Expand Down
Loading