Skip to content

refactor: replace hardcoded paths with filepath.Join for Windows build support#51

Merged
kgiusti merged 1 commit intocontainers:mainfrom
rmiki-dev:windows-support
Mar 2, 2026
Merged

refactor: replace hardcoded paths with filepath.Join for Windows build support#51
kgiusti merged 1 commit intocontainers:mainfrom
rmiki-dev:windows-support

Conversation

@rmiki-dev
Copy link
Collaborator

This PR fixes Unix-specific patterns that prevent Windows builds

@gemini-code-assist
Copy link

Summary of Changes

Hello @rmiki-dev, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the cross-platform compatibility of the codebase by addressing Unix-specific path handling patterns. The changes ensure that the application can build and run correctly on Windows by utilizing Go's standard library functions designed for platform-agnostic path operations, thereby improving the robustness and portability of the project.

Highlights

  • Cross-platform compatibility: Replaced hardcoded Unix-specific paths with platform-agnostic functions and packages to ensure compatibility with Windows builds.
  • Temporary file creation: Updated os.CreateTemp calls to use os.TempDir() instead of /var/tmp for creating temporary files.
  • Path manipulation: Migrated from the path package to path/filepath for all path cleaning and joining operations, ensuring correct behavior on different operating systems.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • pkg/tar-diff/analysis.go
    • Replaced hardcoded temporary directory path /var/tmp with os.TempDir() for platform compatibility.
  • pkg/tar-patch/apply.go
    • Switched from importing path to path/filepath for improved cross-platform path handling.
    • Updated cleanPath function to use filepath.Clean and filepath.Join for robust path normalization.
    • Modified file opening logic to use filepath.Join for concatenating base paths and filenames.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request aims to improve Windows compatibility by replacing hardcoded Unix-style paths. The changes to use filepath.Join for constructing filesystem paths are correct. However, there are a couple of issues. A critical bug was introduced in pkg/tar-diff/analysis.go when updating os.CreateTemp, where a function call is passed as a string literal. Additionally, in pkg/tar-patch/apply.go, the cleanPath function was incorrectly modified to use filepath for sanitizing tar archive paths; these paths should be handled using the path package as they follow the tar standard, not the host OS's conventions. I've left specific comments with suggestions for these issues.

@rmiki-dev rmiki-dev force-pushed the windows-support branch 3 times, most recently from 5fa8ba6 to edb7be2 Compare February 27, 2026 16:31
…d support

Signed-off-by: Rosy-Glorious Miki <rmiki@redhat.com>
Copy link
Collaborator

@djach7 djach7 left a comment

Choose a reason for hiding this comment

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

LGTM

@kgiusti kgiusti merged commit 00d93e0 into containers:main Mar 2, 2026
3 checks passed
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.

4 participants