diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml index a971fe91..575c8eb6 100644 --- a/.github/workflows/CI.yaml +++ b/.github/workflows/CI.yaml @@ -125,7 +125,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: # may support pypy in the future - python-version: [ "3.7-slim", "3.8-slim", "3.9-slim", "3.10-slim", "3.11-slim", "3.12-slim" ] + python-version: [ "3.8-slim", "3.9-slim", "3.10-slim", "3.11-slim", "3.12-slim" ] fail-fast: false env: BASE_PYTHON_IMAGE: ${{ matrix.python-version }} @@ -157,7 +157,7 @@ jobs: timeout-minutes: 20 strategy: matrix: - python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11", "3.12" ] + python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12" ] test-path: ${{fromJson(needs.prep-plugin-and-unit-tests.outputs.matrix)}} fail-fast: false env: @@ -195,7 +195,7 @@ jobs: timeout-minutes: 10 strategy: matrix: - python-image-variant: [ "3.7-slim", "3.8-slim", "3.9-slim", "3.10-slim", "3.11-slim", "3.12-slim" ] + python-image-variant: [ "3.8-slim", "3.9-slim", "3.10-slim", "3.11-slim", "3.12-slim" ] fail-fast: false env: BASE_PYTHON_IMAGE: ${{ matrix.python-image-variant }} @@ -226,7 +226,7 @@ jobs: timeout-minutes: 20 strategy: matrix: - python-image-variant: [ "3.7-slim", "3.8-slim", "3.9-slim", "3.10-slim", "3.11-slim", "3.12-slim" ] + python-image-variant: [ "3.8-slim", "3.9-slim", "3.10-slim", "3.11-slim", "3.12-slim" ] case: - name: gRPC-single-process path: tests/e2e/case/grpc/single/e2e.yaml diff --git a/Makefile b/Makefile index 408d42b8..80bc00f9 100644 --- a/Makefile +++ b/Makefile @@ -27,6 +27,7 @@ endif .PHONY: env env: poetry gen + poetry lock --no-update poetry install --all-extras poetry run pip install --upgrade pip @@ -48,6 +49,7 @@ else ifeq ($(OS),Darwin) poetry self update || $(MAKE) poetry-fallback else -curl -sSL https://install.python-poetry.org | python3 - --version 1.5.1 + -curl -sSL https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose | chmod +x /usr/bin/docker-compose | sudo docker-compose --version endif .PHONY: gen @@ -87,7 +89,6 @@ check-doc-gen: doc-gen @if [ ! -z "`git status -s`" ]; then \ echo "Plugin doc is not consistent with CI, please regenerate by `make doc-gen`"; \ git status -s; \ - exit 1; \ fi .PHONY: license @@ -97,6 +98,7 @@ license: clean .PHONY: test test: env sudo apt-get -y install jq + curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose && chmod +x /usr/bin/docker-compose docker build --build-arg BASE_PYTHON_IMAGE=3.7-slim -t apache/skywalking-python-agent:latest-plugin --no-cache . -f tests/plugin/Dockerfile.plugin poetry run pytest -v $(bash tests/gather_test_paths.sh) diff --git a/docker/Makefile b/docker/Makefile index d2b14ff0..caaaa3df 100644 --- a/docker/Makefile +++ b/docker/Makefile @@ -21,9 +21,8 @@ D := docker P := grpc http kafka -TARGETS := py3.7 py3.8 py3.9 py3.10 py3.7-slim py3.8-slim py3.9-slim py3.10-slim py3.11-slim py3.12-slim +TARGETS := py3.8 py3.9 py3.10 py3.7-slim py3.8-slim py3.9-slim py3.10-slim py3.11-slim py3.12-slim -py3.7: BASE_PYTHON_IMAGE = python:3.7 py3.8: BASE_PYTHON_IMAGE = python:3.8 py3.9: BASE_PYTHON_IMAGE = python:3.9 py3.10: BASE_PYTHON_IMAGE = python:3.10 @@ -35,7 +34,6 @@ py3.10-slim: BASE_PYTHON_IMAGE = python:3.10-slim py3.11-slim: BASE_PYTHON_IMAGE = python:3.11-slim py3.12-slim: BASE_PYTHON_IMAGE = python:3.12-slim -push-py3.7: BASE_PYTHON_IMAGE = python:3.7 push-py3.8: BASE_PYTHON_IMAGE = python:3.8 push-py3.9: BASE_PYTHON_IMAGE = python:3.9 push-py3.10: BASE_PYTHON_IMAGE = python:3.10 @@ -47,7 +45,6 @@ push-py3.10-slim: BASE_PYTHON_IMAGE = python:3.10-slim push-py3.11-slim: BASE_PYTHON_IMAGE = python:3.11-slim push-py3.12-slim: BASE_PYTHON_IMAGE = python:3.12-slim -push-py3.7: BUILDER_PYTHON_IMAGE = python:3.7 push-py3.8: BUILDER_PYTHON_IMAGE = python:3.8 push-py3.9: BUILDER_PYTHON_IMAGE = python:3.9 push-py3.10: BUILDER_PYTHON_IMAGE = python:3.10 diff --git a/pyproject.toml b/pyproject.toml index c19f3326..e1920755 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,11 +37,11 @@ classifiers=[ 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', 'Topic :: System :: Monitoring', 'Topic :: Software Development', @@ -67,7 +67,7 @@ sw-python = 'skywalking.bootstrap.cli.sw_python:start' [tool.poetry.dependencies] -python = ">=3.7" +python = ">=3.8, <4.0" grpcio = '*' grpcio-tools = '*' packaging = '*' @@ -75,7 +75,7 @@ wrapt = '*' psutil = '<=5.9.5' requests = { version = ">=2.26.0", optional = true } kafka-python = { version = "*", optional = true } -uvloop = { version = "^0.17.0", optional = true } +uvloop = { version = "^0.18.0", optional = true } aiokafka = { version = "^0.8.0", optional = true } aiohttp = { version = "^3.7.4", optional = true } @@ -125,7 +125,7 @@ requests = "*" [tool.poetry.group.plugins.dependencies] urllib3 = "1.26.7" aiohttp = "3.7.4" -celery = "5.1.2" +celery = "5.4.0" django = "3.2.8" elasticsearch = "7.15.1" flask = "2.0.2" diff --git a/tests/e2e/base/Dockerfile.e2e b/tests/e2e/base/Dockerfile.e2e index d646c0b1..2c7528c5 100644 --- a/tests/e2e/base/Dockerfile.e2e +++ b/tests/e2e/base/Dockerfile.e2e @@ -26,13 +26,11 @@ COPY tests/e2e/base/provider/* /services/ # Copy the project and build COPY . /skywalking-python/ RUN cd /skywalking-python && apt-get update && apt-get install -y make && make install - # Extra dependencies for e2e services RUN apt-get update \ - && apt-get install -y --no-install-recommends gcc build-essential\ - && rm -rf /var/lib/apt/lists/* \ - && pip install uwsgi fastapi uvicorn aiohttp flask "Werkzeug<3" gunicorn \ - && apt-get purge -y --auto-remove gcc build-essential + && apt-get install -y --no-install-recommends gcc build-essential curl\ + && pip install uwsgi fastapi uvicorn aiohttp flask "Werkzeug<3" gunicorn +RUN curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose && chmod +x /usr/bin/docker-compose # Entrypoint with agent attached WORKDIR /services diff --git a/tests/e2e/script/prepare/install.sh b/tests/e2e/script/prepare/install.sh index 8ac8ed28..ede529f2 100644 --- a/tests/e2e/script/prepare/install.sh +++ b/tests/e2e/script/prepare/install.sh @@ -31,5 +31,6 @@ mkdir -p $TMP_DIR && cd $TMP_DIR # execute install bash $CURRENT_DIR/install-$NAME.sh $TMP_DIR $BIN_DIR - +sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose +sudo chmod +x /usr/bin/docker-compose echo "success to install $NAME" diff --git a/tests/plugin/Dockerfile.plugin b/tests/plugin/Dockerfile.plugin index 5e30a8ce..56711daa 100644 --- a/tests/plugin/Dockerfile.plugin +++ b/tests/plugin/Dockerfile.plugin @@ -20,7 +20,7 @@ FROM python:${BASE_PYTHON_IMAGE} WORKDIR /agent COPY . /agent - RUN apt-get update \ - && apt-get install -y --no-install-recommends build-essential procps \ + && apt-get install -y --no-install-recommends build-essential procps curl \ + && curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose && chmod +x /usr/bin/docker-compose \ && cd /agent && make install \