[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1121427: trixie-pu: package pylint-django/2.0.13-5+deb13u1



Package: release.debian.org
Severity: normal
Tags: trixie
X-Debbugs-Cc: pylint-django@packages.debian.org, igo95862@yandex.ru
Control: affects -1 + src:pylint-django
User: release.debian.org@packages.debian.org
Usertags: pu

The runtime dependency of pylint-django, astroid, has been updated in
trixie in a way that broke pylint-django, but because of a deficient
error-handling code, this was never caught:

    try:
        # pylint: disable=import-outside-toplevel
        from pylint_django.augmentations import apply_augmentations
        apply_augmentations(linter)
    except ImportError:
        # probably trying to execute pylint_django when Django isn't installed
        # in this case the django-not-installed checker will kick-in
        pass

This code is supposed to catch the absence of Django, but also catches
and silences the no longer correct import in
pylint_django/augmentations/__init__.py.

This upload fixes the import to match what the astroid package in trixie
provides.

Without this change, pylint-django is completely unusable in trixie (see
#1121404).

[ Tests ]
I have added a new smoke autopkgtest that verifies that the package can
actually be imported.

[ Risks ]
The fix is trivial.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]
1. A new patch fixes the import paths. No backwards compatibility
provided (no fallback imports).
2. A new autopkgtest verifies the import actually succeeds.
3. The package used to run unit tests at some point in the past, but
this is no longer the case: the test is broken (as it requires parts of
pylint source package not shipped in the binary package), and is not
enabled. To reduce potential confusion, I have deleted this file.
4. A trivial salsa-ci.yml file is added to enable running the
autopkgtest on Salsa prior to the upload.

[ Other info ]
As can be evidenced seen at https://salsa.debian.org/python-team/packages/pylint-django/-/pipelines,
the new autopkgtest catches the issue.
diff --git a/debian/changelog b/debian/changelog
index b4c2ce0ad5ec..0edc8864d5e4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+pylint-django (2.0.13-5+deb13u1) trixie; urgency=medium
+
+  * Add salsa-ci.yml.
+  * Add smoke autopkgtest.
+  * Delete unused broken unit-tests-p3 autopkgtest.
+  * Fix scoped_nodes import (Closes: #1121404).
+
+ -- Andrej Shadura <andrewsh@debian.org>  Wed, 26 Nov 2025 10:45:39 +0100
+
 pylint-django (2.0.13-5) unstable; urgency=medium
 
   * QA upload.
diff --git a/debian/patches/fix-import-scoped-nodes.patch b/debian/patches/fix-import-scoped-nodes.patch
new file mode 100644
index 000000000000..a0896bbaeabb
--- /dev/null
+++ b/debian/patches/fix-import-scoped-nodes.patch
@@ -0,0 +1,38 @@
+From: Carl <git@carlcrowder.com>
+Date: Sun, 2 Jan 2022 12:20:22 +0100
+Subject: Fix import of scoped nodes as some members moved
+
+Bug-Debian: https://bugs.debian.org/1121404
+Origin: backport, https://github.com/pylint-dev/pylint-django/commit/9811df2dcbc766077bcca088a8d11366f369821b.patch
+---
+ pylint_django/augmentations/__init__.py | 2 +-
+ pylint_django/transforms/fields.py      | 3 ++-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/pylint_django/augmentations/__init__.py b/pylint_django/augmentations/__init__.py
+index 27571b5..5f469e2 100644
+--- a/pylint_django/augmentations/__init__.py
++++ b/pylint_django/augmentations/__init__.py
+@@ -6,7 +6,7 @@ import itertools
+ from astroid import InferenceError
+ from astroid.objects import Super
+ from astroid.nodes import ClassDef, ImportFrom, Attribute
+-from astroid.scoped_nodes import ClassDef as ScopedClass, Module
++from astroid.nodes.scoped_nodes import ClassDef as ScopedClass, Module
+ 
+ from pylint.checkers.base import DocStringChecker, NameChecker
+ from pylint.checkers.design_analysis import MisdesignChecker
+diff --git a/pylint_django/transforms/fields.py b/pylint_django/transforms/fields.py
+index 5d50c41..2a3ac1f 100644
+--- a/pylint_django/transforms/fields.py
++++ b/pylint_django/transforms/fields.py
+@@ -1,7 +1,8 @@
+ from astroid import (
+-    MANAGER, scoped_nodes, nodes, inference_tip,
++    MANAGER, nodes, inference_tip,
+     AstroidImportError
+ )
++from astroid.nodes import scoped_nodes
+ 
+ from pylint_django import utils
+ 
diff --git a/debian/patches/series b/debian/patches/series
index 6dfb22488cba..81e5636dc248 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
 fix-pylint.patch
 backport-pylint-3.x-fixes.patch
+fix-import-scoped-nodes.patch
diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml
new file mode 100644
index 000000000000..1f985fc12ee6
--- /dev/null
+++ b/debian/salsa-ci.yml
@@ -0,0 +1,5 @@
+include:
+  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml
+
+variables:
+  RELEASE: trixie
diff --git a/debian/tests/control b/debian/tests/control
index b52728fa7375..8bf5e877a0c3 100644
--- a/debian/tests/control
+++ b/debian/tests/control
@@ -1,3 +1,3 @@
-Tests: django-sample
+Tests: smoke, django-sample
 Depends: @, python3-django
 Restrictions: allow-stderr
diff --git a/debian/tests/smoke b/debian/tests/smoke
new file mode 100755
index 000000000000..6544be6b5fa0
--- /dev/null
+++ b/debian/tests/smoke
@@ -0,0 +1,3 @@
+#!/bin/sh -e
+
+python3 -c "from pylint_django import augmentations"
diff --git a/debian/tests/unit-tests-p3 b/debian/tests/unit-tests-p3
deleted file mode 100755
index f198e65382a0..000000000000
--- a/debian/tests/unit-tests-p3
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-cd ${AUTOPKGTEST_TMP:-/tmp}
-python3 /usr/lib/python3/dist-packages/pylint_django/tests/test_func.py -v

Reply to: