diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml index c1f48dfe..ccc5fb54 100644 --- a/.github/workflows/CI.yaml +++ b/.github/workflows/CI.yaml @@ -39,6 +39,7 @@ jobs: uses: actions/checkout@v4 with: submodules: true + persist-credentials: false - name: Check License uses: apache/skywalking-eyes/header@501a28d2fb4a9b962661987e50cf0219631b32ff - name: Set up Python @@ -61,6 +62,7 @@ jobs: uses: actions/checkout@v4 with: submodules: true + persist-credentials: false - name: Set up Python uses: actions/setup-python@v5 with: @@ -82,6 +84,8 @@ jobs: agent: ${{ steps.filter.outputs.agent }} steps: - uses: actions/checkout@v4 # required for push event + with: + persist-credentials: false - name: Check for file changes uses: getsentry/paths-filter@v2.11.1 id: filter @@ -116,6 +120,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + persist-credentials: false - id: set-matrix run: | sudo apt-get install jq @@ -142,6 +148,7 @@ jobs: uses: actions/checkout@v4 with: submodules: true + persist-credentials: false - name: Build SkyWalking Python agent base plugin image run: | docker build --build-arg BASE_PYTHON_IMAGE -t apache/skywalking-python-agent:latest-plugin --no-cache . -f tests/plugin/Dockerfile.plugin @@ -175,6 +182,7 @@ jobs: uses: actions/checkout@v4 with: submodules: true + persist-credentials: false - name: Install docker-compose shell: bash if: runner.os != 'Windows' @@ -221,6 +229,7 @@ jobs: uses: actions/checkout@v4 with: submodules: true + persist-credentials: false - name: Build SkyWalking Python agent base e2e image run: | docker build --build-arg BASE_PYTHON_IMAGE -t apache/skywalking-python-agent:latest-e2e --no-cache . -f tests/e2e/base/Dockerfile.e2e @@ -273,6 +282,7 @@ jobs: uses: actions/checkout@v4 with: submodules: true + persist-credentials: false - name: Pull SkyWalking Python agent base image uses: actions/download-artifact@v4 with: diff --git a/.github/workflows/dead-link-checker.yaml b/.github/workflows/dead-link-checker.yaml index 6414bfca..e1fa0e84 100644 --- a/.github/workflows/dead-link-checker.yaml +++ b/.github/workflows/dead-link-checker.yaml @@ -36,6 +36,8 @@ jobs: if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking-python') || (github.event_name != 'schedule') steps: - uses: actions/checkout@v4 + with: + persist-credentials: false - uses: gaurav-nelson/github-action-markdown-link-check@v1 with: use-quiet-mode: 'no' diff --git a/.github/workflows/publish-docker.yaml b/.github/workflows/publish-docker.yaml index fcf6e071..e5d00e58 100644 --- a/.github/workflows/publish-docker.yaml +++ b/.github/workflows/publish-docker.yaml @@ -37,6 +37,7 @@ jobs: - uses: actions/checkout@v4 with: submodules: true + persist-credentials: false - name: Set environment variables run: | if [[ ${{ github.event_name }} == "release" ]]; then diff --git a/CHANGELOG.md b/CHANGELOG.md index fb073318..5d258c2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,283 +1,3 @@ ## Change Logs -### 1.2.0 - -- Feature: - - Drop support for 3.7 (#356) - - Support sampling rate setup. Provide `SW_SAMPLE_N_PER_3_SECS` environment variable to control it (#357) - - Add support for 3.13 (#366) - - Add isSizeLimited in SegmentObject (#367) - -- Plugins: - - Add gRPC plugin (#362) - -- Fixes: - - Fix: user/password replacement is not allowed for relative URLs (#349) - - Fix pulsar client does not support init arguments other than service_url (#351) - - Fix outdated make dev-fix rule in CodeStyle.md (#350) - - Fix TestClient for fastapi cause the req.client None error (#355) - - Fix agent start failed in async mode when profiling is enabled (#360) - -### 1.1.0 - -- Feature: - - Users now can specify the `SW_AGENT_ASYNCIO_ENHANCEMENT` environment variable to enable the performance enhancement with asyncio (#316) - - Support printing Trace IDs (TID) to collected application logs (#323) - -- Plugins: - - Add neo4j plugin.(#312) - - Add pulsar plugin.(#345) - -- Fixes: - - Fix unexpected 'No active span' IllegalStateError (#311) - - **Tentative**: Set upper bound <=5.9.5 for psutil package due to test failure. (#326) - - Remove `DeprecationWarning` from `pkg_resources` by replace it with `importlib_metadata` (#329) - - Fix unexpected 'decode' AttributeError when MySQLdb module is mapped by PyMySQL (#336) - - Fix SkyWalking agent failed to start if using kafka protocol with sasl_mechanism=PLAIN. (#343) - -### 1.0.1 - -- Feature: - - Add a new workflow to push docker images for arm64 and amd64 (#297) - -- Plugins: - - Optimize loguru reporter plugin.(#302) - -- Fixes: - - Fix sw8 loss when use aiohttp (#299, issue#10669) - - **Critical**: Fix a bug that leads to high cpu usage (#300, issue#10672) - -- Others: - - Use Kraft mode in E2E Kafka reporter tests (#303) - -### 1.0.0 - -- **Important Note and Breaking Changes:** - - **BREAKING**: Python 3.6 is no longer supported and may not function properly, Python 3.11 support is added and tested. - - **BREAKING**: A number of common configuration options and environment variables are renamed to follow the convention of Java agent, - please check with the latest official documentation before upgrading. (#273, #282) - https://skywalking.apache.org/docs/skywalking-python/v1.0.0/en/setup/configuration/ - - **BREAKING**: All agent core capabilities are now covered by test cases and enabled by default (Trace, Log, PVM runtime metrics, Profiler) - - **BREAKING**: DockerHub Python agent images since v1.0.0 will no longer include the `run` part in `ENTRYPOINT ["sw-python", "run"]`, - user should prefix their command with `[-d/--debug] run [-p/--prefork] ` for extra flexibility. - - Packaged wheel now provides a extra [all] option to support all three report protocols - -- Feature: - - Add support for Python 3.11 (#285) - - Add MeterReportService (gRPC, Kafka reporter) (default:enabled) (#231, #236, #241, #243) - - Add reporter for PVM runtime metrics (default:enabled) (#238, #247) - - Add Greenlet profiler (#246) - - Add test and support for Python Slim base images (#249) - - Add support for the tags of Virtual Cache for Redis (#263) - - Add a new configuration `kafka_namespace` to prefix the kafka topic names (#277) - - Add log reporter support for loguru (#276) - - Add **experimental** support for explicit os.fork(), restarts agent in forked process (#286) - - Add **experimental** sw-python CLI `sw-python run [-p]` flag (-p/--prefork) to enable non-intrusive uWSGI and Gunicorn postfork support (#288) - -- Plugins: - - Add aioredis, aiormq, amqp, asyncpg, aio-pika, kombu RMQ plugins (#230 Missing test coverage) - - Add Confluent Kafka plugin (#233 Missing test coverage) - - Add HBase plugin Python HappyBase model (#266) - - Add FastAPI plugin websocket protocol support (#269) - - Add Websockets (client) plugin (#269) - - Add HTTPX plugin (#283) - -- Fixes: - - Allow RabbitMQ BlockingChannel.basic_consume() to link with outgoing spans (#224) - - Fix RabbitMQ basic_get bug (#225, #226) - - Fix case when tornado socket name is None (#227) - - Fix misspelled text "PostgreSLQ" -> "PostgreSQL" in Postgres-related plugins (#234) - - Make sure `span.component` initialized as Unknown rather than 0 (#242) - - Ignore websocket connections inside fastapi temporarily (#244, issue#9724) - - Fix Kafka-python plugin SkyWalking self reporter ignore condition (#249) - - Add primary endpoint in tracing context and endpoint info to log reporter (#261) - - Enforce tag class type conversion (#262) - - Fix sw_logging (log reporter) potentially throw exception leading to traceback confusion (#267) - - Avoid reporting meaningless tracecontext with logs when there's no active span, UI will now show empty traceID (#272) - - Fix exception handler in profile_context (#273) - - Add namespace suffix to service name (#275) - - Add periodical instance property report to prevent data loss (#279) - - Fix sw_logging when `Logger.disabled` is true (#281) - -- Docs: - - New documentation on how to test locally (#222) - - New documentation on the newly added meter reporter feature (#240) - - New documentation on the newly added greenlet profiler and the original threading profiler (#250) - - Overhaul documentation on development setup and testing (#249) - - Add tables to state currently supported features of Python agent. (#271) - - New configuration documentation generator (#273) - -- Others: - - Pin CI SkyWalking License Eye (#221) - - Fix dead link due to the 'next' url change (#235) - - Pin CI SkyWalking Infra-E2E (#251) - - Sync OAP, SWCTL versions in E2E and fix test cases (#249) - - Overhaul development flow with Poetry (#249) - - Fix grpcio-tools generated message type (#253) - - Switch plugin tests to use slim Python images (#268) - - Add unit tests to sw_filters (#269) - -### 0.8.0 -- Feature: - - Update mySQL plugin to support two different parameter keys. (#186) - - Add a `SW_AGENT_LOG_REPORTER_SAFE_MODE` option to control the HTTP basic auth credential filter (#200) - -- Plugins: - - Add Psycopg(3.x) support (#168) - - Add MySQL support (#178) - - Add FastAPI support (#181) - - Drop support for flask 1.x due to dependency issue in Jinja2 and EOL (#195) - - Add Bottle support (#214) - -- Fixes: - - Spans now correctly reference finished parents (#161) - - Remove potential password leak from Aiohttp outgoing url (#175) - - Handle error when REMOTE_PORT is missing in Flask (#176) - - Fix sw-rabbitmq TypeError when there are no headers (#182) - - Fix agent bootstrap traceback not shown in sw-python CLI (#183) - - Fix local log stack depth overridden by agent log formatter (#192) - - Fix typo that cause user sitecustomize.py not loaded (#193) - - Fix instance property wrongly shown as UNKNOWN in OAP (#194) - - Fix multiple components inconsistently named on SkyWalking UI (#199) - - Fix SW_AGENT_LOGGING_LEVEL not properly set during startup (#196) - - Unify the http tag name with other agents (#208) - - Remove namespace to instance properties and add pid property (#205) - - Fix the properties are not set correctly (#198) - - Improved ignore path regex (#210) - - Fix sw_psycopg2 register_type() (#211) - - Fix psycopg2 register_type() second arg default (#212) - - Enhance Traceback depth (#206) - - Set spans whose http code > 400 to error (#187) - -- Docs: - - Add a FAQ doc on `how to use with uwsgi` (#188) - -- Others: - - Refactor current Python agent docs to serve on SkyWalking official website (#162) - - Refactor SkyWalking Python to use the CLI for CI instead of legacy setup (#165) - - Add support for Python 3.10 (#167) - - Move flake configs all together (#169) - - Introduce another set of flake8 extensions (#174) - - Add E2E test coverage for trace and logging (#199) - - Now Log reporter `cause_exception_depth` traceback limit defaults to 10 - - Enable faster CI by categorical parallelism (#170) - -### 0.7.0 - -- Feature: - - Support collecting and reporting logs to backend (#147) - - Support profiling Python method level performance (#127 - - Add a new `sw-python` CLI that enables agent non-intrusive integration (#156) - - Add exponential reconnection backoff strategy when OAP is down (#157) - - Support ignoring traces by http method (#143) - - `NoopSpan` on queue full, propagation downstream (#141) - - Support agent namespace. (#126) - - Support secure connection option for GRPC and HTTP (#134) - -- Plugins: - - Add Falcon Plugin (#146) - - Update `sw_pymongo.py` to be compatible with cluster mode (#150) - - Add Python celery plugin (#125) - - Support tornado5+ and tornado6+ (#119) - -- Fixes: - - Remove HTTP basic auth credentials from log, stacktrace, segment (#152) - - Fix `@trace` decorator not work (#136) - - Fix grpc disconnect, add `SW_AGENT_MAX_BUFFER_SIZE` to control buffer queue size (#138) - -- Others: - - Chore: bump up `requests` version to avoid license issue (#142) - - Fix module wrapt as normal install dependency (#123) - - Explicit component inheritance (#132) - - Provide dockerfile & images for easy integration in containerized scenarios (#159) - -### 0.6.0 - -- Fixes: - - Segment data loss when gRPC timing out. (#116) - - `sw_tornado` plugin async handler status set correctly. (#115) - - `sw_pymysql` error when connection haven't db. (#113) - -### 0.5.0 - -- New plugins - - Pyramid Plugin (#102) - - AioHttp Plugin (#101) - - Sanic Plugin (#91) - -- API and enhancements - - `@trace` decorator supports `async` functions - - Supports async task context - - Optimized path trace ignore - - Moved exception check to `Span.__exit__` - - Moved Method & Url tags before requests - -- Fixes: - - `BaseExceptions` not recorded as errors - - Allow pending data to send before exit - - `sw_flask` general exceptions handled - - Make `skywalking` logging Non-global - -- Chores and tests - - Make tests really run on specified Python version - - Deprecate 3.5 as it's EOL - -### 0.4.0 - -- Feature: Support Kafka reporter protocol (#74) -- BugFix: Move generated packages into `skywalking` namespace to avoid conflicts (#72) -- BugFix: Agent cannot reconnect after server is down (#79) -- Test: Mitigate unsafe yaml loading (#76) - -### 0.3.0 - -- New plugins - - Urllib3 Plugin (#69) - - Elasticsearch Plugin (#64) - - PyMongo Plugin (#60) - - Rabbitmq Plugin (#53) - - Make plugin compatible with Django (#52) - -- API - - Add process propagation (#67) - - Add tags to decorators (#65) - - Add Check version of packages when install plugins (#63) - - Add thread propagation (#62) - - Add trace ignore (#59) - - Support snapshot context (#56) - - Support correlation context (#55) - -- Chores and tests - - Test: run multiple versions of supported libraries (#66) - - Chore: add pull request template for plugin (#61) - - Chore: add dev doc and reorganize the structure (#58) - - Test: update test health check (#57) - - Chore: add make goal to package release tar ball (#54) - - - -### 0.2.0 - -- New plugins - - Kafka Plugin (#50) - - Tornado Plugin (#48) - - Redis Plugin (#44) - - Django Plugin (#37) - - PyMsql Plugin (#35) - - Flask plugin (#31) - -- API - - Add ignore_suffix Config (#40) - - Add missing `log` method and simplify test codes (#34) - - Add content equality of SegmentRef (#30) - - Validate carrier before using it (#29) - -- Chores and tests - - Test: print the diff list when validation failed (#46) - - Created venv builders for linux/windows and req flashers + use documentation (#38) - -### 0.1.0 - -- API: agent core APIs, check [the APIs and the examples](https://github.com/apache/skywalking-python/blob/3892cab9d5d2c03107cfb2b1c59a6c77c5c3cc35/README.md#api) -- Plugin: built-in libraries `http`, `urllib.request` and third-party library `requests` are supported. -- Test: agent test framework is setup, and the corresponding tests of aforementioned plugins are also added. +Head to the [release page](https://github.com/apache/skywalking-python/releases) for the detailed changes. diff --git a/pyproject.toml b/pyproject.toml index da356885..55a1334a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ [tool.poetry] name = "apache-skywalking" -version = "1.1.0" +version = "1.2.0" description = "The Python Agent for Apache SkyWalking, which provides the native tracing/metrics/logging/profiling abilities for Python projects." license = "Apache-2.0" authors = ["Apache Software Foundation "]