Skip to content

Conversation

@BrandtKruger
Copy link
Contributor

Explain your changes

This commit adds conditional pylint installation using PEP 508 environment
markers in the [project.optional-dependencies] section:

  • Python 3.10+: pylint >=4.0.0 (latest version)
  • Python 3.9: pylint >=2.0, <4.0 (compatible version)

Changes:

  • Add 'dev' optional dependency group with conditional pylint installation
  • Remove hardcoded pylint = "^4.0.0" from [tool.poetry.dev-dependencies]
  • Add documentation comments explaining the conditional installation

This maintains full backwards compatibility with Python 3.9 while allowing
Python 3.10+ users to benefit from pylint v4 features.

Fixes Python 3.9 CI/CD compatibility issue with pylint v4 upgrade.

Checklist

🛟 If you need help, consider asking for advice over in the Kinde community.

renovate bot and others added 2 commits November 20, 2025 13:49
- Add conditional pylint installation in [project.optional-dependencies]
  - Python 3.10+: pylint >=4.0.0
  - Python 3.9: pylint >=2.0, <4.0
- Remove hardcoded pylint from [tool.poetry.dev-dependencies]
- Maintains backwards compatibility with Python 3.9 while allowing
  Python 3.10+ users to use pylint v4

Fixes Python 3.9 CI/CD compatibility issue with pylint v4 upgrade.
This PR builds on top of PR kinde-oss#133 (pylint v4 upgrade) and adds
Python 3.9 compatibility.
@BrandtKruger BrandtKruger requested a review from a team as a code owner November 25, 2025 18:15
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 25, 2025

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • pyproject.toml is excluded by !**/*.toml

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

The README.md file was updated with a Development Setup section documenting the editable installation process with development dependencies, including specific tool requirements and conditional pylint version specifications based on Python version compatibility.

Changes

Cohort / File(s) Summary
Development Documentation
README.md
Added Development Setup section with installation instructions (pip install -e ".[dev]"), development tool list (pytest, mypy, pylint, etc.), and conditional pylint version constraints by Python version (3.10+: >=4.0.0; 3.9: >=2.0, <4.0). Content duplicated in two locations.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Duplication concern: The Development Setup section appears twice in the README—verify intentionality and consistency between both instances
  • Version constraint accuracy: Confirm that the conditional pylint version specifications (Python 3.10+ → >=4.0.0; Python 3.9 → >=2.0, <4.0) align with project requirements and are correctly reflected in any pyproject.toml or setup.py configuration files

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: fixing pylint compatibility for Python 3.9 by implementing conditional dependency installation based on Python version.
Description check ✅ Passed The description clearly explains the changes made, including conditional pylint installation, removal of hardcoded dependencies, and documentation additions, which align with the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@codecov
Copy link

codecov bot commented Nov 25, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copy link

@dtoxvanilla1991 dtoxvanilla1991 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, with the following thought:

  • since users now must use pip install -e ".[dev], should this be more visibly and clearly documented elsewhere other than .toml file comment?

Addresses reviewer feedback by documenting the requirement to use
'pip install -e ".[dev]"' for installing development dependencies.
Also explains the conditional pylint installation based on Python version.
@BrandtKruger BrandtKruger requested a review from a team as a code owner December 6, 2025 15:17
@BrandtKruger
Copy link
Contributor Author

Looks good to me, with the following thought:

  • since users now must use pip install -e ".[dev], should this be more visibly and clearly documented elsewhere other than .toml file comment?

I added some details in the ReadMe document.

Addresses co-worker feedback: pyproject.toml is used both for packaging
and Poetry environment management. Since Poetry doesn't support multiple
conditional version constraints for the same package, we add pylint with
the Python 3.9-compatible version (>=2.0,<4.0) to ensure Poetry workflows
don't break.

Python 3.10+ users can still get pylint >=4.0.0 via:
- pip install -e ".[dev]" (uses conditional markers from [project.optional-dependencies])
- Manual upgrade after poetry install

This maintains backward compatibility with Python 3.9 while supporting
both Poetry and pip-based workflows.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants