BorisQuanLi opened a new pull request, #46: URL: https://github.com/apache/beam-starter-python/pull/46
### Problems/Issues Solved - Packaging errors in Python 3.12 environments due to outdated `setuptools`. - Lack of clarity and constraints in `setup.py` regarding Python version and requirements parsing. - Outdated installation instructions in `README.md`. ### Summary This PR modernizes `setup.py` and updates documentation to ensure smooth installation and usage in Python 3.12 environments. It adds a minimum required version for `setuptools`, improves requirements parsing, and aligns the README with the updated workflow. ### Changes 1. **setup.py** - Added `setuptools>=80.9.0` to `install_requires` to resolve packaging errors in Python 3.12. - Improved parsing of `requirements.txt` to filter out comments and empty lines. - Updated package name to follow kebab-case convention. - Added `python_requires=">=3.8"` constraint. - Improved version string format to `1.0.0`. 2. **README.md** - Fixed markdown syntax highlighting for installation commands. - Updated instructions to reflect the improved Python 3.12 compatibility workflow. ### Testing - Created a virtual environment with Python 3.12. - Upgraded `pip` and `setuptools` to the latest versions. - Successfully installed the package with `pip install -e .`. - Attempted to run `pytest` but encountered a `ModuleNotFoundError` due to the absence of a test setup in the upstream repository (unrelated to this PR). ### Reproduction Steps 1. Clone the repository and switch to the `fix/setup-py-improvements` branch: ```bash git clone https://github.com/apache/beam-starter-python.git cd beam-starter-python git checkout fix/setup-py-improvements ``` 2. Create a Python 3.12 virtual environment: ```bash python3.12 -m venv venv source venv/bin/activate ``` 3. Upgrade `pip` and `setuptools`: ```bash pip install --upgrade pip setuptools ``` 4. Install the package: ```bash pip install -e . ``` 5. (Optional) Attempt to run tests: ```bash pytest ``` Note: Running `pytest` may result in a `ModuleNotFoundError` due to the absence of a test setup in the upstream repository. ### Notes - This PR specifically addresses Python 3.12 compatibility. From what I heard at last week's [Beam Summit 2025](https://beamsummit.org/program/), Python 3.13+ support is being addressed separately by the Apache Beam team. - Platform details: WSL2 Ubuntu 22.04, Python 3.12.11, pip 25.1.1, setuptools 80.9.0. ### Checklist - [x] Modernized `setup.py` for Python 3.12 compatibility. - [x] Updated `README.md` to reflect the improved installation workflow. - [x] Verified installation in a Python 3.12 virtual environment. - [x] Documented reproduction steps and -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@beam.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org