Skip to content

Conversation

@rsgalloway
Copy link
Owner

@rsgalloway rsgalloway commented Jan 7, 2026

This pull request introduces several improvements and fixes for cross-platform compatibility, especially for Windows, refines environment variable handling, and enhances test coverage and reliability. The most significant changes are grouped below.

Windows Support and Path Handling:

  • Added a Windows-friendly make.bat script to simplify building, testing, and installing the project on Windows systems.
  • Updated path handling logic and tests to consistently use uppercase drive letters for Windows paths and UNC-style paths (e.g., //tools/pipe) instead of drive letters, improving reliability and consistency across platforms. [1] [2] [3] [4] [5] [6] [7] [8] [9]

Command Wrapper Improvements:

  • Refactored CmdWrapper in wrapper.py to explicitly invoke cmd.exe with correct argument handling, ensuring robust execution of wrapped commands on Windows.
  • Improved the logic in run_command to better detect shell types and handle variable expansion for Windows and Unix-like shells.

Testing and CI Enhancements:

  • Added a GitHub Actions workflow (tests.yml) to run tests on Ubuntu, macOS, and Windows, increasing CI coverage.
  • Applied platform-specific test skips and updated test root paths for improved reliability and correctness in the test suite. [1] [2] [3] [4]

CLI and Usability Improvements:

  • Enhanced the CLI shell launch message to provide clear exit instructions based on the detected shell (e.g., cmd, powershell, bash). [1] [2]
  • Improved imports and quiet mode handling in the CLI for better maintainability and user experience. [1] [2]

Version Bump:

  • Updated the package version to 0.9.5 in both setup.py and lib/envstack/__init__.py to reflect these changes. [1] [2]

@rsgalloway rsgalloway linked an issue Jan 7, 2026 that may be closed by this pull request
@rsgalloway rsgalloway self-assigned this Jan 7, 2026
@rsgalloway rsgalloway linked an issue Jan 7, 2026 that may be closed by this pull request
@rsgalloway rsgalloway added bug Something isn't working enhancement New feature or request labels Jan 7, 2026
@rsgalloway rsgalloway linked an issue Jan 7, 2026 that may be closed by this pull request
@rsgalloway rsgalloway added this to the Version 0.9.5 milestone Jan 7, 2026
@rsgalloway rsgalloway marked this pull request as ready for review January 8, 2026 04:45
@rsgalloway rsgalloway requested a review from Copilot January 8, 2026 04:45
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request updates envstack to version 0.9.5, focusing on cross-platform compatibility improvements, particularly for Windows support. The changes include path handling normalization, Windows-specific build tooling, enhanced CLI user experience, and expanded CI coverage across Ubuntu, macOS, and Windows.

Key Changes:

  • Standardized Windows path handling to use uppercase drive letters and UNC-style paths for consistency
  • Refactored CmdWrapper to explicitly invoke cmd.exe with proper argument handling
  • Added GitHub Actions workflow to test across multiple platforms

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
setup.py Version bump to 0.9.5
lib/envstack/init.py Version bump to 0.9.5
lib/envstack/wrapper.py Refactored CmdWrapper to use explicit cmd.exe invocation with proper argument joining
lib/envstack/util.py Updated drive letter pattern to only match uppercase letters (A-Z instead of a-zA-Z)
lib/envstack/cli.py Enhanced shell launch message with platform-specific exit instructions and quiet mode support
tests/test_wrapper.py Added platform detection, updated test paths for Windows, and added platform-specific test skips
tests/test_util.py Updated test expectations to uppercase drive letters, commented out lowercase drive letter tests
tests/test_node.py Changed Windows test root from X:/pipe to UNC-style //tools/pipe
tests/test_env.py Updated Windows test root and modified encryption test assertion logic
tests/test_cmds.py Added platform skip marker to limit shell integration tests to Linux
env/cache.env Refactored CACHE_ROOT to use CACHE_DIR variable defined per platform
make.bat New Windows batch script for building, testing, and installing on Windows
.github/workflows/tests.yml New GitHub Actions workflow for cross-platform testing

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

2 participants