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 installed
  • (to publish) a chocolatey API key granting you permission to publish the bazel package
    • @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.

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

  1. 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)
  2. 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.

  3. Test the uninstall

     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.

./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.