Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.3.1 #109

Open
wants to merge 16 commits into
base: release
Choose a base branch
from
Open

Release 0.3.1 #109

wants to merge 16 commits into from

Conversation

odlbot
Copy link
Collaborator

@odlbot odlbot commented Mar 19, 2025

shankar ambady

Ardiea

  • Fixing typo in API_BASE_URL (0cb0d2fe)

sar

renovate[bot]

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @odlbot, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

Summary of Changes

This pull request bumps the version to 0.3.1 and includes several updates and fixes. It updates the Python version used in the Dockerfile and CI workflow, fixes a typo in an environment variable name, updates dependencies, standardizes a config filename, fixes the docker-compose configuration for litellm, and adds OpenTelemetry configuration. The changes touch various files including Dockerfiles, workflow configurations, package.json, pyproject.toml, and application settings.

Highlights

  • Dependency Updates: Updates dependencies including ruff, next, and eslint-config-next to their latest versions.
  • Python Version Upgrade: Upgrades the Python version from 3.12.6 to 3.13.2 in Dockerfiles, .python-version, and CI workflow.
  • OpenTelemetry Integration: Adds OpenTelemetry configuration and initializes it in the main application.
  • LiteLLM Configuration: Fixes the docker-compose configuration for LiteLLM, standardizing the config filename and using a pre-built image.
  • Environment Variable Fix: Corrects a typo in the API_BASE_URL environment variable in the production deployment workflow.

Changelog

Click here to see the changelog
  • .github/workflows/ci.yml
    • Updated python-version from 3.12.6 to 3.13.2.
  • .github/workflows/production-deploy.yml
    • Fixed typo in environment variable name from API_BASE_PRODUCTION to API_BASE_PROD.
  • .python-version
    • Updated Python version from 3.12.6 to 3.13.2.
  • Dockerfile
    • Updated base image to python:3.13.2.
  • Dockerfile-litellm
    • Removed Dockerfile-litellm.
  • RELEASE.rst
    • Added release notes for version 0.3.1, summarizing the changes.
  • docker-compose.services.yml
    • Replaced litellm build with a prebuilt image and added command to specify config file.
    • Mounted litellm config file as a volume.
  • docker-compose.yml
    • Removed local environment files from docker-compose.
  • frontend-demo/package.json
    • Updated next dependency from 15.2.1 to 15.2.2.
    • Updated eslint-config-next dependency from 15.2.1 to 15.2.2.
  • frontend-demo/yarn.lock
    • Updated @next/eslint-plugin-next from 15.2.1 to 15.2.2.
    • Updated eslint-config-next from 15.2.1 to 15.2.2.
    • Updated checksum for eslint-config-next.
  • main/apps.py
    • Initialized OpenTelemetry configuration.
  • main/settings.py
    • Updated VERSION to 0.3.1.
    • Added OpenTelemetry configuration settings.
  • main/telemetry.py
    • Added new file to configure OpenTelemetry with instrumentations and exporters.
  • main/urls.py
    • Added debug toolbar URLs when in DEBUG mode.
  • pyproject.toml
    • Updated python version to 3.13.2.
    • Updated ruff dependency from 0.9.10 to 0.11.0.
    • Added opentelemetry dependencies.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.


Trivia time!

What is OpenTelemetry and what problem does it solve?

Click here for the answer
OpenTelemetry is an open-source observability framework providing a set of APIs, SDKs, and tools to collect telemetry data (metrics, logs, and traces) from software applications. It aims to standardize the generation and collection of telemetry data, enabling developers to understand their software's performance and behavior.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces several updates, including dependency upgrades, configuration changes, and the addition of OpenTelemetry support. The changes appear to be well-organized and address the intended goals. However, some areas could benefit from further review and refinement.

Summary of Findings

  • Python Version Upgrade: The pull request upgrades the Python version to 3.13.2 across multiple files. It's crucial to verify compatibility with all dependencies and ensure no regressions are introduced.
  • OpenTelemetry Integration: The addition of OpenTelemetry configuration and telemetry.py requires careful review to ensure proper setup, instrumentation, and data export. Configuration values in settings.py should be validated.
  • Dockerfile Changes: The removal of Dockerfile-litellm and changes to docker-compose.services.yml require verification to ensure the litellm service is correctly configured and functioning as expected.
  • Environment Variable Typo Fix: The correction of the typo in API_BASE_URL from API_BASE_PRODUCTION to API_BASE_PROD in .github/workflows/production-deploy.yml is important for ensuring the correct API base URL is used in production deployments.

Merge Readiness

The pull request includes significant updates and requires careful review before merging. The Python version upgrade and OpenTelemetry integration are major changes that need thorough testing. I am unable to approve this pull request, and recommend that it not be merged until the identified issues are addressed and verified by additional reviewers.

if settings.DEBUG:
import debug_toolbar

urlpatterns = [path("__debug__/", include(debug_toolbar.urls)), *urlpatterns]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

Adding debug toolbar URLs in production, even conditionally based on settings.DEBUG, can pose a security risk if DEBUG is accidentally enabled in a production environment. It's generally recommended to completely remove debug-related code from production deployments. Consider using a separate settings file or environment variable to manage debug settings more securely.

Suggested change
urlpatterns = [path("__debug__/", include(debug_toolbar.urls)), *urlpatterns]
#if settings.DEBUG:
# import debug_toolbar
#
# urlpatterns = [path("__debug__/", include(debug_toolbar.urls)), *urlpatterns]

Comment on lines +17 to +18
from main.telemetry import configure_opentelemetry
configure_opentelemetry()

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Consider adding a try-except block around the configure_opentelemetry() call to handle potential import errors or configuration issues during initialization. This will prevent the application from crashing if OpenTelemetry is not properly set up.

Suggested change
from main.telemetry import configure_opentelemetry
configure_opentelemetry()
# Initialize OpenTelemetry
try:
from main.telemetry import configure_opentelemetry
configure_opentelemetry()
except Exception as e:
log.error(f"Failed to configure OpenTelemetry: {e}")

if otlp_endpoint:
log.info(f"Configuring OTLP exporter to endpoint: {otlp_endpoint}")

headers = {}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Consider retrieving headers from environment variables or a dedicated configuration section to avoid hardcoding them. This would allow for easier modification and management of headers without altering the code.

        headers = {}
        # Load headers from environment variables
        # headers = {k[9:]: v for k, v in os.environ.items() if k.startswith("OTEL_HEADER_")}

Comment on lines +61 to +67
tracer_provider.add_span_processor(
BatchSpanProcessor(
otlp_exporter,
max_export_batch_size=getattr(settings, "OPENTELEMETRY_BATCH_SIZE", 512),
schedule_delay_millis=getattr(settings, "OPENTELEMETRY_EXPORT_TIMEOUT_MS", 5000),
)
)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

It's generally good practice to set a timeout for the OTLP exporter to prevent indefinite blocking in case the exporter endpoint is unavailable. Consider adding a timeout parameter to the OTLPSpanExporter constructor or within the BatchSpanProcessor configuration.

            BatchSpanProcessor(
                otlp_exporter,
                max_export_batch_size=getattr(settings, "OPENTELEMETRY_BATCH_SIZE", 512),
                schedule_delay_millis=getattr(settings, "OPENTELEMETRY_EXPORT_TIMEOUT_MS", 5000),
                export_timeout_millis=getattr(settings, "OPENTELEMETRY_EXPORT_TIMEOUT_MS", 5000), # Explicit timeout
            )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants