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
2 changes: 1 addition & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ When generating code for this repository:

### Technology Stack

- **Python Versions**: 3.9-3.13 (use 3.9-compatible features for maximum compatibility)
- **Python Versions**: 3.10-3.14 (use 3.10-compatible features for maximum compatibility)
- **Core Dependencies**: OpenTelemetry [API and SDK](https://github.com/open-telemetry/opentelemetry-python), and [instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib/) packages (see pyproject.toml)
- **Purpose**: Custom OpenTelemetry distribution for SolarWinds APM backend

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run_tox_lint_format.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-minor: ["10", "11", "12", "13"]
python-minor: ["10", "11", "12", "13", "14"]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup Python
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run_tox_ruff_format.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-minor: ["10", "11", "12", "13"]
python-minor: ["10", "11", "12", "13", "14"]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup Python
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run_tox_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-minor: ["10", "11", "12", "13"]
python-minor: ["10", "11", "12", "13", "14"]
apm-env: ["test"]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
Expand Down
12 changes: 6 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,18 +44,18 @@ docker-compose run aarch64

### Regression Tests

Automated testing of this repo uses [tox](https://tox.readthedocs.io) and runs in Python 3.9, 3.10, 3.11 and/or 3.12 because these are the versions supported by [OTel Python](https://github.com/open-telemetry/opentelemetry-python/blob/main/tox.ini). Testing can be run inside a build container which provides all dependencies. Here is how to set up then run unit and integration tests locally:
Automated testing of this repo uses [tox](https://tox.readthedocs.io) and runs in Python 3.10, 3.11, 3.12, 3.13, and/or 3.14 because these are the versions supported by [OTel Python](https://github.com/open-telemetry/opentelemetry-python/blob/main/tox.ini). Testing can be run inside a build container which provides all dependencies. Here is how to set up then run unit and integration tests locally:
Comment thread
tammy-baylis-swi marked this conversation as resolved.

1. Create and run a Docker build container as described above.
2. To run all tests for a specific version, provide tox options as a string. For example, to run in Python 3.9: `make tox OPTIONS="-e py39-test"`.
2. To run all tests for a specific version, provide tox options as a string. For example, to run in Python 3.11: `make tox OPTIONS="-e py311-test"`.
3. To run tests specific to Lambda instrumentation in Python 3.13: `make tox OPTIONS="-e py313-lambda"`.
4. (WARNING: slow!) To run all tests for all supported Python environments, as well as linting and formatting: `make tox`

Other regular `tox` arguments can be included in `OPTIONS`. Some examples:

```
# Recreate tox environment for Python 3.9 tests
make tox OPTIONS="--recreate -e py39-test"
# Recreate tox environment for Python 3.11 tests
make tox OPTIONS="--recreate -e py311-test"

# Run only the Scenario 8 integration test, in all environments
make tox OPTIONS="-- tests/integration/test_scenario_1.py"
Expand All @@ -73,10 +73,10 @@ Code formatting and linting are run using `black`, `isort`, `flake8`, and `pylin
./run_docker_dev.sh
make tox OPTIONS="-e py312-lint -- --check-only"

# Run formatting and linting tools for Python 3.9,
# Run formatting and linting tools for Python 3.11,
# and automatically fix issues if possible:
./run_docker_dev.sh
make tox OPTIONS="-e py39-lint"
make tox OPTIONS="-e py311-lint"
```

`ruff` is also available to fix formatting: `make tox OPTIONS="-e ruff"`.
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Python solarwinds-apm

[![Minimum Python Version](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
[![Minimum Python Version](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![Release](https://img.shields.io/github/v/release/solarwinds/apm-python?include_prereleases&style=)](https://github.com/solarwinds/apm-python/releases/)
[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg?color=red)](https://github.com/solarwinds/apm-python/blob/main/LICENSE)

An [OpenTelemetry Python](https://opentelemetry-python.readthedocs.io/) distribution for SolarWinds Observability. Provides automatic configuration, instrumentation, and APM data export for Python applications.

----
## Requirements
All published artifacts support Python 3.9 or higher. A full list of system requirements is available at [SolarWinds Observability System Requirements](https://documentation.solarwinds.com/en/success_center/observability/default.htm#cshid=app-sysreqs-python-agent).
All published artifacts support Python 3.10 or higher. A full list of system requirements is available at [SolarWinds Observability System Requirements](https://documentation.solarwinds.com/en/success_center/observability/default.htm#cshid=app-sysreqs-python-agent).

See [CONTRIBUTING.md](https://github.com/solarwinds/apm-python/blob/main/CONTRIBUTING.md) for how to build for development.

Expand Down
12 changes: 6 additions & 6 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
skipsdist = True
skip_missing_interpreters = True
envlist =
py3{9,10,11,12,13}-test
py3{9,10,11,12,13,14}-lambda
py3{9,10,11,12,13}-lint
py3{10,11,12,13,14}-test
py3{10,11,12,13,14}-lambda
py3{10,11,12,13,14}-lint
Comment thread
tammy-baylis-swi marked this conversation as resolved.
ruff

[testenv]
Expand All @@ -18,7 +18,7 @@ deps =
commands =
pytest {posargs}

[testenv:py3{9,10,11,12,13}-test]
[testenv:py3{10,11,12,13,14}-test]
changedir = tests
deps =
{[testenv]deps}
Expand All @@ -27,13 +27,13 @@ setenv =
SW_APM_COLLECTOR = apm.collector.st-ssp.solarwinds.com
SW_APM_SERVICE_KEY = foo-bar:service-key

[testenv:py3{9,10,11,12,13,14}-lambda]
[testenv:py3{10,11,12,13,14}-lambda]
changedir = lambda/tests
deps =
{[testenv]deps}
-r {toxinidir}/lambda/tests/requirements.txt

[testenv:py3{9,10,11,12,13}-lint]
[testenv:py3{10,11,12,13,14}-lint]
deps =
{[testenv]deps}
opentelemetry-api
Expand Down
Loading