Skip to content

[deps] Dropped support for Python 3.10 (EOL) - #183

Open
dee077 wants to merge 1 commit into
masterfrom
issues/182-drop-python-3.10
Open

dee077 wants to merge 1 commit into
masterfrom
issues/182-drop-python-3.10

Conversation

@dee077

@dee077 dee077 commented Oct 30, 2026

Copy link
Copy Markdown
Member

Checklist

Reference to Existing Issue

Closes #182.

Description of Changes

  • Built the PyPI package with Python 3.11 since Python 3.10 reached end of life. The CI matrix and python_requires already started at Python 3.11.
  • Removed the Python 2 urlparse and mock import fallbacks.
  • Removed the Python 2 coding declaration from runtests.py.

- Built the PyPI package with Python 3.11 since Python 3.10 reached end of life.
- Removed the Python 2 urlparse and mock import fallbacks.
- Removed the Python 2 coding declaration from runtests.py.

Closes #182
@coderabbitai

coderabbitai Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 36c723be-814f-440d-982d-c4ee8570ccec
Commits

Reviewing files that changed from the base of the PR and between 136c30c and 0b825e3.

Files selected for processing: 5
  • .github/workflows/pypi.yml
  • netdiff/parsers/base.py
  • netdiff/parsers/cnml.py
  • runtests.py
  • tests/test_base.py
Files with no reviewable changes: 1
  • runtests.py

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Recent review details
Context from checks skipped due to timeout: 5
  • GitHub Check: Python==3.11
  • GitHub Check: Python==3.13
  • GitHub Check: Run zizmor
  • GitHub Check: Analyze (actions)
  • GitHub Check: Analyze (python)
Additional context used
Code guidelines: 1
AGENTS.md — auto-discovered
Path-based instructions: 4
Do not complain about dependencies installed from controlled mutable OpenWISP branches.

CodeRabbit configuration file

Files:

  • .github/workflows/pypi.yml
Ensure tests cover relevant success, error, boundary, and unusual input scenarios.

CodeRabbit configuration file

Files:

  • tests/test_base.py
Flag potential security vulnerabilities Flag obvious performance regressions, such as heavy loops, repeated I/O, or unoptimized queries Flag unused or redundant code Flag outdated or incorrect comments/docstrings Ensure new code handles err...

CodeRabbit configuration file

Files:

  • .github/workflows/pypi.yml
  • netdiff/parsers/cnml.py
  • netdiff/parsers/base.py
  • tests/test_base.py
Source excerpt: Add or update focused tests for every behavior change.

CodeRabbit inference engine (AGENTS.md)

Files:

  • tests/test_base.py
Additional comments: 4
.github/workflows/pypi.yml: 1

32-32: LGTM!

netdiff/parsers/base.py: 1

2-2: LGTM!

netdiff/parsers/cnml.py: 1

2-2: LGTM!

tests/test_base.py: 1

3-3: LGTM!

Walkthrough

The PyPI publishing workflow now uses Python 3.11 instead of Python 3.10. The parser and test code import URL parsing and mocking directly from the Python standard library. The Python 2 encoding declaration was removed from the test runner.

Priority: Low

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Other

Possibly related PRs

  • openwisp/netdiff#180: Both pull requests change the Python version used by the PyPI publishing workflow.

Suggested reviewers: nemesifier, pandafy

Merge Risk: Minimal · up to 0b825

The compatibility updates align the publishing workflow and imports with the package’s supported Python versions, with no identified merge-blocking risk.

Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title uses the required [deps] prefix and accurately describes the main change: dropping Python 3.10 support.
Description check Passed The description follows the required template, includes the checklist, issue reference, and a clear summary of the changes. It marks testing and documentation as not applicable, which is consistent wi…
Linked Issues check Passed Issue #182 requires Python 3.11 or later in package metadata, CI, and the PyPI workflow. setup.py has python_requires=">=3.11", and .github/workflows/ci.yml uses Python 3.11, 3.12, and 3.13. Thi…
Out of Scope Changes check Passed All changed files support Issue #182. The workflow update removes Python 3.10 from package publishing. The import and encoding changes remove compatibility code for Python 2 or older Python versions. …
Ui Changes, Regression Test, Docs Passed PASS. The PR changes a PyPI workflow and Python compatibility imports. It does not change an end-user UI, add a feature, or alter a documented feature. The compatibility cleanup is a trivial maintenan…
Full details: Description check

Explanation

The description follows the required template, includes the checklist, issue reference, and a clear summary of the changes. It marks testing and documentation as not applicable, which is consistent with the changes. No relevant screenshots are needed for this workflow and compatibility update.

Full details: Linked Issues check

Explanation

Issue #182 requires Python 3.11 or later in package metadata, CI, and the PyPI workflow. setup.py has python_requires=">=3.11", and .github/workflows/ci.yml uses Python 3.11, 3.12, and 3.13. This PR changes .github/workflows/pypi.yml from Python 3.10 to 3.11. It also removes the legacy urlparse, mock, and Python 2 encoding compatibility code. These changes address the stated coding requirements.

Full details: Out of Scope Changes check

Explanation

All changed files support Issue #182. The workflow update removes Python 3.10 from package publishing. The import and encoding changes remove compatibility code for Python 2 or older Python versions. The test import change supports the compatibility cleanup.

Full details: Ui Changes, Regression Test, Docs

Explanation

PASS. The PR changes a PyPI workflow and Python compatibility imports. It does not change an end-user UI, add a feature, or alter a documented feature. The compatibility cleanup is a trivial maintenance change, and the existing BaseParser and CnmlParser tests run in the CI workflow. The changelog already documents dropped Python 3.10 support.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[deps] Remove Python 3.10 (EOL)

1 participant