Your message dated Tue, 4 Mar 2025 14:13:14 +0000
with message-id <z8ckev18y3qtt...@riva.ucam.org>
and subject line Re: Bug#1098630: sqlfluff: FTBFS: E           OSError: 
['/usr/bin/python3.13', '-m', 'sqlfluff.cli.commands'] is not installed
has caused the Debian Bug report #1098630,
regarding sqlfluff: FTBFS: E           OSError: ['/usr/bin/python3.13', '-m', 
'sqlfluff.cli.commands'] is not installed
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1098630: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1098630
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: src:sqlfluff
Version: 3.3.1-1
Severity: serious
Tags: ftbfs trixie sid

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
        pybuild --clean -i python{version} -p "3.12 3.13"
        rm -rf .pybuild/
        find . -name \*.pyc -exec rm {} \;
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
        rm -f debian/debhelper-build-stamp
        rm -rf debian/.debhelper/
        rm -f -- debian/sqlfluff.substvars debian/sqlfluff-doc.substvars 
debian/files
        rm -fr -- debian/sqlfluff/ debian/tmp/ debian/sqlfluff-doc/
        find .  \( \( \
                \( -path .\*/.git -o -path .\*/.svn -o -path .\*/.bzr -o -path 
.\*/.hg -o -path .\*/CVS -o -path .\*/.pc -o -path .\*/_darcs \) -prune -o 
-type f -a \

[... snipped ...]


ret_code = 1, args = [<Command render>, ['test/fixtures/cli/fail_many.sql']]
kwargs = {}, cli_input = None, mix_stderr = True
assert_output_contains = "L:   3 | P:   8 |  TMP | Undefined jinja template 
variable: 'something'"
raise_exceptions = True

    def invoke_assert_code(
        ret_code: int = 0,
        args: Optional[List[Any]] = None,
        kwargs: Optional[Dict[str, Any]] = None,
        cli_input: Optional[str] = None,
        mix_stderr: bool = True,
        assert_output_contains: str = "",
        raise_exceptions: bool = True,
    ) -> Result:
        """Invoke a command and check return code."""
        args = args or []
        kwargs = kwargs or {}
        if cli_input:
            kwargs["input"] = cli_input
>       runner = CliRunner(mix_stderr=mix_stderr)
E       TypeError: CliRunner.__init__() got an unexpected keyword argument 
'mix_stderr'

sqlfluff/utils/testing/cli.py:22: TypeError
____________________________ test__cli__render_pass ____________________________

    def test__cli__render_pass():
        """Basic how render works."""
>       invoke_assert_code(
            ret_code=0,
            args=[
                render,
                [
                    "test/fixtures/templater/jinja_a/jinja.sql",
                ],
            ],
            assert_output_contains="SELECT 56 FROM sch1.tbl2",
        )

test/cli/commands_test.py:2395: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

ret_code = 0
args = [<Command render>, ['test/fixtures/templater/jinja_a/jinja.sql']]
kwargs = {}, cli_input = None, mix_stderr = True
assert_output_contains = 'SELECT 56 FROM sch1.tbl2', raise_exceptions = True

    def invoke_assert_code(
        ret_code: int = 0,
        args: Optional[List[Any]] = None,
        kwargs: Optional[Dict[str, Any]] = None,
        cli_input: Optional[str] = None,
        mix_stderr: bool = True,
        assert_output_contains: str = "",
        raise_exceptions: bool = True,
    ) -> Result:
        """Invoke a command and check return code."""
        args = args or []
        kwargs = kwargs or {}
        if cli_input:
            kwargs["input"] = cli_input
>       runner = CliRunner(mix_stderr=mix_stderr)
E       TypeError: CliRunner.__init__() got an unexpected keyword argument 
'mix_stderr'

sqlfluff/utils/testing/cli.py:22: TypeError
_______ test_diff_quality_plugin[sql_paths0-expected_violations_lines0] ________

sql_paths = ['linter/indentation_errors.sql']
expected_violations_lines = [2, 3, 4, 5, 6]
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f2bcf575f60>

    @pytest.mark.parametrize(
        "sql_paths,expected_violations_lines",
        [
            (("linter/indentation_errors.sql",), list(range(2, 7))),
            (("linter/parse_error.sql",), {1}),
            # NB: This version of the file is in a directory configured
            # to ignore parsing errors.
            (("linter/diffquality/parse_error.sql",), []),
            (tuple(), []),
        ],
    )
    def test_diff_quality_plugin(sql_paths, expected_violations_lines, 
monkeypatch):
        """Test the plugin at least finds errors on the expected lines."""
    
        def execute(command, exit_codes):
            printable_command_parts = [
                c.decode(sys.getfilesystemencoding()) if isinstance(c, bytes) 
else c
                for c in command
            ]
    
            result = invoke_assert_code(
                ret_code=1 if expected_violations_lines else 0,
                args=[
                    lint,
                    printable_command_parts[2:],
                ],
            )
            return result.output, ""
    
        # Mock the execute function -- this is an attempt to prevent the 
CircleCI
        # coverage check from hanging. (We've seen issues in the past where 
using
        # subprocesses caused things to occasionally hang.)
        monkeypatch.setattr(diff_quality_plugin, "execute", execute)
        monkeypatch.chdir("test/fixtures/")
        violation_reporter = diff_quality_plugin.diff_cover_report_quality(
            options="--processes=1"
        )
        assert len(sql_paths) in (0, 1)
        sql_paths = [str(Path(sql_path)) for sql_path in sql_paths]
    
>       violations_dict = violation_reporter.violations_batch(sql_paths)

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/test/diff_quality_plugin_test.py:53:
 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sqlfluff.diff_quality_plugin.SQLFluffViolationReporter object at 
0x7f2be834be00>
src_paths = ['linter/indentation_errors.sql']

    def violations_batch(self, src_paths):
        """Return a dictionary of Violations recorded in `src_paths`."""
        # Check if SQLFluff is installed.
        if self.driver_tool_installed is None:
            self.driver_tool_installed = self.driver.installed()
        if not self.driver_tool_installed:  # pragma: no cover
>           raise OSError(f"{self.driver.name} is not installed")
E           OSError: ['/usr/bin/python3.13', '-m', 'sqlfluff.cli.commands'] is 
not installed

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/sqlfluff/diff_quality_plugin.py:61:
 OSError
_______ test_diff_quality_plugin[sql_paths1-expected_violations_lines1] ________

sql_paths = ['linter/parse_error.sql'], expected_violations_lines = {1}
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f2be98c1550>

    @pytest.mark.parametrize(
        "sql_paths,expected_violations_lines",
        [
            (("linter/indentation_errors.sql",), list(range(2, 7))),
            (("linter/parse_error.sql",), {1}),
            # NB: This version of the file is in a directory configured
            # to ignore parsing errors.
            (("linter/diffquality/parse_error.sql",), []),
            (tuple(), []),
        ],
    )
    def test_diff_quality_plugin(sql_paths, expected_violations_lines, 
monkeypatch):
        """Test the plugin at least finds errors on the expected lines."""
    
        def execute(command, exit_codes):
            printable_command_parts = [
                c.decode(sys.getfilesystemencoding()) if isinstance(c, bytes) 
else c
                for c in command
            ]
    
            result = invoke_assert_code(
                ret_code=1 if expected_violations_lines else 0,
                args=[
                    lint,
                    printable_command_parts[2:],
                ],
            )
            return result.output, ""
    
        # Mock the execute function -- this is an attempt to prevent the 
CircleCI
        # coverage check from hanging. (We've seen issues in the past where 
using
        # subprocesses caused things to occasionally hang.)
        monkeypatch.setattr(diff_quality_plugin, "execute", execute)
        monkeypatch.chdir("test/fixtures/")
        violation_reporter = diff_quality_plugin.diff_cover_report_quality(
            options="--processes=1"
        )
        assert len(sql_paths) in (0, 1)
        sql_paths = [str(Path(sql_path)) for sql_path in sql_paths]
    
>       violations_dict = violation_reporter.violations_batch(sql_paths)

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/test/diff_quality_plugin_test.py:53:
 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sqlfluff.diff_quality_plugin.SQLFluffViolationReporter object at 
0x7f2be6e7ed50>
src_paths = ['linter/parse_error.sql']

    def violations_batch(self, src_paths):
        """Return a dictionary of Violations recorded in `src_paths`."""
        # Check if SQLFluff is installed.
        if self.driver_tool_installed is None:
            self.driver_tool_installed = self.driver.installed()
        if not self.driver_tool_installed:  # pragma: no cover
>           raise OSError(f"{self.driver.name} is not installed")
E           OSError: ['/usr/bin/python3.13', '-m', 'sqlfluff.cli.commands'] is 
not installed

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/sqlfluff/diff_quality_plugin.py:61:
 OSError
_______ test_diff_quality_plugin[sql_paths2-expected_violations_lines2] ________

sql_paths = ['linter/diffquality/parse_error.sql']
expected_violations_lines = []
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f2be8ca0210>

    @pytest.mark.parametrize(
        "sql_paths,expected_violations_lines",
        [
            (("linter/indentation_errors.sql",), list(range(2, 7))),
            (("linter/parse_error.sql",), {1}),
            # NB: This version of the file is in a directory configured
            # to ignore parsing errors.
            (("linter/diffquality/parse_error.sql",), []),
            (tuple(), []),
        ],
    )
    def test_diff_quality_plugin(sql_paths, expected_violations_lines, 
monkeypatch):
        """Test the plugin at least finds errors on the expected lines."""
    
        def execute(command, exit_codes):
            printable_command_parts = [
                c.decode(sys.getfilesystemencoding()) if isinstance(c, bytes) 
else c
                for c in command
            ]
    
            result = invoke_assert_code(
                ret_code=1 if expected_violations_lines else 0,
                args=[
                    lint,
                    printable_command_parts[2:],
                ],
            )
            return result.output, ""
    
        # Mock the execute function -- this is an attempt to prevent the 
CircleCI
        # coverage check from hanging. (We've seen issues in the past where 
using
        # subprocesses caused things to occasionally hang.)
        monkeypatch.setattr(diff_quality_plugin, "execute", execute)
        monkeypatch.chdir("test/fixtures/")
        violation_reporter = diff_quality_plugin.diff_cover_report_quality(
            options="--processes=1"
        )
        assert len(sql_paths) in (0, 1)
        sql_paths = [str(Path(sql_path)) for sql_path in sql_paths]
    
>       violations_dict = violation_reporter.violations_batch(sql_paths)

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/test/diff_quality_plugin_test.py:53:
 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sqlfluff.diff_quality_plugin.SQLFluffViolationReporter object at 
0x7f2be6e7e0d0>
src_paths = ['linter/diffquality/parse_error.sql']

    def violations_batch(self, src_paths):
        """Return a dictionary of Violations recorded in `src_paths`."""
        # Check if SQLFluff is installed.
        if self.driver_tool_installed is None:
            self.driver_tool_installed = self.driver.installed()
        if not self.driver_tool_installed:  # pragma: no cover
>           raise OSError(f"{self.driver.name} is not installed")
E           OSError: ['/usr/bin/python3.13', '-m', 'sqlfluff.cli.commands'] is 
not installed

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/sqlfluff/diff_quality_plugin.py:61:
 OSError
_______ test_diff_quality_plugin[sql_paths3-expected_violations_lines3] ________

sql_paths = [], expected_violations_lines = []
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f2bcf47d160>

    @pytest.mark.parametrize(
        "sql_paths,expected_violations_lines",
        [
            (("linter/indentation_errors.sql",), list(range(2, 7))),
            (("linter/parse_error.sql",), {1}),
            # NB: This version of the file is in a directory configured
            # to ignore parsing errors.
            (("linter/diffquality/parse_error.sql",), []),
            (tuple(), []),
        ],
    )
    def test_diff_quality_plugin(sql_paths, expected_violations_lines, 
monkeypatch):
        """Test the plugin at least finds errors on the expected lines."""
    
        def execute(command, exit_codes):
            printable_command_parts = [
                c.decode(sys.getfilesystemencoding()) if isinstance(c, bytes) 
else c
                for c in command
            ]
    
            result = invoke_assert_code(
                ret_code=1 if expected_violations_lines else 0,
                args=[
                    lint,
                    printable_command_parts[2:],
                ],
            )
            return result.output, ""
    
        # Mock the execute function -- this is an attempt to prevent the 
CircleCI
        # coverage check from hanging. (We've seen issues in the past where 
using
        # subprocesses caused things to occasionally hang.)
        monkeypatch.setattr(diff_quality_plugin, "execute", execute)
        monkeypatch.chdir("test/fixtures/")
        violation_reporter = diff_quality_plugin.diff_cover_report_quality(
            options="--processes=1"
        )
        assert len(sql_paths) in (0, 1)
        sql_paths = [str(Path(sql_path)) for sql_path in sql_paths]
    
>       violations_dict = violation_reporter.violations_batch(sql_paths)

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/test/diff_quality_plugin_test.py:53:
 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sqlfluff.diff_quality_plugin.SQLFluffViolationReporter object at 
0x7f2be788eea0>
src_paths = []

    def violations_batch(self, src_paths):
        """Return a dictionary of Violations recorded in `src_paths`."""
        # Check if SQLFluff is installed.
        if self.driver_tool_installed is None:
            self.driver_tool_installed = self.driver.installed()
        if not self.driver_tool_installed:  # pragma: no cover
>           raise OSError(f"{self.driver.name} is not installed")
E           OSError: ['/usr/bin/python3.13', '-m', 'sqlfluff.cli.commands'] is 
not installed

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/sqlfluff/diff_quality_plugin.py:61:
 OSError
=========================== short test summary info ============================
FAILED test/cli/commands_test.py::test__cli__command_directed - TypeError: Cl...
FAILED test/cli/commands_test.py::test__cli__command_dialect - TypeError: Cli...
FAILED test/cli/commands_test.py::test__cli__command_no_dialect[command0] - T...
FAILED test/cli/commands_test.py::test__cli__command_no_dialect[command1] - T...
FAILED test/cli/commands_test.py::test__cli__command_no_dialect[command2] - T...
FAILED test/cli/commands_test.py::test__cli__command_no_dialect[command3] - T...
FAILED test/cli/commands_test.py::test__cli__command_no_dialect[command4] - T...
FAILED 
test/cli/commands_test.py::test__cli__command_parse_error_dialect_explicit_warning
FAILED 
test/cli/commands_test.py::test__cli__command_parse_error_dialect_implicit_warning
FAILED test/cli/commands_test.py::test__cli__command_dialect_legacy - TypeErr...
FAILED test/cli/commands_test.py::test__cli__command_extra_config_fail - Type...
FAILED 
test/cli/commands_test.py::test__cli__command_stdin_filename_config[command0-test/fixtures/cli/stdin_filename/without_config/stdin_filename.sql-0-[L:
  5, P:  1]      |                    join_clause:\n[L:  5, P:  1]      |       
                 keyword:                              'POSITIONAL']
FAILED 
test/cli/commands_test.py::test__cli__command_stdin_filename_config[command1-test/fixtures/an_ansi_config_here.sql-1-Parsing
 errors found and dialect is set to 'ansi'.]
FAILED 
test/cli/commands_test.py::test__cli__command_stdin_filename_config[command2-test/fixtures/cli/stdin_filename/stdin_filename.sql-0-All
 Finished!]
FAILED 
test/cli/commands_test.py::test__cli__command_stdin_filename_config[command3-test/fixtures/cli/stdin_filename/without_config/stdin_filename.sql-0-All
 Finished!]
FAILED 
test/cli/commands_test.py::test__cli__command_stdin_filename_config[command4-test/fixtures/an_ansi_config_here.sql-1-Parsing
 errors found and dialect is set to 'ansi'.]
FAILED 
test/cli/commands_test.py::test__cli__command_stdin_filename_config[command5-test/fixtures/cli/stdin_filename/stdin_filename.sql-0-SELECT\n
    A.COL1,\n    B.COL2\nFROM TABA AS A\nPOSITIONAL JOIN TABB AS B;\n]
FAILED 
test/cli/commands_test.py::test__cli__command_stdin_filename_config[command6-test/fixtures/cli/stdin_filename/without_config/stdin_filename.sql-0-SELECT\n
    A.COL1,\n    B.COL2\nFROM TABA AS A\nPOSITIONAL JOIN TABB AS B;\n]
FAILED 
test/cli/commands_test.py::test__cli__command_stdin_filename_config[command7-test/fixtures/an_ansi_config_here.sql-1-[1
 templating/parsing errors found]]
FAILED 
test/cli/commands_test.py::test__cli__command_stdin_filename_config[command8-test/fixtures/cli/stdin_filename/stdin_filename.sql-0-SELECT\n
    A.COL1,\n    B.COL2\nFROM TABA AS A\nPOSITIONAL JOIN TABB AS B;\n]
FAILED 
test/cli/commands_test.py::test__cli__command_stdin_filename_config[command9-test/fixtures/cli/stdin_filename/without_config/stdin_filename.sql-0-SELECT\n
    A.COL1,\n    B.COL2\nFROM TABA AS A\nPOSITIONAL JOIN TABB AS B;\n]
FAILED 
test/cli/commands_test.py::test__cli__command_stdin_filename_config[command10-test/fixtures/an_ansi_config_here.sql-1-Unfixable
 violations detected.]
FAILED test/cli/commands_test.py::test__cli__command_lint_stdin[command0] - T...
FAILED test/cli/commands_test.py::test__cli__command_lint_stdin[command1] - T...
FAILED test/cli/commands_test.py::test__cli__command_lint_stdin[command2] - T...
FAILED test/cli/commands_test.py::test__cli__command_lint_stdin[command3] - T...
FAILED test/cli/commands_test.py::test__cli__command_lint_empty_stdin - TypeE...
FAILED test/cli/commands_test.py::test__cli__command_render_stdin - TypeError...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command0] - T...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command1] - T...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command2] - T...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command3] - T...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command4] - T...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command5] - T...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command6] - T...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command7] - T...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command8] - T...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command9] - T...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command10] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command11] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command12] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command13] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command14] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command15] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command16] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command17] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command18] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command19] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command20] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command21] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command22] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command23] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command24] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command25] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command26] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command27] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command28] - ...
FAILED test/cli/commands_test.py::test__cli__command_lint_parse[command29] - ...
FAILED 
test/cli/commands_test.py::test__cli__command_lint_parse_with_retcode[command0-1]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_parse_with_retcode[command1-1]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_parse_with_retcode[command2-1]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_parse_with_retcode[command3-0]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_parse_with_retcode[command4-0]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_parse_with_retcode[command5-2]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_parse_with_retcode[command6-1]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_parse_with_retcode[command7-0]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_parse_with_retcode[command8-1]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_parse_with_retcode[command9-1]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_parse_with_retcode[command10-1]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_parse_with_retcode[command11-2]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_parse_with_retcode[command12-1]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_parse_with_retcode[command13-1]
FAILED test/cli/commands_test.py::test__cli__command_rules - TypeError: CliRu...
FAILED test/cli/commands_test.py::test__cli__command_dialects - TypeError: Cl...
FAILED 
test/cli/commands_test.py::test__cli__command__fix[LT01-test/fixtures/linter/indentation_errors.sql0]
FAILED 
test/cli/commands_test.py::test__cli__command__fix[LT01-test/fixtures/linter/whitespace_errors.sql]
FAILED 
test/cli/commands_test.py::test__cli__command__fix[LT01-test/fixtures/linter/indentation_errors.sql1]
FAILED 
test/cli/commands_test.py::test__cli__command__fix[LT02-test/fixtures/linter/indentation_error_hard.sql]
FAILED 
test/cli/commands_test.py::test_cli_fix_even_unparsable[command-line-False]
FAILED 
test/cli/commands_test.py::test_cli_fix_even_unparsable[command-line-True]
FAILED 
test/cli/commands_test.py::test_cli_fix_even_unparsable[config-file-False]
FAILED test/cli/commands_test.py::test_cli_fix_even_unparsable[config-file-True]
FAILED test/cli/commands_test.py::test__cli__command_fix_stdin[select * from 
t-LT02-select * from t]
FAILED test/cli/commands_test.py::test__cli__command_fix_stdin[ select * from 
t-LT02-select * from t]
FAILED test/cli/commands_test.py::test__cli__command_format_stdin[select * from 
t\n-select * from t\n]
FAILED test/cli/commands_test.py::test__cli__command_format_stdin[   select    
*    FRoM     t    -select * from t\n]
FAILED test/cli/commands_test.py::test__cli__command_format_stdin[select\n    
count(*) over (\n        order by a desc \n        range between b row and '10 
seconds' following  -- noqa: PRS\n    ) as c\nfrom d\n-select\n    count(*) 
over (\n        order by a desc \n        range between b row and '10 seconds' 
following  -- noqa: PRS\n    ) as c\nfrom d\n]
FAILED test/cli/commands_test.py::test__cli__command_fix_stdin_logging_to_stderr
FAILED test/cli/commands_test.py::test__cli__command_fix_stdin_safety - TypeE...
FAILED 
test/cli/commands_test.py::test__cli__command_fix_stdin_error_exit_code[create 
TABLE {{ params.dsfsdfds }}.t (a int)-1--v-Fix aborted due to unparsable 
template variables.]
FAILED 
test/cli/commands_test.py::test__cli__command_fix_stdin_error_exit_code[create 
TABLE a.t (a int)-0--]
FAILED 
test/cli/commands_test.py::test__cli__command_fix_stdin_error_exit_code[create 
table a.t (a int)-0--]
FAILED 
test/cli/commands_test.py::test__cli__command_fix_stdin_error_exit_code[select 
col from a join b using (c)-1--v-Unfixable violations detected.]
FAILED 
test/cli/commands_test.py::test__cli__command__fix_check[LT01-test/fixtures/linter/indentation_errors.sql-y-0-0]
FAILED 
test/cli/commands_test.py::test__cli__command__fix_check[LT01-test/fixtures/linter/indentation_errors.sql-n-1-1]
FAILED 
test/cli/commands_test.py::test__cli__command_parse_serialize_from_stdin[None-yaml]
FAILED 
test/cli/commands_test.py::test__cli__command_parse_serialize_from_stdin[None-json]
FAILED 
test/cli/commands_test.py::test__cli__command_parse_serialize_from_stdin[outfile-yaml]
FAILED 
test/cli/commands_test.py::test__cli__command_parse_serialize_from_stdin[outfile-json]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_from_stdin[select 
* from tbl-CP01-expected0-0-yaml]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_from_stdin[select 
* from tbl-CP01-expected0-0-json]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_from_stdin[select 
* from tbl-CP01-expected0-0-none]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_from_stdin[SElect 
* from tbl-CP01-expected1-1-yaml]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_from_stdin[SElect 
* from tbl-CP01-expected1-1-json]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_from_stdin[SElect 
* from tbl-CP01-expected1-1-none]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_from_stdin[SELECT 
{{1}}-JJ01-expected2-1-yaml]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_from_stdin[SELECT 
{{1}}-JJ01-expected2-1-json]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_from_stdin[SELECT 
{{1}}-JJ01-expected2-1-none]
FAILED 
test/cli/commands_test.py::test__cli__command_fail_nice_not_found[command0]
FAILED 
test/cli/commands_test.py::test__cli__command_fail_nice_not_found[command1]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_multiple_files[None-human]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_multiple_files[None-yaml]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_multiple_files[None-json]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_multiple_files[None-github-annotation]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_multiple_files[None-github-annotation-native]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_multiple_files[None-none]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_multiple_files[outfile-human]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_multiple_files[outfile-yaml]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_multiple_files[outfile-json]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_multiple_files[outfile-github-annotation]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_multiple_files[outfile-github-annotation-native]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_multiple_files[outfile-none]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_github_annotation
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_github_annotation_native[test/fixtures/linter/identifier_capitalisation.sql-::group::{filename}\n::error
 title=SQLFluff,file={filename},line=3,col=5,endLine=3,endColumn=8::RF02: 
Unqualified reference 'foo' found in select with more than one referenced 
table/view. [references.qualification]\n::error 
title=SQLFluff,file={filename},line=4,col=1,endLine=4,endColumn=5::LT02: 
Expected indent of 8 spaces. [layout.indent]\n::error 
title=SQLFluff,file={filename},line=4,col=5,endLine=4,endColumn=8::AL02: 
Implicit/explicit aliasing of columns. [aliasing.column]\n::error 
title=SQLFluff,file={filename},line=4,col=5,endLine=4,endColumn=8::CP02: 
Unquoted identifiers must be consistently lower case. 
[capitalisation.identifiers]\n::notice 
title=SQLFluff,file={filename},line=5,col=1,endLine=5,endColumn=5::CP01: 
Keywords must be consistently lower case. [capitalisation.keywords]\n::error 
title=SQLFluff,file={filename},line=5,col=12,end
 Line=5,endColumn=16::CP02: Unquoted identifiers must be consistently lower 
case. [capitalisation.identifiers]\n::error 
title=SQLFluff,file={filename},line=5,col=18,endLine=5,endColumn=22::CP02: 
Unquoted identifiers must be consistently lower case. 
[capitalisation.identifiers]\n::endgroup::\n]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_github_annotation_native[test/fixtures/linter/jinja_spacing.sql-::group::{filename}\n::error
 title=SQLFluff,file={filename},line=3,col=15,endLine=3,endColumn=22::JJ01: 
Jinja tags should have a single whitespace on either side: {{{{foo}}}} 
[jinja.padding]\n::endgroup::\n]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_annotation_level_error_failure_equivalent[github-annotation]
FAILED 
test/cli/commands_test.py::test__cli__command_lint_serialize_annotation_level_error_failure_equivalent[github-annotation-native]
FAILED test/cli/commands_test.py::test_encoding[utf-8-ascii] - TypeError: Cli...
FAILED test/cli/commands_test.py::test_encoding[utf-8-sig-UTF-8-SIG] - TypeEr...
FAILED test/cli/commands_test.py::test_encoding[utf-32-UTF-32] - TypeError: C...
FAILED test/cli/commands_test.py::test_cli_encoding[utf-8-command-line-False]
FAILED test/cli/commands_test.py::test_cli_encoding[utf-8-SIG-command-line-True]
FAILED test/cli/commands_test.py::test_cli_encoding[utf-8-config-file-False]
FAILED test/cli/commands_test.py::test_cli_encoding[utf-8-SIG-config-file-True]
FAILED test/cli/commands_test.py::test_cli_no_disable_noqa_flag - TypeError: ...
FAILED test/cli/commands_test.py::test_cli_disable_noqa_flag - TypeError: Cli...
FAILED test/cli/commands_test.py::test_cli_disable_noqa_except_flag - TypeErr...
FAILED test/cli/commands_test.py::test_cli_disable_noqa_except_non_rules_flag
FAILED test/cli/commands_test.py::test_cli_warn_unused_noqa_flag - TypeError:...
FAILED 
test/cli/commands_test.py::TestProgressBars::test_cli_lint_disabled_progress_bar
FAILED 
test/cli/commands_test.py::TestProgressBars::test_cli_lint_enabled_progress_bar
FAILED 
test/cli/commands_test.py::TestProgressBars::test_cli_lint_enabled_progress_bar_multiple_paths
FAILED 
test/cli/commands_test.py::TestProgressBars::test_cli_lint_enabled_progress_bar_multiple_files
FAILED test/cli/commands_test.py::test__cli__fix_multiple_errors_no_show_errors
FAILED test/cli/commands_test.py::test__cli__fix_multiple_errors_quiet_force
FAILED test/cli/commands_test.py::test__cli__fix_multiple_errors_quiet_check
FAILED test/cli/commands_test.py::test__cli__fix_multiple_errors_show_errors
FAILED test/cli/commands_test.py::test__cli__fix_show_parse_errors - TypeErro...
FAILED 
test/cli/commands_test.py::test__cli__multiple_files__fix_multiple_errors_show_errors
FAILED test/cli/commands_test.py::test__cli__render_fail - TypeError: CliRunn...
FAILED test/cli/commands_test.py::test__cli__render_pass - TypeError: CliRunn...
FAILED 
test/diff_quality_plugin_test.py::test_diff_quality_plugin[sql_paths0-expected_violations_lines0]
FAILED 
test/diff_quality_plugin_test.py::test_diff_quality_plugin[sql_paths1-expected_violations_lines1]
FAILED 
test/diff_quality_plugin_test.py::test_diff_quality_plugin[sql_paths2-expected_violations_lines2]
FAILED 
test/diff_quality_plugin_test.py::test_diff_quality_plugin[sql_paths3-expected_violations_lines3]
==== 155 failed, 8365 passed, 1 skipped, 5 deselected in 656.45s (0:10:56) =====
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; python3.13 -m pytest -k 'not 
appdir and not test__linter__path_from_paths__specific_bad_ext and not 
test__plugin_manager_registers_example_plugin and not 
test__plugin_example_rules_returned[Rule_Example_L001 and not 
test__plugin_default_config_read[Example_L001-forbidden_columns '
        rm -fr -- /tmp/dh-xdg-rundir-ydHZ23zI
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12 
3.13" returned exit code 13
make: *** [debian/rules:13: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202502/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:sqlfluff, so that this is still
visible in the BTS web page for this package.

Thanks.

--- End Message ---
--- Begin Message ---
On Fri, Feb 21, 2025 at 11:29:40PM +0000, Santiago Vila wrote:
During a rebuild of all packages in unstable, your package failed to build:
[...]
==== 155 failed, 8365 passed, 1 skipped, 5 deselected in 656.45s (0:10:56) =====

I've verified that this no longer fails after python-click was reverted to 8.1.8 (https://tracker.debian.org/news/1622637/accepted-python-click-8200really818-1-source-into-unstable/).

I've also proposed https://github.com/sqlfluff/sqlfluff/pull/6706 upstream to fix this for the future. (Sometimes I've been cherry-picking this sort of thing into Debian, but in this case it seems a bit too large and potentially conflict-prone.)

Thanks,

--
Colin Watson (he/him)                              [cjwat...@debian.org]

--- End Message ---

Reply via email to