Test and support Windows builds
Description
cpplink has been developed and tested primarily on macOS. The codebase is currently untested on Windows, so we need to assess Windows compatibility and address any platform-specific issues.
Goals
- Build
cpplink successfully on Windows.
- Test the C++ library and command-line program.
- Identify and fix platform-specific compilation or runtime issues.
- Test the Python bindings on Windows, if available.
- Ensure the existing test suite runs successfully on Windows.
- Document any Windows-specific build or development requirements.
Areas to investigate
- CMake configuration and compiler compatibility (MSVC and/or Clang).
- Filesystem and path handling.
- Platform-specific C++ APIs or assumptions.
- Threading and concurrency behaviour.
- Memory management and alignment.
- Arrow/Parquet dependencies.
- Python/pybind11 integration.
- Command-line argument and file handling.
- Tests involving temporary files or directories.
- Differences between macOS and Windows newline/path conventions.
Suggested approach
- Set up a Windows CI workflow, initially using GitHub Actions.
- Build with a supported Windows compiler.
- Run the complete C++ test suite.
- Build and test the Python bindings.
- Fix compatibility issues discovered during CI.
- Add Windows to the project's supported/tested platforms.
- Document the supported Windows compiler and build configuration.
Acceptance criteria
Test and support Windows builds
Description
cpplinkhas been developed and tested primarily on macOS. The codebase is currently untested on Windows, so we need to assess Windows compatibility and address any platform-specific issues.Goals
cpplinksuccessfully on Windows.Areas to investigate
Suggested approach
Acceptance criteria
cpplinkbuilds successfully on Windows.