Windows開発環境設定
bazeliskを利用するためにchocolateyを導入
bazelisk
buildifier
python
pythonはコマンド実行でMicrosoft Storeからダウンロードが始まる
VSCodeでbitbucketからcheckoutはできる
ctrl-@でターミナル
Windows上でbazel動かすのが難しすぎるのでwslで環境構築して、
- windowsのvscodeから編集
- wslのターミナルでbuild、実行
を目指す
WSLからWindowsのファイルシステムをマウント
WindowsからWSLのファイルシステムのマウント
bazelのほうがIO酷使するので、こちらのほうが良さそう
bazelはubuntuの手順でインストールできた
ModuleNotFoundError: No module named 'distutils'
$ sudo apt install python3-pip
$ sudo pip3 install setuptools
error: externally-managed-environment
$ sudo apt install python3-setuptools
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
python3-setuptools is already the newest version (68.1.2-2ubuntu1.1).
0 upgraded, 0 newly installed, 0 to remove and 53 not upgraded.
venvでpip install setuptoolsできたけど、distutilsのエラー解決せず
@rules_pythonを最新版にすることでdistutilsのエラーが直った。
configurable attribute "actual" in @@rules_python~~pip~my_deps//appdirs:pkg doesn't match this configuration: No matching wheel for current configuration's Python version.
The current build configuration's Python version doesn't match any of the Python
wheels available for this wheel. This wheel supports the following Python
configuration settings:
//_config:is_python_3.12
To determine the current configuration's Python version, run:
bazel config <config id>
(shown further below)
and look for
rules_python//python/config_settings:python_version
If the value is missing, then the "default" Python version is being used,
which has a "null" version value and will not match version constraints.
MODULE.bazelに
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
configure_coverage_tool = True,
python_version = "3.12",
)
と追記で3.12使えるようになった。importlib-metadataが要らなくなった。
WORKSPACEで定義したルールをMODULE.bazelで最新のものに置き換えると大体動く
rules_closureが0.12でdepsのルールがなくなって、代わりに手動で作らなくてはいけなくなった。
0.14でリリース終了で、bzlmodもサポートされてない。
rules_pythonでpipのライブラリがbuildできない場合、depsから外してbuildして、実行するpythonのpipでインストールしておいて回避できそう
新しいjreだと古いsoy compilerがうまく動かなかった。
module java.base does not "opens java.lang" to unnamed module
bazelを7にアップデートして、closure以外をWORKSPACEからbzlmodに書き直して、一部bazel+pipでビルドできないやつを取り出してようやくビルド通った
pyppeteer OSError: [Errno 30] Read-only file system:
playwrightに全部書き直し。docker側でpip installして、ブラウザをあらかじめセットアップしないとbazel testでこける。