blob: ee712824a722eb08405821798a8f8d03eea2e6e1 [file] [log] [blame] [view]
---
layout: documentation
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 <your key here> -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.<version>.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 <version> -isRelease
./test.ps1 -version <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.