turned starbench into an installable package

work related to  [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3878]
This commit is contained in:
Guillaume Raffy 2024-06-21 14:48:00 +02:00
parent a43eb68db5
commit b8c8a1b0e6
6 changed files with 60 additions and 1 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
src/starbench/__pycache__/
dist/
src/starbench.egg-info/

View File

@ -22,5 +22,26 @@ then `starbench` will do the rest:
## example
```sh
starbench.py --git-repos-url https://github.com/hibridon/hibridon --code-version a3bed1c3ccfbca572003020d3e3d3b1ff3934fad --git-user g-raffy --git-pass-file "$HOME/.github/personal_access_tokens/bench.hibridon.cluster.ipr.univ-rennes1.fr.pat" --num-cores 2 --output-dir=/tmp/hibench --cmake-path=/opt/cmake/cmake-3.23.0/bin/cmake --cmake-option=-DCMAKE_BUILD_TYPE=Release --cmake-option=-DBUILD_TESTING=ON --benchmark-command='ctest --output-on-failure -L ^arch4_quick$'
bob@bob-ws2:~/work/starbench$ python3 -m venv ./starbench.venv
bob@bob-ws2:~/work/starbench$ source ./starbench.venv/bin/activate
bob@bob-ws2:~/work/starbench$ pip install wheel
Collecting wheel
Using cached wheel-0.43.0-py3-none-any.whl (65 kB)
Installing collected packages: wheel
Successfully installed wheel-0.43.0
bob@bob-ws2:~/work/starbench$ pip install ./starbench.git
Processing ./starbench.git
Installing build dependencies ... done
WARNING: Missing build requirements in pyproject.toml for file:///home/bob/work/starbench/starbench.git.
WARNING: The project does not specify a build backend, and pip cannot fall back to setuptools without 'wheel'.
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Building wheels for collected packages: starbench
Building wheel for starbench (PEP 517) ... done
Created wheel for starbench: filename=starbench-1.0.0-py3-none-any.whl size=8011 sha256=a98c590fbc481722aed3512ae6345cce741615a17c24e67dc88070f85b616c4c
Stored in directory: /tmp/pip-ephem-wheel-cache-m_0xpm10/wheels/67/41/37/debf4c9251b719f84456398e144dffaa34d18ab336b529dc53
Successfully built starbench
Installing collected packages: starbench
Successfully installed starbench-1.0.0
bob@bob-ws2:~/work/starbench$ starbench --git-repos-url https://github.com/hibridon/hibridon --code-version a3bed1c3ccfbca572003020d3e3d3b1ff3934fad --git-user g-raffy --git-pass-file "$HOME/.github/personal_access_tokens/bench.hibridon.cluster.ipr.univ-rennes1.fr.pat" --num-cores 2 --output-dir=/tmp/hibench --cmake-path=/opt/cmake/cmake-3.23.0/bin/cmake --cmake-option=-DCMAKE_BUILD_TYPE=Release --cmake-option=-DBUILD_TESTING=ON --benchmark-command='ctest --output-on-failure -L ^arch4_quick$'
```

28
pyproject.toml Normal file
View File

@ -0,0 +1,28 @@
[build-system]
requires = ["setuptools"]
build-backup = "setuptools.build_meta"
[project]
name = "starbench"
dynamic = ["version"] # the list of fields whose values are dicovered by the backend (eg __version__)
description = "a tool to benchmark a git cmake application using embarassingly parallel runs"
readme = "README.md"
keywords = ["benchmark", "hpc", "parallel", 'openmp']
license = {text = "MIT License"}
dependencies = [
# "cocluto >= 1.2"
# "cocluto@git+https://git.ipr.univ-rennes.fr/cellinfo/cocluto"
]
requires-python = ">= 3.8"
authors = [
{name = "Guillaume Raffy", email = "guillaume.raffy@univ-rennes.fr"}
]
[project.scripts]
starbench = "starbench.main:main"
[project.urls]
Repository = "https://github.com/g-raffy/starbench"
[tool.setuptools.dynamic]
version = {attr = "starbench.main.__version__"}

6
setup.py Normal file
View File

@ -0,0 +1,6 @@
#!/usr/bin/env python
import setuptools
if __name__ == "__main__":
setuptools.setup()

View File

View File

@ -2,6 +2,7 @@
'''starbench is an application that is able to measure the execution time of a user software suite in various conditions (different build modes and different execution modes)
'''
__version__ = '1.0.0'
import argparse
import threading
import subprocess