Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v3.6.0 #205

Merged
merged 51 commits into from
Oct 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
28d0209
ci: run benchmarks on PRs only
P403n1x87 Feb 26, 2023
22b2fa8
ci(benchmarks): improve benchmark reporting
P403n1x87 Feb 26, 2023
1176ea6
ci: add data validation workflow
P403n1x87 Mar 5, 2023
798386e
ci: build Python wheels
P403n1x87 Mar 17, 2023
1682ba0
doc(macos): point to right readme section for permission issue
P403n1x87 Jun 4, 2023
b4300d5
refactor: use proper lasti formula for 3.11
P403n1x87 Jun 4, 2023
3a048e5
ci(ubuntu): update before install
P403n1x87 Jun 4, 2023
e95d5b1
ci(checks): build cppcheck from sources
P403n1x87 Jun 4, 2023
2e20271
fix(macos): report permission error if not root
P403n1x87 Feb 24, 2023
316d965
chore: fix check findings on OSX
P403n1x87 Aug 12, 2023
baf5cde
fix: version detection on Python 3.11
P403n1x87 Aug 12, 2023
a24322c
ci: improve tests and check configuration
P403n1x87 Aug 12, 2023
8f21d29
chore: drop support for old Python versions
P403n1x87 Aug 13, 2023
33d6b99
tests: improve detected version testing
P403n1x87 Aug 20, 2023
c4cb16c
tests: mark GC tests as flaky
P403n1x87 Aug 20, 2023
606d8e8
chore: reduce tracked binary symbols
P403n1x87 Aug 22, 2023
589f0b8
simplify coding
P403n1x87 Aug 27, 2023
f16c3e8
collect logs
P403n1x87 Aug 30, 2023
1a0cf1b
fix Linux flakiness
P403n1x87 Aug 31, 2023
1aed322
handle PyRuntime section
P403n1x87 Sep 2, 2023
8ca49b2
chore: fix formatting
P403n1x87 Sep 3, 2023
b0902ca
ci: move benchmarks summary to the top
P403n1x87 Sep 3, 2023
3fb9c0f
tests: run uwsgi tests in virtual environment
P403n1x87 Sep 4, 2023
827de1f
tests: fix log collection on timeout
P403n1x87 Sep 4, 2023
893bfa2
tests: add setup and run scripts
P403n1x87 Sep 4, 2023
6bf80f6
ci: bump GitHub action versions
P403n1x87 Sep 4, 2023
66a92d0
ci: run certain workflows when necessary
P403n1x87 Sep 4, 2023
e8dfefe
tests: categorise tests
P403n1x87 Sep 4, 2023
f8255f3
ci: parallelise functional tests on Windows
P403n1x87 Sep 5, 2023
45e2ca8
ci(linux): collect core dumps
P403n1x87 Sep 6, 2023
d687315
feat: add support for Python 3.12
P403n1x87 Jun 4, 2023
96e1b19
fix GIL holder inference for memory attributions
P403n1x87 Aug 20, 2023
84b1ce8
fix C stack marker logic
P403n1x87 Aug 20, 2023
a5e40e5
add 3.12 in coverage checks
P403n1x87 Sep 6, 2023
aa56c6b
docs: add missing link to Anaconda
P403n1x87 Sep 6, 2023
431661a
chore(win): enrich logs
P403n1x87 Sep 6, 2023
55b7a21
ci: disable parallel runs on Linux to show logs
P403n1x87 Sep 8, 2023
a9a5939
chore: set error in run method
P403n1x87 Sep 8, 2023
14f3270
chore: skip last-resort BSS scan on permission error
P403n1x87 Sep 8, 2023
cf17673
chore: remove VM bounds tracking logic
P403n1x87 Sep 8, 2023
3d72924
ci(linux): set core pattern in test workflow
P403n1x87 Sep 8, 2023
5b6d349
fix(austinp): ensure threads are resumed on sampling errors
P403n1x87 Sep 9, 2023
d43dece
chore: return negated signal number on signal
P403n1x87 Sep 10, 2023
9b5ee5e
fix: propagate signals to spwned process
P403n1x87 Sep 10, 2023
e9b4bb0
wait on UNIX only
P403n1x87 Sep 10, 2023
e33b069
chore(linux): guard against potentially null map
P403n1x87 Sep 11, 2023
2ad9edc
feat: sub-interpreters support
P403n1x87 Sep 9, 2023
f5cdae0
ci(benchmarks): run only the last release
P403n1x87 Sep 11, 2023
8d1f981
docs: update documentation source for 3.6 release
P403n1x87 Oct 3, 2023
b031723
chore: detect compiler name and version
P403n1x87 Oct 3, 2023
90005bf
chore(austinp): clean up eval frame detection
P403n1x87 Oct 3, 2023
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
23 changes: 11 additions & 12 deletions .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
name: Benchmarks

