Skip to content

Commit

Permalink
Release v2.0.0 (#56)
Browse files Browse the repository at this point in the history
  • Loading branch information
P403n1x87 committed Oct 8, 2020
1 parent 679a896 commit 82c5727
Show file tree
Hide file tree
Showing 85 changed files with 1,944 additions and 4,327 deletions.
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
github: p403n1x87
patreon: P403n1x87
custom: ["https://www.buymeacoffee.com/Q9C1Hnm28", "https://www.paypal.me/gtornetta/1"]
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ stamp-h1
*.gcda

src/austin
src/austin.exe


# -----------------------------------------------------------------------------
Expand Down
112 changes: 89 additions & 23 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ compiler:
- gcc

git:
depth: 1
depth: false

osx_image: xcode11.4

Expand All @@ -14,14 +14,14 @@ dist: bionic
jobs:
include:
# Linux
- env: TARGET=arm-unknown-linux-gnueabi
- env: TARGET=armv7-unknown-linux-gnueabihf
- env: TARGET=i686-unknown-linux-gnu
- env: TARGET=x86_64-unknown-linux-gnu
arch: amd64
- env: TARGET=powerpc64le-unknown-linux-gnu
arch: ppc64le
# - env: TARGET=arm64-unknown-linux-gnueabi
# arch: arm64

# OSX
- env: TARGET=i686-apple-darwin
os: osx
- env: TARGET=x86_64-apple-darwin
os: osx

Expand All @@ -30,13 +30,12 @@ jobs:
os: windows

before_script:
# Linux Dependencies
- if [[ "$TRAVIS_OS_NAME" == "linux" ]];
then
sudo add-apt-repository ppa:deadsnakes/ppa -y;
sudo add-apt-repository ppa:duggan/bats -y;

sudo apt install bats valgrind python2.{3..7} python3.{3..8} -y;
sudo apt-get install bats valgrind python2.{3..7} python3.{3..8} -y;

autoreconf --install;
fi
Expand All @@ -46,38 +45,62 @@ before_script:
brew install python || brew upgrade python;
brew install [email protected] || true;
brew install bats-core;
brew install --HEAD valgrind || true;
brew cask install anaconda || true;
fi
# brew install --HEAD valgrind || true;

- if [[ "$TRAVIS_OS_NAME" == "windows" ]];
then
powershell Install-WindowsFeature Net-Framework-Core;
cinst -y wixtoolset;
fi

script:
- echo $TRAVIS_OS_NAME -- $TARGET

- if [[ "$TRAVIS_OS_NAME" == "linux" ]];
- if [[ "$TARGET" == "x86_64-unknown-linux-gnu" ]];
then
./configure &&
make &&
sudo make check;

test -f /tmp/austin_tests.log && cat /tmp/austin_tests.log;
fi


# - if [[ "$TARGET" == "arm64-unknown-linux-gnueabi" ]];
# then
# gcc -O3 -Os -Wall -pthread src/*.c -o src/austin;
# which bats && sudo bats test/test.bats || src/austin -V;
# fi

- if [[ "$TARGET" == "powerpc64le-unknown-linux-gnu" ]];
then
./configure &&
make;
which bats && sudo bats test/test.bats || src/austin -V;
fi

- if [[ "$TRAVIS_OS_NAME" == "osx" ]];
then
gcc -s -Wall -O3 -o src/austin src/*.c &&
gcc -Wall -O3 -Os -o src/austin src/*.c &&
sudo bats test/macos/test.bats;

test -f /tmp/austin_tests.log && cat /tmp/austin_tests.log;
fi

- if [[ "$TRAVIS_OS_NAME" == "windows" ]];
then
gcc -s -Wall -O3 -o src/austin src/*.c -lpsapi;
gcc -s -Wall -O3 -Os -o src/austin src/*.c -lpsapi;
fi

after_success:
./src/austin -V;
./src/austin --usage

after_failure:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]];
then
test -f /var/log/syslog.log && cat /var/log/syslog.log | grep austin;
test -f /var/log/syslog.log && cat /var/log/syslog.log | grep austin;
test -f test-suite.log && cat test-suite.log;
fi

Expand All @@ -94,14 +117,14 @@ before_deploy:

- echo "==== Preparing to create GitHub Release for version $VERSION ===="

- if [[ "$TRAVIS_OS_NAME" == "linux" ]];
- if [[ "$TRAVIS_OS_NAME" == "linux" ]];
then
export ZIP_CMD="tar -Jcf";
export ZIP_SUFFIX="linux-${TARGET%%-*}.tar.xz";
export AUSTIN_EXE=austin;
fi

- if [[ "$TRAVIS_OS_NAME" == "osx" ]];
- if [[ "$TRAVIS_OS_NAME" == "osx" ]];
then
export ZIP_CMD="zip -r";
export ZIP_SUFFIX="mac-${TARGET%%-*}.zip";
Expand All @@ -113,23 +136,66 @@ before_deploy:
export ZIP_CMD="7z a -tzip";
export ZIP_SUFFIX="win-${TARGET%%-*}.zip";
export AUSTIN_EXE=austin.exe;

export WIN_MSI="austin-$VERSION-win64.msi";

git checkout "packaging/msi";
git checkout master;
git checkout "packaging/msi" -- wix;

sed -i "s/%VERSION%/$VERSION/g" wix/Austin.wxs;
export PATH="/c/Program Files (x86)/`ls /c/Program\ Files\ \(x86\) | grep \"[wW]i[xX] [tT]oolset\"`/bin:$PATH";
cd wix;
candle Austin.wxs -out Austin.wixobj;
light -ext WixUIExtension Austin.wixobj -out $WIN_MSI;
cd .. ;
mv wix/$WIN_MSI src/$WIN_MSI;
test -f src/$WIN_MSI && echo ">> Windows MSI installer at src/$WIN_MSI" || echo ">> ERROR No Windows MSI installer generated.";
fi

- export ARTEFACT="austin-${VERSION}-${ZIP_SUFFIX}"

- echo " - Using command $ZIP_CMD to create artefact $ARTEFACT"
- echo ">> Using command $ZIP_CMD to create artefact $ARTEFACT"

- cd src
- $ZIP_CMD $ARTEFACT $AUSTIN_EXE
- echo " - Generated artefact" $(ls $ARTEFACT)
- echo ">> Generated artefact" $(ls $ARTEFACT)

- git config --local user.name "Gabriele N. Tornetta"
- git config --local user.email ${GITHUB_EMAIL}
- git tag -a -f -m "Release $VERSION" $TRAVIS_TAG

deploy:
provider: releases
edge: true
token: $GITHUB_TOKEN
file: $ARTEFACT
overwrite: true
- provider: releases
edge: true
token: $GITHUB_TOKEN
file:
- $ARTEFACT
- $WIN_MSI
overwrite: true

# - provider: releases
# edge: true
# token: $GITHUB_TOKEN
# file: $WIN_MSI
# overwrite: true
# on:
# condition: "$TRAVIS_OS_NAME = windows"

after_deploy:
- cd ..
- if [[ "$TRAVIS_OS_NAME" == "windows" ]];
then
export WIN_MSI_HASH=$( sha256sum src/$WIN_MSI | head -c 64 );

git checkout "packaging/msi" -- choco;

cd choco;

sed -i "s/%WIN_MSI_HASH%/$WIN_MSI_HASH/g" tools/chocolateyinstall.ps1;
/bin/find . -type f -exec sed -i "s/%VERSION%/$VERSION/g" {} \; ;
choco apikey --key $CHOCO_APIKEY --source https://push.chocolatey.org/;
choco pack;
choco push;
cd .. ;
fi
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ language for anything that needs to interface to its ABI.

The Python C API is written in an Object Oriented style. Austin adopts this
style too. Some translation unit are used to export a main "object". For
example, the `py_code.c` source exports the type `py_code_t`, which is Austin's
representation of the analogous `PyCodeObject` from the Python C API.
example, the `py_thread.c` source exports the type `py_thread_t`, which is
Austin's representation of the analogous `PyThreadState` from the Python C API.

Utility units, like `mem.c` or `logging.c` need not export objects, but may
Utility units, like `mem.h` or `logging.c` need not export objects, but may
implement a singleton pattern.

### Conventions
Expand Down
11 changes: 11 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
2020-10-06 v2.0.0

Substantial performance improvements. Austin 2 can sample deep call stacks
5 to 8 times faster than previous versions.

Support for Python 3.9.

Added the exposure option to instruct Austin to sample for a given number of
seconds only (#53).


2020-05-16 v1.0.1

Bugfix: Fixed broken support for Python 3.8 on MacOS.
Expand Down
14 changes: 0 additions & 14 deletions Pipfile

This file was deleted.

Loading

0 comments on commit 82c5727

Please sign in to comment.