Skip to content

Conversation

@VineetC137
Copy link

@VineetC137 VineetC137 commented Jan 22, 2026

This PR documents the Python version that is tested and known to work with the PictoPy backend.

Motivation:

  • New contributors may use unsupported Python versions (e.g. 3.9 or 3.13+)
  • This leads to avoidable dependency installation failures, especially on Windows
  • CI currently runs backend and sync-microservice builds using Python 3.11, but this was undocumented

Changes:

  • Added a Supported Python Versions section to README
  • Added a reference in CONTRIBUTING.md

Fixes #1055

Summary by CodeRabbit

  • Documentation
    • Enhanced documentation setup instructions with improved Python environment requirements, including explicit pip references and clearer links to backend Python version information
    • Introduced new section detailing supported backend Python versions (3.11), with comprehensive compatibility notes highlighting potential issues with older versions (3.9) and newer versions (3.13+), with particular attention to Windows system considerations

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 22, 2026

📝 Walkthrough

Walkthrough

The changes document supported Python versions by adding a new section to the README specifying Python 3.11 as supported and updating CONTRIBUTING.md to reference the documented versions, improving contributor onboarding clarity.

Changes

Cohort / File(s) Summary
Documentation Updates
CONTRIBUTING.md, README.md
Added "Supported Python Versions (Backend)" section to README specifying Python 3.11 with notes on compatibility issues with versions 3.9 and 3.13+, especially on Windows. Updated CONTRIBUTING.md setup instructions to reference the documented Python version requirements in README.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 A rabbit hops through docs so bright,
Python versions now in sight!
3.11 shall be the way,
No more Windows debugging day!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: documenting supported Python versions to improve Windows onboarding, which aligns with the PR's primary objective.
Linked Issues check ✅ Passed The PR successfully addresses all coding requirements from issue #1055: documents supported Python versions (3.11) in README and references it in CONTRIBUTING.md.
Out of Scope Changes check ✅ Passed All changes are directly scoped to the linked issue: updates to CONTRIBUTING.md and README.md document Python version requirements as specified.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@README.md`:
- Around line 33-40: Update the "Supported Python Versions (Backend)" section to
include Python 3.12 alongside 3.11 so the README matches CI; specifically add "-
**Python 3.12**" under the Supported Python Versions (Backend) header (the same
block that currently lists "**Python 3.11**") and ensure the surrounding note
about older/newer versions remains accurate given CI uses Python 3.12 in
build-and-release.yml.

Comment on lines +33 to +40
## Supported Python Versions (Backend)

The PictoPy backend is tested and known to work with:

- **Python 3.11**

Using older or newer Python versions (for example, Python 3.9 or Python 3.13+) may lead to dependency installation or build issues, especially on Windows.

Copy link
Contributor

@coderabbitai coderabbitai bot Jan 22, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Search for Python version specifications in CI configuration
find .github -type f \( -name "*.yml" -o -name "*.yaml" \) | head -20

Repository: AOSSIE-Org/PictoPy

Length of output: 472


🏁 Script executed:

#!/bin/bash
# Check for Python version specifications in CI workflows
rg -n 'python-version|python_version|3\.11|3\.12|3\.9|3\.13' .github --type yaml -C 2

Repository: AOSSIE-Org/PictoPy

Length of output: 2794


🏁 Script executed:

#!/bin/bash
# Look for pyproject.toml or setup.py to check supported Python versions
fd -e 'pyproject.toml' -o -e 'setup.py' -o -e 'setup.cfg' . | head -20

Repository: AOSSIE-Org/PictoPy

Length of output: 178


🏁 Script executed:

#!/bin/bash
# Search for pyproject.toml
find . -maxdepth 3 -name "pyproject.toml" -o -name "setup.py" -o -name "setup.cfg" | grep -v '.git' | grep -v 'node_modules'

Repository: AOSSIE-Org/PictoPy

Length of output: 121


🏁 Script executed:

#!/bin/bash
# Check for Python version constraints in pyproject.toml
if [ -f "pyproject.toml" ]; then
  echo "=== pyproject.toml ===" 
  cat pyproject.toml | grep -A 5 -B 5 "python"
fi

if [ -f "setup.py" ]; then
  echo "=== setup.py ==="
  cat setup.py | grep -A 5 -B 5 "python"
fi

Repository: AOSSIE-Org/PictoPy

Length of output: 148


🏁 Script executed:

#!/bin/bash
# Read backend pyproject.toml and search for Python version
echo "=== backend/pyproject.toml ===" 
head -50 backend/pyproject.toml | grep -A 3 -B 3 -i "python"

Repository: AOSSIE-Org/PictoPy

Length of output: 148


🏁 Script executed:

#!/bin/bash
# Read sync-microservice pyproject.toml and search for Python version
echo "=== sync-microservice/pyproject.toml ===" 
head -50 sync-microservice/pyproject.toml | grep -A 3 -B 3 -i "python"

Repository: AOSSIE-Org/PictoPy

Length of output: 148


🏁 Script executed:

#!/bin/bash
# Just check file size and read the first few lines
wc -l backend/pyproject.toml sync-microservice/pyproject.toml

Repository: AOSSIE-Org/PictoPy

Length of output: 132


🏁 Script executed:

#!/bin/bash
# Read only first 20 lines of backend pyproject.toml
head -20 backend/pyproject.toml

Repository: AOSSIE-Org/PictoPy

Length of output: 91


Document Python 3.12 as supported version.

The CI configuration uses Python 3.12 for build-and-release workflows (build-and-release.yml), while only Python 3.11 is currently documented in the README. Add Python 3.12 to the list of supported versions to match the actual project configuration.

🤖 Prompt for AI Agents
In `@README.md` around lines 33 - 40, Update the "Supported Python Versions
(Backend)" section to include Python 3.12 alongside 3.11 so the README matches
CI; specifically add "- **Python 3.12**" under the Supported Python Versions
(Backend) header (the same block that currently lists "**Python 3.11**") and
ensure the surrounding note about older/newer versions remains accurate given CI
uses Python 3.12 in build-and-release.yml.

Copy link
Author

Choose a reason for hiding this comment

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

Thanks for the suggestion.
I intentionally documented Python 3.11 only, since backend and sync-microservice CI explicitly run on 3.11 and Windows dependency compatibility (e.g. scipy) is currently well-verified there.
If maintainers confirm that Python 3.12 is officially supported across platforms, I’m happy to update the documentation accordingly.

Copy link
Contributor

Choose a reason for hiding this comment

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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check Python versions in backend and sync-microservice CI workflows
echo "=== Backend CI workflows ==="
rg -n "python-version|python_version" .github/workflows/ --type yaml | grep -i "backend"

echo -e "\n=== Sync-microservice CI workflows ==="
rg -n "python-version|python_version" .github/workflows/ --type yaml | grep -i "sync"

echo -e "\n=== All Python version specifications in CI ==="
rg -n "python-version:" .github/workflows/ --type yaml -A 1

echo -e "\n=== Build and release workflow Python versions ==="
cat .github/workflows/build-and-release.yml | grep -A 2 -B 2 "python-version"

Length of output: 1917


@VineetC137, you're absolutely right! The CI configuration confirms your understanding:

  • pr-check-tests.yml (backend and sync-microservice validation) uses Python 3.11
  • build-and-release.yml (packaging/releases) uses Python 3.12

Your conservative approach is sound—documenting only the Python version that's explicitly tested and validated (3.11) makes sense for contributor onboarding, especially given the Windows dependency compatibility concerns that motivated this PR. The build-and-release workflow using 3.12 is about packaging, not comprehensive testing.

If the project decides to add 3.12 to the test matrix in the future and validates Windows compatibility, updating the documentation at that point would be appropriate.

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.

DOC: Missing documentation for supported Python versions (Windows onboarding issue)

1 participant