From b6b31f1c1ec64d220ac46890563f1789d219b85c Mon Sep 17 00:00:00 2001 From: Pablo Galindo Date: Tue, 28 Nov 2023 14:34:33 +0000 Subject: [PATCH 1/5] Prepare for 1.3.0 release See changelog for more details. Signed-off-by: Pablo Galindo --- .bumpversion.cfg | 2 +- NEWS.rst | 13 +++++++++++++ src/pystack/_version.py | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 54281962..0023175d 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.2.0 +current_version = 1.3.0 commit = True message = Prepare for {new_version} release diff --git a/NEWS.rst b/NEWS.rst index be71d127..6536f179 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -8,6 +8,19 @@ Changelog .. towncrier release notes start +pystack 1.3.0 (2023-11-28) +-------------------------- + +Bug Fixes +~~~~~~~~~ + +- Add a patch to the bundled elfutils used to create wheels to account for a bug when analysing cores with interleaved segments (#153) +- Removed the unused ``--self`` flag. (#141) +- Fix some instances when identifying the pthread id was failing in systems without GLIBC (#152) +- Fix several some race conditions when stopping threads in multithreaded programs (#155) +- Ensure log messages that contain non-UTF-8 data are not lost (#155) + + pystack 1.2.0 (2023-07-31) -------------------------- diff --git a/src/pystack/_version.py b/src/pystack/_version.py index c68196d1..67bc602a 100644 --- a/src/pystack/_version.py +++ b/src/pystack/_version.py @@ -1 +1 @@ -__version__ = "1.2.0" +__version__ = "1.3.0" From 6e3dd1e8f4149b279093bdbd1601f015c7ffb112 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 16:55:29 +0000 Subject: [PATCH 2/5] build(deps): bump actions/setup-python from 4 to 5 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build_wheels.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint_and_docs.yml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 351f35da..ad0f1305 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -88,7 +88,7 @@ jobs: name: artifact path: dist - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.11" - name: Set up dependencies @@ -126,7 +126,7 @@ jobs: name: artifact path: dist - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "${{matrix.python_version}}-dev" - name: Set up dependencies diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 7baa8d64..fe52155c 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -29,7 +29,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" - name: Set up dependencies diff --git a/.github/workflows/lint_and_docs.yml b/.github/workflows/lint_and_docs.yml index f51c1258..da8280da 100644 --- a/.github/workflows/lint_and_docs.yml +++ b/.github/workflows/lint_and_docs.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: "3.10" - name: Set up dependencies @@ -38,7 +38,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" - name: Set up dependencies From 890845f14533eb207cf8c65de23d9b9a357685c6 Mon Sep 17 00:00:00 2001 From: Gus Monod Date: Thu, 14 Dec 2023 19:17:54 -0500 Subject: [PATCH 3/5] Update `upload-artifact` and `download-artifact` Both need to be updated at once, and also the uploaded artifacts now must be each be named something different and are made immutable. This means that we cannot keep appending to the same archive called "artifact", and that we instead must create one artifact for the sdist and one for each architecture. Note that the `upload_pypi` step also needs to be changed to ensure it downloads all of the artifacts and extracts them as before. Signed-off-by: Gus Monod --- .github/workflows/build_wheels.yml | 74 +++++++++++++++--------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index ad0f1305..109b1111 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -24,8 +24,9 @@ jobs: - name: Build sdist run: pipx run build --sdist - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: + name: sdist path: dist/*.tar.gz choose_architectures: @@ -35,20 +36,18 @@ jobs: - id: x86_64 run: echo "cibw_arch=x86_64" >> $GITHUB_OUTPUT - id: aarch64 - if: github.event_name == 'release' && github.event.action == 'published' run: echo "cibw_arch=aarch64" >> $GITHUB_OUTPUT outputs: cibw_arches: ${{ toJSON(steps.*.outputs.cibw_arch) }} build_wheels: needs: [build_sdist, choose_architectures] - name: Wheel for Linux-${{ matrix.cibw_python }}-${{ matrix.cibw_arch }} + name: Wheel for Linux ${{ matrix.cibw_arch }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest] - cibw_python: ["cp37-*", "cp38-*", "cp39-*", "cp310-*", "cp311-*", "cp312-*"] cibw_arch: ${{ fromJSON(needs.choose_architectures.outputs.cibw_arches) }} steps: @@ -58,20 +57,21 @@ jobs: - uses: docker/setup-qemu-action@v3 if: runner.os == 'Linux' name: Set up QEMU - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: - name: artifact + name: sdist - name: Extract sdist run: | tar zxvf *.tar.gz --strip-components=1 - name: Build wheels uses: pypa/cibuildwheel@v2.16.2 env: - CIBW_BUILD: ${{ matrix.cibw_python }} + CIBW_BUILD: "cp3{7..12}-*" CIBW_ARCHS_LINUX: ${{ matrix.cibw_arch }} CIBW_PRERELEASE_PYTHONS: True - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: + name: ${{ matrix.cibw_arch }}-wheels path: ./wheelhouse/*.whl test_attaching_to_old_interpreters: @@ -83,9 +83,9 @@ jobs: python_version: ["2.7", "3.6"] steps: - uses: actions/checkout@v4 - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: - name: artifact + name: "x86_64-wheels" path: dist - name: Set up Python uses: actions/setup-python@v5 @@ -121,14 +121,14 @@ jobs: python_version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v4 - - uses: actions/download-artifact@v3 - with: - name: artifact - path: dist - name: Set up Python uses: actions/setup-python@v5 with: python-version: "${{matrix.python_version}}-dev" + - uses: actions/download-artifact@v4 + with: + name: "x86_64-wheels" + path: dist - name: Set up dependencies run: | sudo add-apt-repository ppa:deadsnakes/ppa @@ -163,13 +163,13 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/download-artifact@v3 - with: - name: artifact - path: dist - name: Set up dependencies run: | apk add --update alpine-sdk bash alpine-sdk python3 python3-dev gdb musl-dbg python3-dbg + - uses: actions/download-artifact@v4 + with: + name: "x86_64-wheels" + path: dist - name: Install Python dependencies run: | python3 -m venv venv @@ -193,10 +193,6 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/download-artifact@v3 - with: - name: artifact - path: dist - name: Set up dependencies run: | dnf install -y \ @@ -207,6 +203,10 @@ jobs: python3-devel dnf debuginfo-install -y \ python3 + - uses: actions/download-artifact@v4 + with: + name: "x86_64-wheels" + path: dist - name: Install Python dependencies run: | python3 -m pip install --upgrade pip @@ -228,10 +228,6 @@ jobs: options: --cap-add=SYS_PTRACE --security-opt seccomp=unconfined steps: - uses: actions/checkout@v4 - - uses: actions/download-artifact@v3 - with: - name: artifact - path: dist - name: Set up dependencies run: | pacman -Syu --noconfirm \ @@ -242,6 +238,10 @@ jobs: python-pip \ python-setuptools \ python-wheel + - uses: actions/download-artifact@v4 + with: + name: "x86_64-wheels" + path: dist - name: Install Python dependencies run: | python -m venv venv @@ -265,10 +265,6 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/download-artifact@v3 - with: - name: artifact - path: dist - name: Set up dependencies run: | apt-get update @@ -280,6 +276,10 @@ jobs: python3-venv \ python3-dbg \ python3-distutils + - uses: actions/download-artifact@v4 + with: + name: "x86_64-wheels" + path: dist - name: Install Python dependencies run: | python3 -m venv venv @@ -294,13 +294,13 @@ jobs: upload_pypi: needs: [test_wheels] runs-on: ubuntu-latest - if: github.event_name == 'release' && github.event.action == 'published' steps: - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: - name: artifact + # with no name set, it downloads all of the artifacts path: dist - - uses: pypa/gh-action-pypi-publish@release/v1 - with: - skip_existing: true - password: ${{ secrets.PYPI_PASSWORD }} + - run: | + mv dist/sdist/*.tar.gz dist/ + mv dist/*-wheels/*.whl dist/ + rmdir dist/{sdist,*-wheels} + - run: ls -R dist From 0736863d5421ea0bc7c77af4ccf57df38e630fbf Mon Sep 17 00:00:00 2001 From: Matt Wozniski Date: Fri, 5 Jan 2024 13:17:02 -0500 Subject: [PATCH 4/5] ci: Build manylinux & musllinux wheels in parallel Signed-off-by: Matt Wozniski --- .github/workflows/build_wheels.yml | 43 +++++++++++++++--------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 109b1111..bc49411c 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -29,26 +29,27 @@ jobs: name: sdist path: dist/*.tar.gz - choose_architectures: - name: Decide which architectures to build wheels for + choose_wheel_types: + name: Decide which wheel types to build runs-on: ubuntu-latest steps: - - id: x86_64 - run: echo "cibw_arch=x86_64" >> $GITHUB_OUTPUT - - id: aarch64 - run: echo "cibw_arch=aarch64" >> $GITHUB_OUTPUT + - id: manylinux_x86_64 + run: echo "wheel_types=manylinux_x86_64" >> $GITHUB_OUTPUT + - id: musllinux_x86_64 + run: echo "wheel_types=musllinux_x86_64" >> $GITHUB_OUTPUT + - id: manylinux_aarch64 + run: echo "wheel_types=manylinux_aarch64" >> $GITHUB_OUTPUT outputs: - cibw_arches: ${{ toJSON(steps.*.outputs.cibw_arch) }} + wheel_types: ${{ toJSON(steps.*.outputs.wheel_types) }} build_wheels: - needs: [build_sdist, choose_architectures] - name: Wheel for Linux ${{ matrix.cibw_arch }} - runs-on: ${{ matrix.os }} + needs: [build_sdist, choose_wheel_types] + name: ${{ matrix.wheel_type }} wheels + runs-on: ubuntu-latest strategy: fail-fast: false matrix: - os: [ubuntu-latest] - cibw_arch: ${{ fromJSON(needs.choose_architectures.outputs.cibw_arches) }} + wheel_type: ${{ fromJSON(needs.choose_wheel_types.outputs.wheel_types) }} steps: - name: Disable ptrace security restrictions @@ -66,12 +67,12 @@ jobs: - name: Build wheels uses: pypa/cibuildwheel@v2.16.2 env: - CIBW_BUILD: "cp3{7..12}-*" - CIBW_ARCHS_LINUX: ${{ matrix.cibw_arch }} + CIBW_BUILD: "cp3{7..12}-${{ matrix.wheel_type }}" + CIBW_ARCHS_LINUX: auto aarch64 CIBW_PRERELEASE_PYTHONS: True - uses: actions/upload-artifact@v4 with: - name: ${{ matrix.cibw_arch }}-wheels + name: ${{ matrix.wheel_type }}-wheels path: ./wheelhouse/*.whl test_attaching_to_old_interpreters: @@ -85,7 +86,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/download-artifact@v4 with: - name: "x86_64-wheels" + name: "manylinux_x86_64-wheels" path: dist - name: Set up Python uses: actions/setup-python@v5 @@ -127,7 +128,7 @@ jobs: python-version: "${{matrix.python_version}}-dev" - uses: actions/download-artifact@v4 with: - name: "x86_64-wheels" + name: "manylinux_x86_64-wheels" path: dist - name: Set up dependencies run: | @@ -168,7 +169,7 @@ jobs: apk add --update alpine-sdk bash alpine-sdk python3 python3-dev gdb musl-dbg python3-dbg - uses: actions/download-artifact@v4 with: - name: "x86_64-wheels" + name: "musllinux_x86_64-wheels" path: dist - name: Install Python dependencies run: | @@ -205,7 +206,7 @@ jobs: python3 - uses: actions/download-artifact@v4 with: - name: "x86_64-wheels" + name: "manylinux_x86_64-wheels" path: dist - name: Install Python dependencies run: | @@ -240,7 +241,7 @@ jobs: python-wheel - uses: actions/download-artifact@v4 with: - name: "x86_64-wheels" + name: "manylinux_x86_64-wheels" path: dist - name: Install Python dependencies run: | @@ -278,7 +279,7 @@ jobs: python3-distutils - uses: actions/download-artifact@v4 with: - name: "x86_64-wheels" + name: "manylinux_x86_64-wheels" path: dist - name: Install Python dependencies run: | From ae14c865b1a1cd8b1b135c8ccc9e127de716bb74 Mon Sep 17 00:00:00 2001 From: Matt Wozniski Date: Fri, 5 Jan 2024 14:44:09 -0500 Subject: [PATCH 5/5] ci: Restore steps performed only for releases Signed-off-by: Matt Wozniski --- .github/workflows/build_wheels.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index bc49411c..8b8b269a 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -38,6 +38,7 @@ jobs: - id: musllinux_x86_64 run: echo "wheel_types=musllinux_x86_64" >> $GITHUB_OUTPUT - id: manylinux_aarch64 + if: github.event_name == 'release' && github.event.action == 'published' run: echo "wheel_types=manylinux_aarch64" >> $GITHUB_OUTPUT outputs: wheel_types: ${{ toJSON(steps.*.outputs.wheel_types) }} @@ -295,6 +296,7 @@ jobs: upload_pypi: needs: [test_wheels] runs-on: ubuntu-latest + if: github.event_name == 'release' && github.event.action == 'published' steps: - uses: actions/download-artifact@v4 with: @@ -304,4 +306,8 @@ jobs: mv dist/sdist/*.tar.gz dist/ mv dist/*-wheels/*.whl dist/ rmdir dist/{sdist,*-wheels} - - run: ls -R dist + ls -R dist + - uses: pypa/gh-action-pypi-publish@release/v1 + with: + skip_existing: true + password: ${{ secrets.PYPI_PASSWORD }}