Package: gitlint
Version: 0.9.0-2
Severity: serious
Justification: FTBFS

Dear Maintainer,

gitlint fails to build from source -- it have 3 test cases failing. As I
discovered when trying to prepare NMU for #891538, these tests also fail
with gitlint-0.10, so I add upstream maintainer to thread.

Oh, and I already created `debian/gitlint' repository on Salsa. gitlint
lack Vcs-Git field in `debian/control', I hope you would be interested
in moving on salsa.

Failed build log:
-----------------

dpkg-buildpackage: info: source package gitlint
dpkg-buildpackage: info: source version 0.9.0-2
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Patrik Hagedorn 
<patrik.haged...@gmx.net>
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture amd64
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying 0001-Add-support-for-python3-for-gitlint-tests.patch
dpkg-source: info: applying 
0002-Change-get_sample-and-get_expected-to-context.patch
dpkg-source: info: applying 0003-Fix-regexp-matching-in-tests.patch
dpkg-source: info: applying 0004-Remove-duplicate-line.patch
 fakeroot debian/rules clean
dh clean --with python3 --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
I: pybuild base:217: python3.7 setup.py clean 
running clean
removing '/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build' (and everything under 
it)
'build/bdist.linux-amd64' does not exist -- can't clean it
'build/scripts-3.7' does not exist -- can't clean it
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
 dpkg-source -b .
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building gitlint using existing ./gitlint_0.9.0.orig.tar.gz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: building gitlint in gitlint_0.9.0-2.debian.tar.xz
dpkg-source: info: building gitlint in gitlint_0.9.0-2.dsc
 debian/rules build
dh build --with python3 --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
I: pybuild base:217: python3.7 setup.py config 
running config
   dh_auto_build -O--buildsystem=pybuild
I: pybuild base:217: /usr/bin/python3 setup.py build 
running build
running build_py
creating /tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/qa
copying qa/base.py -> /tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/qa
copying qa/test_commits.py -> /tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/qa
copying qa/test_hooks.py -> /tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/qa
copying qa/test_config.py -> /tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/qa
copying qa/test_user_defined.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/qa
copying qa/__init__.py -> /tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/qa
copying qa/test_gitlint.py -> /tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/qa
creating /tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint
copying gitlint/rules.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint
copying gitlint/hooks.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint
copying gitlint/options.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint
copying gitlint/config.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint
copying gitlint/utils.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint
copying gitlint/display.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint
copying gitlint/user_rules.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint
copying gitlint/lint.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint
copying gitlint/__init__.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint
copying gitlint/cli.py -> /tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint
copying gitlint/git.py -> /tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint
creating /tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
copying gitlint/tests/base.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
copying gitlint/tests/test_config_builder.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
copying gitlint/tests/test_user_rules.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
copying gitlint/tests/test_title_rules.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
copying gitlint/tests/test_hooks.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
copying gitlint/tests/test_cli.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
copying gitlint/tests/test_git.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
copying gitlint/tests/test_config.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
copying gitlint/tests/test_config_precedence.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
copying gitlint/tests/__init__.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
copying gitlint/tests/test_meta_rules.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
copying gitlint/tests/test_lint.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
copying gitlint/tests/test_options.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
copying gitlint/tests/test_body_rules.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
copying gitlint/tests/test_display.py -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/tests
creating /tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/files
copying gitlint/files/gitlint -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/files
copying gitlint/files/commit-msg -> 
/tmp/gitlint-0.9.0/.pybuild/cpython3_3.7/build/gitlint/files
   debian/rules override_dh_auto_test
make[1]: Entering directory '/tmp/gitlint-0.9.0'
PYBUILD_SYSTEM=custom dh_auto_test
I: pybuild base:217: python3.7 -m coverage run 
--omit='/usr/*,/tmp/gitlint-0.9.0/gitlint/tests/*,/tmp/gitlint-0.9.0/gitlint/qa/*'
 -m unittest discover -v -s /tmp/gitlint-0.9.0/gitlint/tests
