-
1c10ea03
by Joerg Jaspert
at 2019-04-14T07:48:16Z
Use different css, less eye hurt
-
77ab2a54
by Niels Thykier
at 2019-04-14T07:50:10Z
Update .gitignore to exclude more artifacts
This will make .gitignore exclude *most* of the artifacts from the
tests fixtures package builds. It still leaves package build and
staging directories behind (e.g. debian/<pkg>/) because I had no good
way of telling them apart from a "wanted" subdirectory.
Signed-off-by: Niels Thykier <niels@thykier.net>
-
f95130fb
by Niels Thykier
at 2019-04-14T07:55:55Z
Add coverage to dak-setup and the dbtests
Signed-off-by: Niels Thykier <niels@thykier.net>
-
26a67293
by Niels Thykier
at 2019-04-14T07:59:07Z
TODO: dak now has a test suite
-
46cb2f6f
by Ansgar Burchardt
at 2019-04-14T10:10:39Z
Merge remote-tracking branches 'nthykier/update-gitignore', 'nthykier/cover-all-the-things' and 'nthykier/patch-1'
-
74979483
by Niels Thykier
at 2019-04-14T10:19:33Z
Add test case using a minimal dinstall setup
Signed-off-by: Niels Thykier <niels@thykier.net>
-
ee649d8f
by Niels Thykier
at 2019-04-14T10:51:25Z
0002-basic-c-s: Remove duplicated "expensive" calls to import-fixture-signing-key
Signed-off-by: Niels Thykier <niels@thykier.net>
-
5798560a
by Ansgar Burchardt
at 2019-04-14T14:06:27Z
Merge remote-tracking branches 'nthykier/integration-tests-0002-remove-dup-import-key-calls' and 'nthykier/integration-test-with-minimal-dinstall'
-
78dfea64
by Joerg Jaspert
at 2019-04-14T20:36:34Z
Write some docstrings
-
23eda7ff
by Niels Thykier
at 2019-04-15T09:13:28Z
tests: Fix a deprecation warning from the tests in python3
This change is compatible with python2 and removes some 50-100 lines
of "deprecation warning"-noise when trying to test dak with python3.
Signed-off-by: Niels Thykier <niels@thykier.net>
-
fb37242e
by Niels Thykier
at 2019-04-15T11:39:25Z
Rewrite some uses of keys() in if-statements
This rewrites the following statements:
if a in b.keys():
to
if a in b:
At the moment, both variants are cheap (i.e. O(1)) operations.
However, the 2to3 will blindly rewrite the former into a more
expensive variant, namely:
if a in list(b.keys()):
Sadly, this becomes O(|b|) as __contains__ on a list is a lot more
expensive than it is on a directory/set-like structure.
Signed-off-by: Niels Thykier <niels@thykier.net>
-
6e24f59a
by Niels Thykier
at 2019-04-15T11:45:17Z
Replace most calls to "map" with comprehensions
They are compatible with python2 + python3 and the 2to3 rewrite will
do a similar transformation. However, with this rewrite, we can
improve the generated results a bit to avoid some suboptimal cases
while also reducing the delta for the py2 and py3 variants of dak.
As an example:
filelist = []
for ... in ...:
filelist += map(lambda x: os.path.join(r, x),
filter(lambda x: x.endswith('.changes'), f))
Here 2to3 offers the following rewrite:
filelist = []
for ... in ...:
filelist += [os.path.join(r, x) for x in [x for x in f if x.endswith('.changes')]]
But this is performance-wise much better written as:
filelist = []
for ... in ...:
filelist.extend(os.path.join(r, x) for x in f if x.endswith('.changes'))
The original code and the 2to3 variant produces a lot of temporary
lists only to discard them again (in python2 filter + map generates a
list each). In the optimized variant, we avoid all the temporary
lists by using a generator-comprehension.
Signed-off-by: Niels Thykier <niels@thykier.net>
-
9a4d7e56
by Niels Thykier
at 2019-04-15T11:45:23Z
cruft-report: Refactor to improve looping over dicts
This commit aims to pre-empty some of the 2to3 delta while also
using more concise constructs.
Examples include:
y = x.keys()
y.sort(...)
is rewritten into:
y = sorted(x.keys(), ...)
(Except in one case, where we really wanted "max" rather than "sort".)
Signed-off-by: Niels Thykier <niels@thykier.net>
-
45ee6ddd
by Niels Thykier
at 2019-04-16T07:51:45Z
tests: Setup a gpg home to make "dak generate-releases" work
Signed-off-by: Niels Thykier <niels@thykier.net>
-
6150ae50
by Niels Thykier
at 2019-04-16T13:41:55Z
dak admin: unify get_suite "or die" logic
At the moment, most "dak admin" subcommands implement the logic in the
form of:
s = get_suite(s_n, ...)
if s is None:
die("...")
But the callers do not always agree on whether s_n to have a
".lower()" or not.
With this, change we unify this code flow so all of them now use the
new "get_suite_or_die", which will always "lower()" the suite name
plus handle this check for us.
A few calls that were missing the "if s is None: die()" code has been
migrated as well to fix some errors when the code operated on the None
object.
Signed-off-by: Niels Thykier <niels@thykier.net>
-
b72e25b2
by Niels Thykier
at 2019-04-16T15:02:46Z
.coveragerc: Set concurrency to multiprocessing
Signed-off-by: Niels Thykier <niels@thykier.net>
-
02f24c20
by Niels Thykier
at 2019-04-16T15:20:59Z
tests: Include version contraints in the dinstall setup
Signed-off-by: Niels Thykier <niels@thykier.net>
-
bfc67494
by Ansgar Burchardt
at 2019-04-16T17:56:59Z
Merge remote-tracking branches 'nthykier/tests-improve-debian-like-setup', 'nthykier/tests-coverages-multi-processing', 'nthykier/fix-dak-admin-s-cfg-none-error-invalid-suite', 'nthykier/tests-sign-releases' and 'nthykier/python3-test-fixes'
-
6c241cb0
by Ansgar Burchardt
at 2019-04-16T18:59:28Z
use `len(some_dict)` instead of `len(some_dict.keys())`
-
44ec09c5
by Ansgar Burchardt
at 2019-04-16T19:18:26Z
use `print` instead of `sys.stderr.write` or `sys.stdout.write`
-
43001068
by Ansgar Burchardt
at 2019-04-18T05:56:02Z
use subprocess module instead of commands module
-
b5db6989
by Ansgar Burchardt
at 2019-04-18T07:27:12Z
avoid use of `os.popen()`
As the path to the copyright file `cright` wasn't sanitized, passing
it as part of the command to `os.popen()` might allow command
injection.
-
ebe10f96
by Ansgar Burchardt
at 2019-04-18T08:03:52Z
use `tempdir` correctly
Creating a temporary directory, removing it and then reusing the name
is not a safe operation. Instead just extract the source package to a
path below the temporary directory.
-
106d887d
by Ansgar Burchardt
at 2019-04-18T08:03:58Z
add reminder to switch to `tempfile.TemporaryDirectory` with Python 3
-
468fc484
by Ansgar Burchardt
at 2019-04-18T08:03:59Z
just read the file instead of calling `cat`
-
38065c62
by Ansgar Burchardt
at 2019-04-18T08:04:00Z
avoid magic constant
-
0a3e2975
by Ansgar Burchardt
at 2019-04-18T08:04:01Z
fix logic to skip `Checksums-*` fields in changes files
The `not` got lost in 6e24f59a2f524c2f1f693c8663f751ab53273f83
-
a62e1b65
by Ansgar Burchardt
at 2019-04-18T08:07:11Z
Merge branches 'use-subprocess-instead-of-commands' and 'py3-cleanup-1'
-
6d36628d
by Ansgar Burchardt
at 2019-04-18T08:29:01Z
Merge branch 'master' into deploy