--- layout: contribute title: Windows Chocolatey maintenance --- # Maintaining Bazel Chocolatey package on Windows **NOTE:** The Chocolatey package is experimental; please provide feedback (`@petemounce` in issue tracker). ## Prerequisites You need: * [chocolatey package manager](https://chocolatey.org) installed * (to publish) a chocolatey API key granting you permission to publish the `bazel` package * [@petemounce](https://github.com/petemounce) currently maintains this unofficial package. * (to publish) to have set up that API key for the chocolatey source locally via `choco apikey -k -s https://chocolatey.org/` ## Build Compile bazel with msys2 shell and `compile.sh`. ```powershell pushd scripts/packages/chocolatey ./build.ps1 -version 0.3.2 -mode local popd ``` Should result in `scripts/packages/chocolatey/bazel..nupkg` being created. The `build.ps1` script supports `mode` values `local`, `rc` and `release`. ## Test 0. Build the package (with `-mode local`) * run a webserver (`python -m SimpleHTTPServer` in `scripts/packages/chocolatey` is convenient and starts one on `http://localhost:8000`) 0. Test the install The `test.ps1` should install the package cleanly (and error if it did not install cleanly), then tell you what to do next. 0. Test the uninstall ```sh choco uninstall bazel # should remove bazel from the system ``` Chocolatey's moderation process automates checks here as well. ## Release Modify `tools/parameters.json` for the new release's URI and checksum once the release has been published to github releases. ```powershell ./build.ps1 -version -isRelease ./test.ps1 -version # if the test.ps1 passes choco push bazel.x.y.z.nupkg --source https://chocolatey.org/ ``` Chocolatey.org will then run automated checks and respond to the push via email to the maintainers.