test_body_changed_file_mention (test_body_rules.BodyRuleTests) ... ok
test_body_first_line_empty (test_body_rules.BodyRuleTests) ... ok
test_body_min_length (test_body_rules.BodyRuleTests) ... ok
test_body_missing (test_body_rules.BodyRuleTests) ... ok
test_body_missing_merge_commit (test_body_rules.BodyRuleTests) ... ok
test_hard_tabs (test_body_rules.BodyRuleTests) ... ok
test_max_line_length (test_body_rules.BodyRuleTests) ... ok
test_trailing_whitespace (test_body_rules.BodyRuleTests) ... ok
test_config_file (test_cli.CLITests)
Test for --config option ... ok
test_config_file_negative (test_cli.CLITests)
Negative test for --config option ... FAIL
test_debug (test_cli.CLITests)
Test for --debug option ... ok
test_extra_path (test_cli.CLITests)
Test for --extra-path flag ... ok
test_generate_config (test_cli.CLITests)
Test for the generate-config subcommand ... ok
test_generate_config_negative (test_cli.CLITests)
Negative test for the generate-config subcommand ... ok
test_git_error (test_cli.CLITests)
Tests that the cli handles git errors properly ... ok
test_input_stream (test_cli.CLITests)
Test for linting when a message is passed via stdin ... ok
test_install_hook (test_cli.CLITests)
Test for install-hook subcommand ... ok
test_install_hook_negative (test_cli.CLITests)
Negative test for install-hook subcommand ... ok
test_install_hook_target (test_cli.CLITests)
Test for install-hook subcommand with a specific --target option specified ... 
ok
test_lint (test_cli.CLITests)
Test for basic simple linting functionality ... ok
test_lint_multiple_commits (test_cli.CLITests)
Test for --commits option ... ok
test_lint_multiple_commits_config (test_cli.CLITests)
Test for --commits option where some of the commits have gitlint config in the 
commit message ... ok
test_no_commits_in_range (test_cli.CLITests)
Test for --commits with the specified range being empty. ... ok
test_silent_mode (test_cli.CLITests)
Test for --silent option ... ok
test_target (test_cli.CLITests)
Test for the --target option ... FAIL
test_target_negative (test_cli.CLITests)
Negative test for the --target option ... FAIL
test_uninstall_hook (test_cli.CLITests)
Test for uninstall-hook subcommand ... ok
test_uninstall_hook_negative (test_cli.CLITests)
Negative test for uninstall-hook subcommand ... ok
test_verbosity (test_cli.CLITests)
Test for --verbosity option ... ok
test_version (test_cli.CLITests)
Test for --version option ... ok
test_install_commit_msg_hook_negative (test_config.LintConfigGeneratorTests) 
... ok
test_extra_path (test_config.LintConfigTests) ... ok
test_extra_path_negative (test_config.LintConfigTests) ... ok
test_get_rule (test_config.LintConfigTests) ... ok
test_ignore_independent_from_rules (test_config.LintConfigTests) ... ok
test_set_general_option (test_config.LintConfigTests) ... ok
test_set_general_option_negative (test_config.LintConfigTests) ... ok
test_set_rule_option (test_config.LintConfigTests) ... ok
test_set_rule_option_negative (test_config.LintConfigTests) ... ok
test_clone (test_config_builder.LintConfigBuilderTests) ... ok
test_rebuild_config (test_config_builder.LintConfigBuilderTests) ... ok
test_set_config_from_string_list (test_config_builder.LintConfigBuilderTests) 
... ok
test_set_config_from_string_list_negative 
(test_config_builder.LintConfigBuilderTests) ... ok
test_set_from_commit_ignore_all (test_config_builder.LintConfigBuilderTests) 
... ok
test_set_from_commit_ignore_specific 
(test_config_builder.LintConfigBuilderTests) ... ok
test_set_from_config_file (test_config_builder.LintConfigBuilderTests) ... ok
test_set_from_config_file_negative (test_config_builder.LintConfigBuilderTests) 
... ok
test_set_option (test_config_builder.LintConfigBuilderTests) ... ok
test_config_precedence (test_config_precedence.LintConfigPrecedenceTests) ... ok
test_general_option_after_rule_option 
(test_config_precedence.LintConfigPrecedenceTests) ... ok
test_ignore_precedence (test_config_precedence.LintConfigPrecedenceTests) ... ok
test_e (test_display.DisplayTests) ... ok
test_v (test_display.DisplayTests) ... ok
test_commit_msg_custom_commentchar (test_git.GitTests) ... ok
test_from_commit_msg_comment (test_git.GitTests) ... ok
test_from_commit_msg_empty (test_git.GitTests) ... ok
test_from_commit_msg_fixup_squash_commit (test_git.GitTests) ... ok
test_from_commit_msg_full (test_git.GitTests) ... ok
test_from_commit_msg_just_title (test_git.GitTests) ... ok
test_from_commit_msg_merge_commit (test_git.GitTests) ... ok
test_from_local_repository_specific_ref (test_git.GitTests) ... ok
test_get_latest_commit (test_git.GitTests) ... ok
test_get_latest_commit_command_not_found (test_git.GitTests) ... ok
test_get_latest_commit_fixup_squash_commit (test_git.GitTests) ... ok
test_get_latest_commit_git_error (test_git.GitTests) ... ok
test_get_latest_commit_merge_commit (test_git.GitTests) ... ok
test_git_commentchar (test_git.GitTests) ... ok
test_gitcommit_equality (test_git.GitTests) ... ok
test_commit_msg_hook_path (test_hooks.HookTests) ... ok
test_install_commit_msg_hook (test_hooks.HookTests) ... ok
test_install_commit_msg_hook_negative (test_hooks.HookTests) ... ok
test_uninstall_commit_msg_hook (test_hooks.HookTests) ... ok
test_uninstall_commit_msg_hook_negative (test_hooks.HookTests) ... ok
test_lint_ignore (test_lint.LintTests) ... ok
test_lint_meta (test_lint.LintTests)
Lint sample2 but also add some metadata to the commit so we that get's linted 
as well ... ok
test_lint_sample1 (test_lint.LintTests) ... ok
test_lint_sample2 (test_lint.LintTests) ... ok
test_lint_sample3 (test_lint.LintTests) ... ok
test_lint_sample4 (test_lint.LintTests) ... ok
test_lint_sample5 (test_lint.LintTests) ... ok
test_lint_special_commit (test_lint.LintTests) ... ok
test_print_violations (test_lint.LintTests) ... ok
test_author_valid_email_rule (test_meta_rules.MetaRuleTests) ... ok
test_author_valid_email_rule_custom_regex (test_meta_rules.MetaRuleTests) ... ok
test_boolean_option (test_options.RuleOptionTests) ... ok
test_int_option (test_options.RuleOptionTests) ... ok
test_list_option (test_options.RuleOptionTests) ... ok
test_option_equals (test_options.RuleOptionTests) ... ok
test_path_option (test_options.RuleOptionTests) ... ok
test_str_option (test_options.RuleOptionTests) ... ok
test_hard_tabs (test_title_rules.TitleRuleTests) ... ok
test_leading_whitespace (test_title_rules.TitleRuleTests) ... ok
test_max_line_length (test_title_rules.TitleRuleTests) ... ok
test_regex_matches (test_title_rules.TitleRuleTests) ... ok
test_title_must_not_contain_word (test_title_rules.TitleRuleTests) ... ok
test_trailing_punctuation (test_title_rules.TitleRuleTests) ... ok
test_trailing_whitespace (test_title_rules.TitleRuleTests) ... ok
test_assert_valid_rule_class (test_user_rules.UserRuleTests) ... ok
test_assert_valid_rule_class_negative (test_user_rules.UserRuleTests) ... ok
test_assert_valid_rule_class_negative_id (test_user_rules.UserRuleTests) ... ok
test_assert_valid_rule_class_negative_name (test_user_rules.UserRuleTests) ... 
ok
test_assert_valid_rule_class_negative_option_spec 
(test_user_rules.UserRuleTests) ... ok
test_assert_valid_rule_class_negative_parent (test_user_rules.UserRuleTests) 
... ok
test_assert_valid_rule_class_negative_target (test_user_rules.UserRuleTests) 
... ok
test_assert_valid_rule_class_negative_validate (test_user_rules.UserRuleTests) 
... ok
test_empty_user_classes (test_user_rules.UserRuleTests) ... ok
test_extra_path_specified_by_file (test_user_rules.UserRuleTests) ... ok
test_failed_module_import (test_user_rules.UserRuleTests) ... ok
test_find_rule_classes (test_user_rules.UserRuleTests) ... ok
test_find_rule_classes_nonexisting_path (test_user_rules.UserRuleTests) ... ok

