Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
8d07b9c
Bump the github_actions group with 2 updates (#1466)
dependabot[bot] Aug 26, 2025
e7c4c02
Safeguards for deepest unique path (#1450)
lrafeei Aug 26, 2025
2995261
Add try-except to web request parsing (#1449)
lrafeei Aug 26, 2025
e32dcbe
Use legacy bitnami for now (#1471)
lrafeei Aug 28, 2025
d1bcc83
Add graphene-django instrumentation (#1451)
lrafeei Aug 28, 2025
b6631c8
Django middleware filtering settings (#1444)
lrafeei Sep 2, 2025
319b2d9
Pin bitnami images to bitnamilegacy (#1475)
TimPansino Sep 3, 2025
c46858c
Distributed CI Image Build (#1478)
TimPansino Sep 3, 2025
fea8317
Remove old apis (#1479)
lrafeei Sep 3, 2025
fb866dd
Bump the github_actions group with 3 updates (#1473)
dependabot[bot] Sep 3, 2025
39f101c
Remove attestations for attestation files by specifying extensions (#…
TimPansino Sep 4, 2025
e6b1046
Add w3c traceparent header support (#1448)
hmstepanek Sep 4, 2025
1a2fe33
Add global_settings fallback in ES instrumentation (#1454)
hmstepanek Sep 4, 2025
8683e2c
Remove instrumentation for options method on async ElasticSearch clie…
umaannamalai Sep 4, 2025
c2f8fe4
Add Converse API non-streaming support. (#1428)
umaannamalai Sep 4, 2025
da753c9
Remove old settings (#1482)
lrafeei Sep 9, 2025
c326b5a
Fix falcon tests for master branch (#1484)
TimPansino Sep 9, 2025
b1408de
Bump the github_actions group with 5 updates (#1483)
dependabot[bot] Sep 9, 2025
e395151
Merge remote-tracking branch 'origin/main' into develop-11.0.0
TimPansino Sep 11, 2025
568eb0a
Merge pull request #1488 from newrelic/merge-main-develop-11.0.0
TimPansino Sep 11, 2025
bdcf2e8
Updated Packaging (#1480)
TimPansino Sep 11, 2025
a581191
Enable coverage for motor instrumentation (#1487)
TimPansino Sep 11, 2025
8840355
Drop CI Image Build Caching (#1493)
TimPansino Sep 15, 2025
3e6aba4
Add deprecation warning for modules (#1490)
lrafeei Sep 15, 2025
6dcee40
Bump github/codeql-action in the github_actions group (#1492)
dependabot[bot] Sep 15, 2025
70a2f8a
Add Additional Delay to Test Startup Fixture (#1494)
TimPansino Sep 17, 2025
6962646
Temporarily remove pypy310 test from pymysql and aiomysql (#1501)
lrafeei Sep 18, 2025
500a6ef
Falcon sanic testing fix (#1495)
lrafeei Sep 18, 2025
5c62b43
Camunda Pyzeebe Instrumentation (#1385)
khpeet Sep 18, 2025
ec3618a
Format with ruff (#1505)
TimPansino Sep 19, 2025
fdf34c0
Update deprecated urllib APIs (#1499)
lrafeei Sep 19, 2025
4de44ee
Add deprecation warning to WSGI environ dict settings (#1496)
lrafeei Sep 19, 2025
15b6948
Merge main into develop-11.0.0 (#1503)
lrafeei Sep 19, 2025
4b415e4
Swap setting deprecations (#1497)
lrafeei Sep 19, 2025
7271b2e
Drop Python 3.7 Support (#1491)
lrafeei Sep 19, 2025
694612b
Merge remote-tracking branch 'origin/main' into develop-11.0.0
TimPansino Sep 22, 2025
6d0950a
Merge pull request #1511 from newrelic/merge-main-develop-11.0.0
TimPansino Sep 22, 2025
66348e1
Merge pull request #1512 from newrelic/develop-11.0.0
TimPansino Sep 22, 2025
f43a05b
Merge pull request #1508 from newrelic/fix-psycopg-as-string
TimPansino Sep 22, 2025
ddbb8f7
Merge pull request #1513 from newrelic/fix-pyzeebe-pypy
TimPansino Sep 22, 2025
312a322
Fix merge conflict leftovers from removing Python 3.7 (#1515)
TimPansino Sep 23, 2025
3b30f08
Move codecov.yml file to .github folder (#1516)
TimPansino Sep 24, 2025
baecae8
Update Megalinter (#1510)
TimPansino Sep 25, 2025
0b3850f
Add autogen instrumentation and MCP updates (#1520)
umaannamalai Sep 25, 2025
e2d411c
Switch to Using uv in CI (#1514)
TimPansino Sep 26, 2025
5706b4f
Benchmarking Infrastructure (#1506)
TimPansino Sep 29, 2025
973df93
Fix CI Image (#1523)
TimPansino Sep 29, 2025
7f3461d
Bump the github_actions group with 2 updates (#1522)
dependabot[bot] Sep 29, 2025
fb62cd6
Merge remote-tracking branch 'origin/main' into develop-windows
TimPansino Sep 29, 2025
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
6 changes: 2 additions & 4 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,8 @@ RUN mkdir -p ${HOME} && \
useradd --uid ${UID} --gid ${GID} --home ${HOME} vscode && \
chown -R ${UID}:${GID} /home/vscode

# Fix pyenv installation
RUN echo 'eval "$(pyenv init -)"' >>${HOME}/.bashrc && \
chown -R vscode:vscode "${PYENV_ROOT}" && \
chown -R vscode:vscode "${PIPX_HOME}"
# Allow uv to download Python versions manually
ENV UV_PYTHON_DOWNLOADS=manual

# Set user
USER ${UID}:${GID}
2 changes: 1 addition & 1 deletion .github/.trivyignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Ignored Vulnerabilities
# =======================

# Accepting risk due to Python 3.7 and 3.8 support.
# Accepting risk due to Python 3.8 support.
CVE-2025-50181

# Not relevant, only affects Pyodide
Expand Down
1 change: 0 additions & 1 deletion codecov.yml → .github/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ ignore:
- "newrelic/hooks/database_psycopg2ct.py"
- "newrelic/hooks/datastore_aioredis.py"
- "newrelic/hooks/datastore_aredis.py"
- "newrelic/hooks/datastore_motor.py"
- "newrelic/hooks/datastore_pyelasticsearch.py"
- "newrelic/hooks/external_dropbox.py"
- "newrelic/hooks/external_facepy.py"
Expand Down
58 changes: 28 additions & 30 deletions .github/containers/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

FROM ubuntu:20.04
FROM ubuntu:24.04
ARG TARGETPLATFORM

# Install OS packages
Expand Down Expand Up @@ -103,36 +103,34 @@ RUN ln -fs "/usr/share/zoneinfo/${TZ}" /etc/localtime && \
ENV HOME=/root
WORKDIR "${HOME}"

# Install pyenv
ENV PYENV_ROOT="/usr/local/pyenv"
RUN curl https://pyenv.run/ | /bin/bash
ENV PATH="${PYENV_ROOT}/bin:${PYENV_ROOT}/shims:${PATH}"
RUN echo 'eval "$(pyenv init -)"' >>${HOME}/.bashrc && \
pyenv update
# Install and configure uv
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
ENV PATH="${HOME}/.local/bin:${PATH}"
ENV UV_PYTHON_PREFERENCE="only-managed"
ENV UV_LINK_MODE="copy"

# Install Python
ARG PYTHON_VERSIONS="3.12 3.11 3.10 3.9 3.8 3.7 3.13 pypy3.10-7.3.17"
COPY --chown=0:0 --chmod=755 ./install-python.sh /tmp/install-python.sh
RUN /tmp/install-python.sh && \
rm /tmp/install-python.sh
# Install PyPy versions and rename shims
RUN uv python install -f pp3.11 pp3.10
RUN mv "${HOME}/.local/bin/python3.11" "${HOME}/.local/bin/pypy3.11" && \
mv "${HOME}/.local/bin/python3.10" "${HOME}/.local/bin/pypy3.10"

# Install dependencies for main python installation
COPY ./requirements.txt /tmp/requirements.txt
RUN pyenv exec pip install --upgrade -r /tmp/requirements.txt && \
rm /tmp/requirements.txt
# Install CPython versions
RUN uv python install -f cp3.14 cp3.13 cp3.12 cp3.11 cp3.10 cp3.9 cp3.8

# Install tools with pipx in isolated environments
COPY ./requirements-tools.txt /tmp/requirements-tools.txt
ENV PIPX_HOME="/opt/pipx"
ENV PIPX_BIN_DIR="${PIPX_HOME}/bin"
ENV PATH="${PIPX_BIN_DIR}:${PATH}"
RUN mkdir -p "${PIPX_BIN_DIR}" && \
while IFS="" read -r line || [ -n "$line" ]; do \
pyenv exec pipx install --global "${line}"; \
done </tmp/requirements-tools.txt && \
rm /tmp/requirements-tools.txt
# Set default Python version to CPython 3.13
RUN uv python install -f --default cp3.13

# Inject compatibile dependencies for tox
COPY ./requirements-tox.txt /tmp/requirements-tox.txt
RUN pipx inject --force tox -r /tmp/requirements-tox.txt && \
rm /tmp/requirements-tox.txt
# Add shim for pip to use 'uv pip'
COPY --chmod=775 <<EOF "${HOME}/.local/bin/pip"
#!/bin/bash
exec uv pip \$@
EOF

# Prevent any runtime downloads
ENV UV_PYTHON_DOWNLOADS=never

# Install tools with uv in isolated environments
RUN uv tool install tox==4.23.2 --with tox-uv && \
uv tool install ruff && \
uv tool install pre-commit --with pre-commit-uv && \
uv tool install asv --with virtualenv
10 changes: 3 additions & 7 deletions .github/containers/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@

# Override constants
PLATFORM_OVERRIDE:=
PYTHON_VERSIONS_OVERRIDE:=

# Computed variables
IMAGE_NAME:=ghcr.io/newrelic/newrelic-python-agent-ci
Expand All @@ -23,8 +22,6 @@ REPO_ROOT:=$(realpath ${MAKEFILE_DIR}../../)
UNAME_P:=$(shell uname -p)
PLATFORM_AUTOMATIC:=$(if $(findstring arm,${UNAME_P}),linux/arm64,linux/amd64)
PLATFORM:=$(if ${PLATFORM_OVERRIDE},${PLATFORM_OVERRIDE},${PLATFORM_AUTOMATIC})
PYTHON_VERSIONS_AUTOMATIC:=3.10
PYTHON_VERSIONS:=$(if ${PYTHON_VERSIONS_OVERRIDE},${PYTHON_VERSIONS_OVERRIDE},${PYTHON_VERSIONS_AUTOMATIC})

.PHONY: default
default: test
Expand All @@ -33,8 +30,7 @@ default: test
build:
@docker build ${MAKEFILE_DIR} \
--platform=${PLATFORM} \
-t ${IMAGE_NAME}:local \
--build-arg='PYTHON_VERSIONS=${PYTHON_VERSIONS}'
-t ${IMAGE_NAME}:local

# Run the local tag as a container.
.PHONY: run
Expand Down Expand Up @@ -62,12 +58,12 @@ run.%:
-e GITHUB_ACTIONS="true" \
${IMAGE_NAME}:$* /bin/bash

# Ensure python versions are usable. Cannot be automatically used with PYTHON_VERSIONS_OVERRIDE.
# Ensures python versions are usable.
.PHONY: test
test: build
@docker run --rm \
--platform=${PLATFORM} \
ghcr.io/newrelic/python-agent-ci:local \
${IMAGE_NAME}:local \
/bin/bash -c '\
python3.10 --version && \
touch tox.ini && tox --version && \
Expand Down
50 changes: 0 additions & 50 deletions .github/containers/install-python.sh

This file was deleted.

2 changes: 0 additions & 2 deletions .github/containers/requirements-tools.txt

This file was deleted.

2 changes: 0 additions & 2 deletions .github/containers/requirements-tox.txt

This file was deleted.

5 changes: 0 additions & 5 deletions .github/containers/requirements.txt

This file was deleted.

70 changes: 70 additions & 0 deletions .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Copyright 2010 New Relic, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
name: Benchmarks

on:
pull_request:

permissions:
contents: read

concurrency:
group: ${{ github.ref || github.run_id }}-${{ github.workflow }}
cancel-in-progress: true

jobs:
# Benchmarks
benchmark:
runs-on: ubuntu-24.04
timeout-minutes: 30
strategy:
matrix:
python: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]

env:
ASV_FACTOR: "1.1"
BASE_SHA: ${{ github.event.pull_request.base.sha }}

steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 5.0.0
with:
fetch-depth: 0

- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # 6.0.0
with:
python-version: "${{ matrix.python }}"

- name: Fetch git tags
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git fetch --tags origin

- name: Install Dependencies
run: |
pip install --upgrade pip
pip install asv virtualenv

- name: Configure Machine Information
run: |
asv machine --yes

- name: Run Benchmark
run: |
asv continuous \
--show-stderr \
--split \
--factor "${ASV_FACTOR}" \
--python=${{ matrix.python }} \
"${BASE_SHA}" "${GITHUB_SHA}"
6 changes: 2 additions & 4 deletions .github/workflows/build-ci-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ jobs:

- name: Login to GitHub Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # 3.5.0
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # 3.6.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
Expand All @@ -89,8 +89,6 @@ jobs:
platforms: ${{ matrix.platform }}
labels: ${{ steps.meta.outputs.labels }}
outputs: type=image,name=ghcr.io/${{ steps.image-name.outputs.IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true
cache-from: type=gha,scope=build-${{ matrix.cache_tag }}
cache-to: type=gha,scope=build-${{ matrix.cache_tag }}

- name: Export Digest
run: |
Expand Down Expand Up @@ -124,7 +122,7 @@ jobs:

- name: Login to GitHub Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # 3.5.0
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # 3.6.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
Expand Down
Loading