on:
push:
branches:
- master
- devel
pull_request:
paths:
- .github/workflows/benchmarks.yml
- scripts/benchmark.py
- scripts/requirements-bm.txt
- src/**

jobs:
benchmarks:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get -y install libunwind-dev binutils-dev libiberty-dev

- name: Install Python 3.10
Expand All @@ -34,18 +36,15 @@ jobs:
source .venv/bin/activate
pip install --upgrade pip
pip install -r scripts/requirements-bm.txt
deactivate

- name: Run benchmarks
env:
PYTHONPATH: "."
run: |
ulimit -c unlimited

echo "core.%p" | sudo tee /proc/sys/kernel/core_pattern
source .venv/bin/activate
python scripts/benchmark.py | tee benchmarks.txt
deactivate

# Make it a code comment
sed -e $'1i\\\n~~~' -e $'$a\\\n~~~' benchmarks.txt > comment.txt
python scripts/benchmark.py --format markdown --last | tee comment.txt

- name: Post results on PR
uses: marocchino/sticky-pull-request-comment@v2
Expand Down
55 changes: 52 additions & 3 deletions .github/workflows/build_arch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@ on:
- master
- devel
pull_request:
paths:
- .github/workflows/build_arch.yml
- scripts/build_arch.sh
- scripts/build-wheel.py
- scripts/requirements-bw.txt
- src/**
- configure.ac
- Makefile.am

jobs:
build-linux-archs:
Expand All @@ -16,11 +24,11 @@ jobs:
fail-fast: false
name: Build on ${{ matrix.arch }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
name: Checkout sources

- uses: uraimo/[email protected]
name: Build on ${{ matrix.arch }}
name: Build Austin on ${{ matrix.arch }}
id: build-on-arch
with:
arch: ${{ matrix.arch }}
Expand All @@ -31,6 +39,47 @@ jobs:
mkdir -p ./artifacts
run: ARCH=${{ matrix.arch }} bash scripts/build_arch.sh

- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Build wheels on ${{ matrix.arch }}
run: |
python3.10 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r scripts/requirements-bw.txt

export VERSION=$(cat src/austin.h | sed -r -n "s/^#define VERSION[ ]+\"(.+)\"/\1/p");

case ${{ matrix.arch }} in
armv7)
PLATFORM=manylinux_2_17_armv7l.manylinux2014_armv7l
MUSL_PLATFORM=musllinux_1_1_armv7l
;;
aarch64)
PLATFORM=manylinux_2_17_aarch64.manylinux2014_aarch64
MUSL_PLATFORM=musllinux_1_1_aarch64
;;
ppc64le)
PLATFORM=manylinux_2_17_ppc64le.manylinux2014_ppc64le
MUSL_PLATFORM=musllinux_1_1_ppc64le
;;
esac

python scripts/build-wheel.py \
--version=$VERSION \
--platform=$PLATFORM \
--files austin:./artifacts/austin austinp:./artifacts/austinp

python scripts/build-wheel.py \
--version=$VERSION \
--platform=$MUSL_PLATFORM \
--files austin:./artifacts/austin.musl

deactivate

- name: Show artifacts
run: |
ls -al ./artifacts
101 changes: 76 additions & 25 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,12 @@ jobs:
runs-on: ubuntu-20.04
name: Check manpage
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Install build dependencies
run: sudo apt-get -y install libunwind-dev binutils-dev libiberty-dev help2man
run: |
sudo apt-get update
sudo apt-get -y install libunwind-dev binutils-dev libiberty-dev help2man

- name: Compile Austin
run: |
Expand All @@ -29,25 +31,73 @@ jobs:
- name: Check manpage
run: git diff -I".* DO NOT MODIFY.*" -I"[.]TH AUSTIN.*" --exit-code src/austin.1

cppcheck:
cppcheck-linux:
runs-on: ubuntu-20.04
name: Static code analysis
name: Static code analysis (Linux)
env:
cppcheck-version: 2.10.3

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Install cppcheck
run: sudo apt-get -y install cppcheck
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get -y install libpcre3-dev

- name: Restore cppcheck build
id: cppcheck-build-restore
uses: actions/cache/restore@v3
with:
path: |
${{ github.workspace }}/cppcheck
key: ${{ runner.os }}-cppcheck-${{ env.cppcheck-version }}

- name: Check out cppcheck
uses: actions/checkout@v3
with:
repository: danmar/cppcheck
ref: ${{ env.cppcheck-version }}
path: ${{ github.workspace }}/cppcheck

- name: Compile cppcheck
run: |
sudo apt-get update
sudo apt-get -y install libpcre3-dev
cd cppcheck
make MATCHCOMPILER=yes FILESDIR=/usr/share/cppcheck HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function"
cd -

- name: Save cppcheck build
id: cppcheck-build-save
uses: actions/cache/save@v3
with:
path: |
${{ github.workspace }}/cppcheck
key: ${{ runner.os }}-cppcheck-${{ env.cppcheck-version }}

- name: Check source code
run: ${{ github.workspace }}/cppcheck/cppcheck -q -f --error-exitcode=1 --inline-suppr src

- name: Check soure code
cppcheck-macos:
name: Static code analysis (macOS)
runs-on: macos-latest
steps:
- uses: actions/checkout@v3

- name: Install cppcheck
run: brew install cppcheck

- name: Check source code
run: cppcheck -q -f --error-exitcode=1 --inline-suppr src

codespell:
runs-on: ubuntu-20.04
name: Codespell
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- uses: "actions/setup-python@v2"
- uses: "actions/setup-python@v4"
with:
python-version: "3.9"

Expand All @@ -61,9 +111,9 @@ jobs:
runs-on: ubuntu-20.04
name: Formatting (tests)
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- uses: "actions/setup-python@v2"
- uses: "actions/setup-python@v4"
with:
python-version: "3.10"

Expand All @@ -77,9 +127,9 @@ jobs:
runs-on: ubuntu-20.04
name: Linting (tests)
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- uses: "actions/setup-python@v2"
- uses: "actions/setup-python@v4"
with:
python-version: "3.10"

Expand All @@ -93,7 +143,7 @@ jobs:
runs-on: ubuntu-20.04
name: Code coverage
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Install build dependencies
run: |
Expand All @@ -103,12 +153,17 @@ jobs:
- name: Install test dependencies
run: |
sudo add-apt-repository -y ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get -y install \
valgrind \
python2.7 \
python3.{5..11} \
python3.{8..12} \
python3.10-full python3.10-dev

python3.10 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r test/requirements.txt

- name: Compile Austin
run: |
autoreconf --install
Expand All @@ -117,14 +172,10 @@ jobs:

- name: Run tests
run: |
echo "core.%p" | sudo tee /proc/sys/kernel/core_pattern
ulimit -c unlimited
python3.10 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r test/requirements.txt
.venv/bin/pytest --pastebin=failed --no-flaky-report -sr fE -n auto || true
sudo -E env PATH="$PATH" .venv/bin/pytest --pastebin=failed --no-flaky-report -sr fE -n auto || true
deactivate
.venv/bin/pytest -sr fE -n auto || true
sudo -E env PATH="$PATH" .venv/bin/pytest -sr fE -n auto || true

- name: Generate Cobertura report
run: gcovr --xml ./cobertura.xml -r src/
Expand All @@ -140,7 +191,7 @@ jobs:
runs-on: ubuntu-20.04
name: Check cog output
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Install cog
run: pip install cogapp
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: Check out the repo
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Push to Docker Hub
uses: docker/build-push-action@v1
with:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/pre_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
fail-fast: false
name: Release (Linux)
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
name: Checkout Austin

- name: Generate artifacts
Expand Down Expand Up @@ -56,7 +56,7 @@ jobs:
fail-fast: false
name: Release (Windows)
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
name: Checkout Austin
with:
fetch-depth: 0
Expand Down Expand Up @@ -113,7 +113,7 @@ jobs:
fail-fast: false
name: Release (macOS)
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
name: Checkout Austin

- name: Generate artifacts
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pre_release_arch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
fail-fast: false
name: Build on ${{ matrix.arch }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
name: Checkout sources
- uses: uraimo/[email protected]
name: Generate artifacts on ${{ matrix.arch }}
Expand Down
Loading
Loading