======================================================================
FAIL: test_config_file_negative (test_cli.CLITests)
Negative test for --config option
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/gitlint-0.9.0/gitlint/tests/test_cli.py", line 267, in 
test_config_file_negative
    self.assertEqual(result.output.split("\n")[2], expected_string)
AssertionError: '' != 'Error: Invalid value for "-C" / "--config[69 chars]ory.'
+ Error: Invalid value for "-C" / "--config": Path 
"/tmp/gitlint-0.9.0/gitlint/tests/samples/config" is a directory.

======================================================================
FAIL: test_target (test_cli.CLITests)
Test for the --target option
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.7/unittest/mock.py", line 1195, in patched
    return func(*args, **keywargs)
  File "/tmp/gitlint-0.9.0/gitlint/tests/test_cli.py", line 291, in test_target
    self.assertEqual(result.output, "%s is not a git repository.\n" % 
expected_path)
AssertionError: "An error occurred while executing '/usr/[98 chars]t'\n" != 
'/tmp is not a git repository.\n'
- An error occurred while executing '/usr/bin/git log -1 --pretty=%H': b'fatal: 
not a git repository (or any of the parent directories): .git'
+ /tmp is not a git repository.


======================================================================
FAIL: test_target_negative (test_cli.CLITests)
Negative test for the --target option
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/gitlint-0.9.0/gitlint/tests/test_cli.py", line 299, in 
test_target_negative
    self.assertEqual(result.output.split("\n")[2], expected_msg)
