docs: add Windows platform support section to CONTRIBUTING.md - #75
Conversation
-.editorconfig: UTF-8, LF line endings, 4-space Python indent (100 chars), 2-space YAML -.pre-commit-config.yaml: ruff check/format hooks pinned to v0.16.2 (from uv.lock) -CONTRIBUTING.md: document optional pre-commit setup All configs mirror existing pyproject.toml rules and CI gates. Ruff validation produces no changes (83 files already compliant).
Strip UTF-8 BOMs and double-spacing, use the current ruff-check hook id, and document uvx for install since pre-commit is not a project dependency (uv run pre-commit fails without it). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds Windows platform guidance to CONTRIBUTING.md, including native support limitations and development alternatives.
Changes:
- Documents Linux/macOS support and Windows
fcntllimitations. - Recommends WSL2 and Docker Desktop.
- Notes WSL2 virtualization requirements.
- Review nit: clarify Docker Desktop’s supported scope.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| Windows users should use one of: | ||
| - **WSL2 (Recommended)**: Follow the standard setup steps inside WSL2 with an Ubuntu distribution | ||
| - **Docker Desktop**: Run development inside a container with a pre-configured Linux environment |
Sentence-case the heading to match the surrounding sections, name HFlow as the project does elsewhere, state the fcntl mechanism with a file pointer, and link the runtime prerequisites instead of restating the WSL2 guidance. Drops the devcontainer suggestion (the repo ships no devcontainer) and the BIOS note (generic WSL2 setup, not ours). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
kstonekuan
left a comment
There was a problem hiding this comment.
Thank you @supercell02, and welcome! CONTRIBUTING.md genuinely had nothing about platforms, and a Windows contributor hitting ModuleNotFoundError: No module named 'fcntl' on their first pytest run has no way to tell whether they broke something or whether it was never going to work. Worth documenting.
What I validated locally:
- Confirmed the mechanism you named:
src/hflow/storage.pyhas a bare top-levelimport fcntl, so on native Windowsimport hflowfails before any test runs. Your claim is exactly right. - Confirmed CI is Linux-only (
ubuntu-latest), which is why I added a line about running the checks yourself on macOS. - lychee reports 231 links with 0 errors, including the new cross-reference.
One fixup pushed to your branch (62e4303), mostly style plus two content trims:
- Sentence-cased the heading and switched "Linux & macOS" to "and", matching the surrounding sections, and used "HFlow" as the project is named elsewhere in the file.
- Stated the
fcntlmechanism with a file pointer rather than as a general statement, since the repo's style is to point at the code that causes the behavior. - Linked the runtime prerequisites instead of restating the WSL2 guidance, because that section already explains why the data root has to live on the Linux filesystem, and I would rather it be explained in one place.
- Dropped the Docker Desktop option and the BIOS note. The repo ships no devcontainer, so "run development inside a container" is not a path we can actually support today, and enabling virtualization is generic WSL2 setup that Microsoft's own docs cover better than we can.
If you disagree with either trim, say so and we can put it back. Merging now.
If you want another, the open good first issues have plenty left, and several are documentation like this one (issues with an assignee are taken; everything else is fair game). We also hang out on Discord.
Problem
The CONTRIBUTING.md guide currently does not mention Windows platform limitations. Windows users following the setup instructions encounter
ModuleNotFoundError: No module named 'fcntl'and ffmpeg compatibility issues that are confusing and frustrating.Solution
Added a new "Platform Support" section immediately after the "Development setup" prerequisites that:
fcntlfile locking)Validation
-Documentation is accurate (Windows indeed lacks
fcntlsupport)-WSL2 and Docker are viable alternatives for Windows users
-No Markdown syntax errors
-No breaking changes to existing documentation