← 输入框|github.com|刷新
Skip to content

Support for Windows Platforms #85

Closed

Description

@zortness

I will echo some other recent requests, but for Windows environments.

I was able to build the wheel for Python 3.14 on Windows AMD64, but it would be great to get that added to your normally published wheels. I also have a Windows ARM64 machine, which I haven't attempted to build on, but I could also use an officially published wheel there as well.

I suspect that since this project is an included dependency for omnigent, there will be a lot of demand for additional common platforms.

Thank you for your service on this project!

Activity

  1. alexchandel commented on Jun 21, 2026

    @alexchandel

    Seems there are many missing wheel combos, beginning with #74.

  2. alexchandel commented on Jun 21, 2026

    @alexchandel

    @zortness How did you build this for 3.14 on Windows x64?

  3. zortness commented on Jun 23, 2026

    @zortness
    Author

    I used antigravity-cli to figure out how to get it to build, since I'm not familiar with bazel.
    It used bazelisk to interact with bazel, rather than doing it directly.
    It made some minor changes to the build files, some of them probably unnecessary. I'll just paste the diff for you

    $ git diff
    warning: in the working copy of 'MODULE.bazel', CRLF will be replaced by LF the next time Git touches it
    diff --git a/.bazelrc b/.bazelrc
    index a727ae9..a956f58 100644
    --- a/.bazelrc
    +++ b/.bazelrc
    @@ -25,8 +25,8 @@ build --verbose_failures
     test --test_output=errors
    
     # GCS remote caching config (Windows-only, active by default on Windows!)
    -build:windows --remote_cache=https://storage.googleapis.com/windows-cel-python-remote-cache
    -build:windows --google_default_credentials=true
    +# build:windows --remote_cache=https://storage.googleapis.com/windows-cel-python-remote-cache
    +# build:windows --google_default_credentials=true
    
     # GCS remote caching config (macOS-only, active by default on macOS!)
     build:macos --remote_cache=https://storage.googleapis.com/macos-cel-python-remote-cache
    diff --git a/MODULE.bazel b/MODULE.bazel
    index 1ed9a28..e250b72 100644
    --- a/MODULE.bazel
    +++ b/MODULE.bazel
    @@ -63,8 +63,8 @@ single_version_override(
     # 'bazel test' to run all sandboxed test targets under the hermetic
     # python.exe interpreter.
     python = use_extension("@rules_python//python/extensions:python.bzl", "python")
    -python.defaults(python_version = "3.11")
    -python.toolchain(python_version = "3.11")
    +python.defaults(python_version = "3.14")
    +python.toolchain(python_version = "3.14")
     use_repo(python, "pythons_hub")
    
     register_toolchains("@pythons_hub//:all")
    diff --git a/release/setup.py b/release/setup.py
    index 1fec997..bfeeae9 100644
    --- a/release/setup.py
    +++ b/release/setup.py
    @@ -34,10 +34,13 @@ class BazelExtension(setuptools.Extension):
     class BazelBuild(setuptools.command.build_ext.build_ext):
       """Custom build_ext command to build extensions with bazel."""
    
    +  def get_bazel_bin(self):
    +    return os.environ.get('BAZEL_PATH') or shutil.which('bazelisk') or shutil.which('bazel')
    +
       def run(self):
         # Ensure bazel is available
    -    if shutil.which('bazel') is None:
    -      raise RuntimeError('bazel must be installed to build the extensions.')
    +    if self.get_bazel_bin() is None:
    +      raise RuntimeError('bazel or bazelisk must be installed to build the extensions.')
    
         for ext in self.extensions:
           self.build_extension(ext)
    @@ -70,7 +73,8 @@ class BazelBuild(setuptools.command.build_ext.build_ext):
    
         # Build with bazel
         # Use --compilation_mode=opt for release builds
    -    cmd = ['bazel', 'build', ext.target, '--compilation_mode=opt']
    +    bazel_bin = self.get_bazel_bin()
    +    cmd = [bazel_bin, 'build', ext.target, '--compilation_mode=opt']
         if sys.platform == 'win32':
           self.platform_config_windows(cmd, python_version)
         if sys.platform == 'darwin':
    @@ -119,8 +123,9 @@ class BazelBuild(setuptools.command.build_ext.build_ext):
         cmd.insert(1, '--output_user_root=C:/tmp')
    
         # 1. Get output base
    +    bazel_bin = self.get_bazel_bin()
         output_base = subprocess.check_output(
    -        ['bazel', '--output_user_root=C:/tmp', 'info', 'output_base'], text=True
    +        [bazel_bin, '--output_user_root=C:/tmp', 'info', 'output_base'], text=True
         ).strip()
    
         # 2. Find hermetic python directory
    
  4. dmitriplotnikov commented on Jun 25, 2026

    @dmitriplotnikov
    Collaborator

    Thank you for reporting, @zortness!
    Windows AMD64 wheels for cp311...cp314 are included in release https://pypi.org/project/cel-expr-python/0.1.3/ Please let us know if you run into any issues with those wheels.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions