Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/documentation_task.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ body:
required: true

- type: textarea
id: current_state
id: current-state
attributes:
label: Current State (If Updating)
description: Briefly describe existing content or gap.
Expand All @@ -26,7 +26,7 @@ body:
required: false

- type: textarea
id: proposed_changes
id: proposed-changes
attributes:
label: Proposed Changes
description: Key additions, removals, or restructures.
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/release_draft.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag-name: ${{ github.event.inputs.tag-name }}
from-tag-name: ${{ github.event.inputs.from-tag-name }}
chapters: |
- {"title": "Entries to skip 🚫", "label": "duplicate"}
- {"title": "Entries to skip 🚫", "label": "invalid"}
Expand All @@ -89,9 +90,11 @@ jobs:

- name: Create and Push Tag
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd
env:
TAG_NAME: ${{ github.event.inputs.tag-name }}
with:
script: |
const tag = core.getInput('tag-name')
const tag = process.env.TAG_NAME
const ref = `refs/tags/${tag}`;
const sha = context.sha; // The SHA of the commit to tag

Expand All @@ -104,7 +107,6 @@ jobs:

console.log(`Tag created: ${tag}`);
github-token: ${{ secrets.GITHUB_TOKEN }}
tag-name: ${{ github.event.inputs.tag-name }}

- name: Create Draft Release
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b
Expand Down
4 changes: 0 additions & 4 deletions .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -104,10 +104,6 @@ recursive=no
# source root.
source-roots=

# When enabled, pylint would attempt to guess common misconfiguration and emit
# user-friendly hints instead of false-positive error messages.
suggestion-mode=yes

# Allow loading of arbitrary C extensions. Extensions are imported into the
# active Python interpreter and may run arbitrary code.
unsafe-load-any-extension=no
Expand Down
8 changes: 4 additions & 4 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
pytest==8.4.2
pytest-cov==6.3.0
pytest-mock==3.15.0
pylint==3.3.8
pytest==9.0.1
pytest-cov==7.0.0
pytest-mock==3.15.1
pylint==4.0.4
Comment on lines +1 to +4
Copy link

@coderabbitai coderabbitai bot Dec 5, 2025

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🌐 Web query:

pytest-cov 7.0.0 breaking changes migration guide

💡 Result:

Summary — key breaking change in pytest-cov 7.0.0 and how to migrate

  • What changed: pytest-cov 7.0.0 removed built-in subprocess measurement (the old .pth-based behavior). It now requires you to use coverage.py’s subprocess patching instead, and pytest-cov 7.0.0 requires coverage >= 7.10.6. [1]

  • Migration steps (quick):

    1. Ensure coverage is at least 7.10.6 (pip install -U coverage>=7.10.6). [1]
    2. Enable coverage’s subprocess patch in your coverage config:
      • .coveragerc:
        [run]
        patch = subprocess
      • or pyproject.toml:
        [tool.coverage.run]
        patch = ["subprocess"]
        Note: enabling the subprocess patch also sets parallel = true automatically. If coverage still differs from previous results you may need to enable additional patches per coverage’s docs. [2]
    3. Remove any reliance in your project on pytest-cov’s old .pth behavior (no opt-out existed), and prefer configuring subprocess behavior via coverage.py. [1][2]
  • Other notes: packaging metadata moved to pyproject.toml/hatchling and some test deps were removed — these are not functionally breaking for usage. [1]

Sources: pytest-cov changelog and subprocess support docs. [1][2]


🌐 Web query:

pylint 4.0.4 breaking changes release notes

💡 Result:

Pylint 4.0.4 release notes list bugfixes (false positives) but no new breaking changes; see the 4.0.4 entry (Nov 30, 2025). The notable breaking changes were introduced in 4.0.0 (Oct 12, 2025), chiefly:

  • invalid-name behavior changed for module-level constants vs reassigned variables (now uses --variable-rgx when reassigned).
  • Pylint requires astroid >= 4.0.0 and adds Python 3.14 support.
    Sources: Pylint what's new (4.0.4 and 4.0.0). [1][2]

References
[1] Pylint — What's new (4.0.4 / 4.0).
[2] pylint-dev/pylint — Releases (breaking changes summary).


🏁 Script executed:

# Check if there are any pylint or pytest configuration files in the codebase
find . -type f \( -name ".pylintrc" -o -name "pyproject.toml" -o -name "pytest.ini" -o -name "setup.cfg" -o -name ".pylintignore" \) 2>/dev/null | head -20

Repository: AbsaOSS/generate-release-notes

Length of output: 102


🏁 Script executed:

cat -n ./.pylintrc

Repository: AbsaOSS/generate-release-notes

Length of output: 26357


🏁 Script executed:

cat -n ./pyproject.toml

Repository: AbsaOSS/generate-release-notes

Length of output: 332


🏁 Script executed:

# Check if coverage is listed in requirements or has version constraints
grep -r "coverage" . --include="*.txt" --include="*.toml" --include="*.cfg" 2>/dev/null

Repository: AbsaOSS/generate-release-notes

Length of output: 207


🏁 Script executed:

cat requirements.txt

Repository: AbsaOSS/generate-release-notes

Length of output: 313


🏁 Script executed:

# Search for module-level reassignments that might trigger pylint's invalid-name change
rg "^[a-zA-Z_][a-zA-Z0-9_]*\s*=" --type py -A 1 | head -50

Repository: AbsaOSS/generate-release-notes

Length of output: 4466


Configure pytest-cov 7.0.0 subprocess patching and add coverage version constraint.

The pytest-cov 7.0.0 upgrade requires two critical changes:

  1. Missing subprocess patch configuration: pytest-cov 7.0.0 removed built-in subprocess measurement and now requires coverage.py's subprocess patching. Add to pyproject.toml under [tool.coverage.run]:

    patch = ["subprocess"]
  2. Missing coverage version constraint: Add coverage>=7.10.6 to requirements.txt to ensure compatibility with pytest-cov 7.0.0.

For pylint 4.0.4, the .pylintrc configuration is compatible. The 4.0.0 breaking change for invalid-name primarily affects reassigned module-level variables, and the codebase's constants follow the configured UPPER_CASE naming style.

🤖 Prompt for AI Agents
In requirements.txt around lines 1 to 4, pytest-cov 7.0.0 requires coverage
subprocess patching and a minimum coverage version; update requirements.txt to
add a coverage dependency (coverage>=7.10.6) alongside existing test deps, and
add the subprocess patch config to pyproject.toml under [tool.coverage.run] by
adding patch = ["subprocess"]; ensure the coverage version is compatible with
pytest-cov 7.0.0 and keep pylint unchanged.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Tests are running locally and in the CI pipeline. Not implementing this issue.

Copy link

Choose a reason for hiding this comment

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

@tmikula-dev, understood! If your tests are running successfully both locally and in CI, then the subprocess patching configuration isn't needed for your use case. The pytest-cov 7.0.0 migration is only critical for projects that specifically measure coverage in subprocesses.


✏️ Learnings added
Learnt from: tmikula-dev
Repo: AbsaOSS/generate-release-notes PR: 221
File: requirements.txt:1-4
Timestamp: 2025-12-05T10:54:26.761Z
Learning: In the generate-release-notes project, pytest-cov 7.0.0 works without the subprocess patch configuration, and tests run successfully without adding coverage>=7.10.6 or configuring [tool.coverage.run] patch = ["subprocess"].

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

requests==2.32.5
black==25.11.0
PyYAML==6.0.3
Expand Down