记录一下怎么更新 homebrew bottle。

因为有些小坑,所以又是个 howto。

  1. 把 homebrew formula 加入 homebrew。这里注明 formula 的地址,否则 brew 缺省使用 HTTPS,而 git 会问我们要 github 的 credentials。有点麻烦。

    $ brew tap tchaikov/ceph-client git@github.com:tchaikov/homebrew-ceph-clientbrew.git
  2. 更新 formula

    • 直接编辑,假设你的编辑器是全副武装的 IDE。

      $ brew edit ceph-client
    • 或者进入 tap 的 repo 慢慢来

      $ cd $(brew --repository tchaikov/homebrew-ceph-clientbrew)
  3. 编译。这一步要下载编译时用的依赖,所以会很慢。

    $ brew install --build-bottle tchaikov/ceph-clientbrew/ceph-client
  4. 把编译好的软件包装瓶。brew bottle 会在当前目录生成一个 bottle,文件名类似 ceph-client—​17.2.0.arm64_monterey.bottle.2.tar.gz。这个命令还会很贴心地打印出使用这个 bottle 需要用到的 formula 代码片段加入,所以需要编译一下 formula。

    $ brew bottle tchaikov/ceph-clientbrew/ceph-client
    $ brew edit tchaikov/ceph-clientbrew/ceph-client
  5. 打 tag 并更新 github,以便接下来发布。

    $ git remote -v
    me	git@github.com:tchaikov/homebrew-ceph-client.git (fetch)
    me	git@github.com:tchaikov/homebrew-ceph-client.git (push)
    $ git tag quincy-17.2.0-1
    $ git push me master
    $ git push me quincy-17.2.0-1
  6. 发布,并上传。

    1. 有意思的是,如果没有指定 version,那么 brew bottle 生成的文件名和 brew install 期望的名字是不一致的。所以这里要修改一下:

      $ mv ceph-client{-,}-17.2.0.arm64_monterey.bottle.1.tar.gz
    2. 因为 GitHub 提供发布的功能,它也允许我们在发布页面上传一些文件。所以,

      1. 在 github 上点击 "tags",

      2. 点击刚才创建的 tag

      3. 点击 "Create release from tag"

      4. 点击 "Attach binaries by dropping them here or selecting them",上传刚才改名后的 tar.gz 文件

      5. "Publish release"!

  7. 测试一下

    $ brew remove ceph-client
    $ brew install tchaikov/ceph-clientbrew/ceph-client