AssertionError: '' != 'Error: Invalid value for "--target": Directory 
"/föo/bar" does not exist.'
+ Error: Invalid value for "--target": Directory "/föo/bar" does not exist.

----------------------------------------------------------------------
Ran 110 tests in 0.570s

FAILED (failures=3)
E: pybuild pybuild:338: test: plugin custom failed with: exit code=1: python3.7 
-m coverage run 
--omit='/usr/*,/tmp/gitlint-0.9.0/gitlint/tests/*,/tmp/gitlint-0.9.0/gitlint/qa/*'
 -m unittest discover -v -s /tmp/gitlint-0.9.0/gitlint/tests
dh_auto_test: pybuild --test -i python{version} -p 3.7 returned exit code 13
make[1]: *** [debian/rules:10: override_dh_auto_test] Error 25
make[1]: Leaving directory '/tmp/gitlint-0.9.0'
make: *** [debian/rules:7: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2



-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to 
C.UTF-8), LANGUAGE=C.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to C.UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: runit (via /run/runit.stopit)

Versions of packages gitlint depends on:
ii  git            1:2.20.1-1
ii  python3        3.7.1-3
ii  python3-arrow  0.12.1-2
ii  python3-click  6.7+git20180829-1
ii  python3-sh     1.12.14-1.1

gitlint recommends no packages.

gitlint suggests no packages.

-- no debconf information

Attachment: pgpEigj_hm8Wo.pgp
Description: PGP signature

Reply via email to