DFSG NEW Queue

DFSG, Licensing & New Packages Team

python-django-codemod 3.0.0-1

Package Information

Descriptionautomatically fix Django deprecations (Python3 version)

When maintaining a Django site, over time you'll find yourself to a point where you'll need to update to the next major version of Django. When Django APIs changes, functions move or are removed, changing usages in your project might add up to many changes. Often these changes are simple to do, but sometimes a simple "find and replace" is not possible.

This project solves this problem by providing codemodders for simple changes like this. A codemodder re-writes your code from the old way to the new way.

With the help of AST analysis, we're able to understand what modifications are applicable, remove imports as they become irrelevant, and add missing ones as they are needed.

This package contains the Python 3 version of the CLI.

MaintainerDebian Python Team <team+python@tracker.debian.org>
Changed ByMichael Fladischer <fladi@debian.org>
Sponsorfladi@debian.org
Distributionunstable
Architectureall
VCSgit: https://salsa.debian.org/python-team/packages/python-django-codemod.git (browse)
Closes#1153544
Trackerhttps://tracker.debian.org/pkg/python-django-codemod
Uploaded1 hour ago

New Package Report

.changes◂
Sourcepython-django-codemod
Version3.0.0-1
Changed-ByMichael Fladischer <fladi@debian.org>
Architecturesource all
Distributionunstable
DateMon, 09 Nov 2026 15:17:47 +0000
Changelog◂
python-django-codemod (3.0.0-1) unstable; urgency=low
 .
   * Initial release (Closes: #1153544).
.dsc◂
Sectionpython
Priorityoptional
Componentmain
Package-Listdjango-codemod deb python optional arch=all
python-django-codemod-doc deb doc optional arch=all
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: python-django-codemod
Upstream-Contact: Bruno Alla <alla.brunoo@gmail.com>
Source: https://github.com/browniebroke/django-codemod

Files: *
Copyright: 2020, Bruno Alla <alla.brunoo@gmail.com>
License: Expat

Files: debian/*
Copyright: 2026, Michael Fladischer <fladi@debian.org>
License: Expat

License: Expat
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:
 .
 The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.
 .
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.

DFSG Assistant LLM REVIEW 0 blocker, 0 important, 0 minor

This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.

Reviewed 0 hours ago.

Report◂

DFSG NEW review for python-django-codemod version 3.0.0-1

Summary

  • Licensing is DFSG-compliant and debian/copyright is accurate: Yes
  • Packaging is of good quality: Yes
  • Issues: 0 blocker, 0 important, 0 minor
  • debian/watch: version 5
  • debian/copyright: machine-readable
  • Scan before the review: nothing found

Licensing

The whole source is MIT/Expat: LICENSE carries the Expat text with Copyright (c) 2020, Bruno Alla, and pyproject.toml declares license = "MIT". debian/copyright is DEP-5, with Files: * for upstream (whose * also covers the dotfiles and subdirectories) and a Files: debian/* stanza, and it reproduces the full Expat text. A tree-wide grep for copyright notices, SPDX tags and other licences found nothing beyond that single holder, and no non-free terms. No third-party code, fonts or data with separate licensing are vendored.

Packaging

Competent Python-team packaging: compat 14 with the pybuild/pyproject addons, dh-sequence-python3 and dh-sequence-sphinxdoc, Build-Depends matching pyproject's runtime, test and docs dependencies (all present in the archive), debian/pybuild.testfiles copying exactly the files pytest needs, man pages generated with click-man and matched by django-codemod.manpages and debian/clean, documentation built into the -doc package with a doc-base file, and a correct changelog, Vcs-*, upstream/metadata and gbp.conf. Standards-Version 4.7.4 is current against Policy 4.7.4.1. Nothing here would fail a sponsor's check.

Issues

None.

Verified ◂
  • Read every file in debian/ (changelog, clean, control, copyright, django-codemod.docs, django-codemod.install, django-codemod.manpages, gbp.conf, pybuild.testfiles, python-django-codemod-doc.doc-base, rules, source/format, upstream/metadata) and the .dsc beside the tree.
  • Prescan: it listed only its author check, which found no holder missing from debian/copyright and no other file to account for. I re-ran the copyright/licence greps over the tree with gitignore and hidden files enabled and reached the same result.
  • LICENSE (Expat/MIT text, Copyright (c) 2020, Bruno Alla) and pyproject.toml (license = "MIT", author Bruno Alla) agree with debian/copyright; the Expat text in the copyright file is the full notice, so no pointer to /usr/share/common-licenses is needed.
  • debian/copyright is DEP-5 1.0, with Files: * first and Files: debian/* later overriding it; its * pattern reaches dotfiles and subdirectories, so .github/, .all-contributorsrc, docs/, templates/, assets/ and uv.lock are all covered.
  • No non-free wording anywhere: greps for non-commercial, no-derivatives, field-of-use, 'All rights reserved', GPL/LGPL/Apache/MPL/public-domain wording found nothing.
  • .github/CODE_OF_CONDUCT.md is an adaptation of Contributor Covenant 2.0 (attribution and links are in the file) with no separate licence notice; upstream distributes it under the project licence and the file is covered by Files: *.
  • .all-contributorsrc and the README contributor table name project contributors (Aarni Koskela, Chris VanderKolk, John Vandenberg, etc.); these are contribution credits, not copyright notices, and no file carries a separate holder.
  • uv.lock is a generated dependency lock whose source is pyproject.toml plus the resolver's input; it is data, is not installed, and raises no licensing or DFSG question. CHANGELOG.md, templates/.changelog-old.md and templates/CHANGELOG.md.j2 are upstream's own generated changelog material with the generator template present in the tree.
  • Images assets/djangocodemod-stroke.png, assets/djangocodemod.svg, docs/_static/img/favicon.ico, docs/_static/img/logo-black.svg and docs/_static/img/logo-white.svg are the project's own artwork, covered by Files: *; not opened (binary/vector images).
  • No vendored third-party library, and no copied Django code: greps for 'Django Software Foundation', 'BSD', 'adapted from' and 'copied from' over src/ and tests/ found only prose comparisons in README.md and docstrings.
  • All Build-Depends resolve in apt-cache: furo (2025.12.19+dfsg-2), click-man (0.5.2-0.2), python3-click (8.3.3), python3-libcst (1.8.6), python3-pathspec (1.1.1), python3-rich (15.0.0), python3-rich-click (1.9.9), python3-parameterized, python3-pytest (9.1.1, so pyproject's minversion=9.0 holds), python3-pytest-mock, python3-pytest-cov, python3-myst-parser, python3-sphinx, python3-setuptools (84.2.0, above the 77.0.3 build requirement), pybuild-plugin-pyproject, dh-sequence-python3, dh-sequence-sphinxdoc.
  • Upstream pins libcst==1.9 while Debian ships 1.8.6; dh_python3's pydist fallback data maps libcst to an unversioned python3-libcst, so the generated Depends is satisfiable (checked in /usr/share/dh-python/dist/cpython3_fallback and dhpython/pydist.py), and the imported libcst API is long-standing.
  • rules: pybuild build system, sphinx html built into python-django-codemod-doc's html dir in execute_before_dh_sphinxdoc (skipped with nodoc), click-man man pages generated in execute_before_dh_installman, all three matched by django-codemod.manpages and removed by debian/clean plus execute_before_dh_clean; PYBUILD_AFTER_TEST removes the coverage/pytest artefacts from the build dir.
  • The CLI has a djcodemod group with run and list subcommands, matching djcodemod.1, djcodemod-run.1 and djcodemod-list.1; the console script djcodemod and the module plus dist-info installed by django-codemod.install match pyproject's scripts.djcodemod.
  • debian/pybuild.testfiles lists conftest.py, pyproject.toml and tests, which is what pytest needs at test time (tests import only click, libcst, pathspec, pytest, parameterized and pytest-mock, all in Build-Depends).
  • changelog is 3.0.0-1 to unstable with a plausible existing ITP closure (not verifiable here), Vcs-Browser/Vcs-Git point at the Python team's salsa repo, upstream/metadata and gbp.conf are in their usual form, source/format is 3.0 (quilt), and the doc-base section, index and glob are consistent with the html the rules build.
  • uscan found the packaged version as the newest upstream release (upstream 3.0.0, packaged 3.0.0).
Not confirmed ◂
  • autopkgtest is not installed on the reviewing system, so I could not inspect the test dpkg/autopkgtest generates for Testsuite: autopkgtest-pkg-pybuild and how it provisions python3-pytest for the run; pybuild's own build-time test selection does pick pytest because python3-pytest is in Build-Depends.
Proposed changes ◂

None.

Uploader's response to the LLM review

The uploader was emailed about the review 0 hours ago.

Back to Dashboard | View all reviews for this package