ParaToolsInc / taucmdr

Performance engineering for the rest of us.
http://www.taucommander.com
Other
29 stars 11 forks source link

Add docker testing env #376

Closed zbeekman closed 4 years ago

zbeekman commented 4 years ago

Still needs a .dockerignore file, and Makefile logic/naming convention could be improved. But I'm opening this up here for feedback/comments.

Rationale: A (blessed) docker image/container is a good way to ensure reproducibility during development and help get running and up-to-speed quickly. We could even build nightly and/or push to a github powered docker registry.

CC: @PlatinumCD

The build sets up a tau user, installs taucmdr to /home/tau/taucmdr and adds the corresponding /home/taucmdr/conda/bin directory to the front of the $PATH and /home/tau/taucmdr/bin to the end of the $PATH.

The usage looks like:

$ make dev-container # host machine, need to run if you have modified taucmdr src files to be safe
$ make run-container # host machine, fire up and get a shell in the container
~/src $ python setup.py test # within container now, workind directory on host is cross mounted here, run tests now
zbeekman commented 4 years ago

Also, a note: A few packages were needed that are included on the GitHub Action runners that are not included by default with Ubuntu. I added git and make to be safe, but also ca-certificates curl wget (only one of these is really needed, in theory) locales (to setup language and encoding correctly) libz-dev (needed by TAU and other upstream dependencies) and a Java runtime so that some more of the export tests can run. Also, critically, it seems Open-MPI cannot run without an ssh server.

codecov[bot] commented 4 years ago

Codecov Report

Merging #376 into unstable will decrease coverage by 0.01%. The diff coverage is n/a.

Impacted file tree graph

@@             Coverage Diff              @@
##           unstable     #376      +/-   ##
============================================
- Coverage     67.90%   67.89%   -0.02%     
============================================
  Files            92       92              
  Lines          7992     7992              
  Branches       1374     1374              
============================================
- Hits           5427     5426       -1     
- Misses         2071     2072       +1     
  Partials        494      494              
Flag Coverage Δ
#CI 67.89% <ø> (-0.02%) :arrow_down:
#unittests 67.89% <ø> (-0.02%) :arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
packages/taucmdr/cf/software/tau_installation.py 55.09% <0.00%> (-0.10%) :arrow_down:
github-actions[bot] commented 4 years ago

Pylint Output

Report

8099 statements analysed.

Statistics by type

type number old number difference %documented %badname
module 93 NC NC 100.00 0.00
class 116 NC NC 99.14 0.86
method 591 NC NC 98.82 1.02
function 116 NC NC 94.83 0.86

Raw metrics

type number % previous difference
code 9797 51.66 NC NC
docstring 4801 25.32 NC NC
comment 2841 14.98 NC NC
empty 1524 8.04 NC NC

Duplication

now previous difference
nb duplicated lines 0 NC NC
percent duplicated lines 0.000 NC NC

Messages by category

type number previous difference
convention 19 NC NC
refactor 15 NC NC
warning 20 NC NC
error 0 NC NC

% errors / warnings by module

module error warning refactor convention
taucmdr.model.experiment 0.00 45.00 0.00 5.26
taucmdr.util 0.00 5.00 20.00 5.26
taucmdr.model.trial 0.00 5.00 13.33 0.00
taucmdr.model.project 0.00 5.00 13.33 0.00
taucmdr.model.target 0.00 5.00 6.67 0.00
taucmdr.cf.storage.local_file 0.00 5.00 6.67 0.00
taucmdr.cf.software.papi_installation 0.00 5.00 0.00 5.26
taucmdr.cli.commands.trial.renumber 0.00 5.00 0.00 0.00
taucmdr.cli.commands.target.edit 0.00 5.00 0.00 0.00
taucmdr.cli.commands.target.create 0.00 5.00 0.00 0.00
taucmdr.cli.commands.target.copy 0.00 5.00 0.00 0.00
taucmdr.init 0.00 5.00 0.00 0.00
taucmdr.cf.software.tau_installation 0.00 0.00 20.00 31.58
taucmdr.cf.compiler.init 0.00 0.00 6.67 5.26
taucmdr.cli.commands.select 0.00 0.00 6.67 0.00
taucmdr.cli.init 0.00 0.00 6.67 0.00
taucmdr.mvc.model 0.00 0.00 0.00 10.53
taucmdr.mvc.controller 0.00 0.00 0.00 10.53
taucmdr.progress 0.00 0.00 0.00 5.26
taucmdr.model.application 0.00 0.00 0.00 5.26
taucmdr.error 0.00 0.00 0.00 5.26
taucmdr.cli.commands.experiment.edit 0.00 0.00 0.00 5.26
taucmdr.cf.storage.levels 0.00 0.00 0.00 5.26

Messages

message id occurrences
missing-docstring 14
arguments-differ 12
inconsistent-return-statements 10
invalid-name 4
useless-super-delegation 3
too-many-nested-blocks 2
too-many-locals 2
unused-argument 1
too-many-public-methods 1
redefined-builtin 1
raising-format-tuple 1
logging-not-lazy 1
line-too-long 1
fixme 1

Your code has been rated at 9.83/10

Per-file output (click to expand)
************* Module taucmdr
W: 42, 4: Redefining built-in 'basestring' (redefined-builtin)
************* Module taucmdr.error
C: 76, 4: Missing method docstring (missing-docstring)
************* Module taucmdr.progress
C:178, 4: Missing method docstring (missing-docstring)
************* Module taucmdr.cf.software.papi_installation
W: 68, 4: Parameters differ from overridden '_prepare_src' method (arguments-differ)
C: 76, 8: Variable name "cc" doesn't conform to u'[a-z_][a-z0-9_]{2,30}$' pattern (invalid-name)
************* Module taucmdr.util
R:143, 0: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
R:423, 0: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
W:465,18: Unused argument 'label' (unused-argument)
R:714, 4: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
C:734, 4: Missing function docstring (missing-docstring)
************* Module taucmdr.cf.storage.levels
C: 64, 0: Missing function docstring (missing-docstring)
************* Module taucmdr.cf.storage.local_file
W: 80, 4: Parameters differ from overridden 'write' method (arguments-differ)
R:218, 4: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
************* Module taucmdr.cf.compiler
R:300, 8: Too many nested blocks (6/5) (too-many-nested-blocks)
C:662, 4: Missing method docstring (missing-docstring)
************* Module taucmdr.mvc.controller
C: 54, 0: Missing function docstring (missing-docstring)
C: 55, 4: Missing function docstring (missing-docstring)
************* Module taucmdr.mvc.model
C: 75, 4: Missing method docstring (missing-docstring)
C:349,16: Missing function docstring (missing-docstring)
************* Module taucmdr.cli
R:230, 0: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
************* Module taucmdr.cf.software.tau_installation
C:902, 0: Line too long (123/120) (line-too-long)
C:799,45: Variable name "f" doesn't conform to u'[a-z_][a-z0-9_]{2,30}$' pattern (invalid-name)
C:899, 4: Missing method docstring (missing-docstring)
R:924, 4: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
R:1676, 4: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
C:1825, 4: Missing method docstring (missing-docstring)
C:1850, 8: Variable name "p" doesn't conform to u'[a-z_][a-z0-9_]{2,30}$' pattern (invalid-name)
C:1851, 8: Variable name "m" doesn't conform to u'[a-z_][a-z0-9_]{2,30}$' pattern (invalid-name)
R:168, 0: Too many public methods (26/25) (too-many-public-methods)
************* Module taucmdr.cli.commands.select
R:118, 4: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
************* Module taucmdr.cli.commands.trial.renumber
W: 84, 8: Specify string format arguments as logging function parameters (logging-not-lazy)
************* Module taucmdr.cli.commands.experiment.edit
C: 39, 0: Missing class docstring (missing-docstring)
************* Module taucmdr.cli.commands.target.copy
W: 59,12: Parameters differ from overridden '__call__' method (arguments-differ)
************* Module taucmdr.cli.commands.target.edit
W: 61,12: Parameters differ from overridden '__call__' method (arguments-differ)
************* Module taucmdr.cli.commands.target.create
W: 68,12: Parameters differ from overridden '__call__' method (arguments-differ)
************* Module taucmdr.model.application
C: 50, 0: Missing function docstring (missing-docstring)
************* Module taucmdr.model.project
W: 98, 4: Parameters differ from overridden 'delete' method (arguments-differ)
R:142, 4: Too many local variables (21/20) (too-many-locals)
R:150, 8: Too many nested blocks (8/5) (too-many-nested-blocks)
************* Module taucmdr.model.trial
R:353, 4: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
R:529, 4: Too many local variables (24/20) (too-many-locals)
W:587,24: Exception arguments suggest string formatting might be intended (raising-format-tuple)
************* Module taucmdr.model.target
W:673, 0: FIXME: not implemented (fixme)
R:670, 4: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
************* Module taucmdr.model.experiment
W:109, 4: Parameters differ from overridden 'one' method (arguments-differ)
W:113, 4: Parameters differ from overridden 'all' method (arguments-differ)
W:117, 4: Parameters differ from overridden 'count' method (arguments-differ)
W:123, 4: Parameters differ from overridden 'search' method (arguments-differ)
W:127, 4: Parameters differ from overridden 'exists' method (arguments-differ)
W:134, 4: Useless super delegation in method 'create' (useless-super-delegation)
W:137, 4: Useless super delegation in method 'update' (useless-super-delegation)
W:140, 4: Useless super delegation in method 'unset' (useless-super-delegation)
W:143, 4: Parameters differ from overridden 'delete' method (arguments-differ)
C:432, 4: Missing method docstring (missing-docstring)
Stderror
Using config file /home/runner/work/taucmdr/taucmdr/pylintrc