class Energy < Formula
desc "CLI is used to initialize the Energy development environment tools"
homepage "https://energye.github.io"
url "https://github.com/energye/energy/archive/refs/tags/v2.4.5.tar.gz"
sha256 "157beb93773637b75ffd0d72cc5ba3303d39065f6448b5272b5d9350da2eb47e"
license "Apache-2.0"
depends_on "go" => :build
def install
cd "cmd/energy" do
system "go", "build", *std_go_args(ldflags: "-s -w")
end
end
test do
output = shell_output("#{bin}/energy cli -v")
assert_match "Current", output
assert_match "Latest", output
output = shell_output("#{bin}/energy env")
assert_match "Get ENERGY Framework Development Environment", output
assert_match "GOROOT", output
assert_match "ENERGY_HOME", output
end
end
在 homebrew 上发布 go 项目
https://github.com/Homebrew/homebrew-core
注意的步骤细节, Go语言
以 energy cli 举例, 使用源码编译 energy cli
在 MacOS 使用 brew create --go https://github.com/energye/energy/archive/refs/tags/v2.4.5.tar.gz 自动生成 Energy.rb文件
然后修改内容
或
新建文件: 在 Formula/e/energy.rb 新建脚本文件, 存放目录: 取命令首字母的文件夹内建立 energy.rb 文件
文件内容规则:
1 空行不能有空格
2 只能使用空格缩进
3 不能使用制表符
4 最后一行为空行
脚本代码:
class: 类名首字母大写,继承 Formula
desc: 描述,有字符限制,简单明了描述,首字母大写。
homepage: 网站首页
url: 发行版本的 tags 源码下载地址
sha256: openssl dgst -sha256 -hex 文件名
license: 开源协议
depends_on: 使用的编译语言
def install: 编译安装你的命令
test do: 测试编译后的命令,内容必须要写
提交PR合并到 homebrew-core
可直接在github网站操作
1 fork主仓库,名称规则: homebrew-energy
2 新建xxx.rb文件, 写脚本内容.
3 提交信息规则:
1. 名称: energy 1.0.0 (new formula)
2. 内容规则:中间有两个空行
标题描述
描述详细信息
4 创建PR合并到主仓库, 注意查看提交的PR工作流状态
错误解决方式:
在PR内查看错误信息,根据官方人员给出的提示
根据工作流状态和信息查看和解决错误
主仓库
https://github.com/Homebrew/homebrew-core
教程
https://guoxudong.io/post/golang-to-homebrew/
官方文档
https://docs.brew.sh/How-To-Open-a-Homebrew-Pull-Request
energy: update 1.0.0 rb
标题:
energy 1.0.10 (new formula)
提交信息:
commit style:
Add Energy CLI development environment tool
Fix: The current release version number is 1.0.10
Energy CLI is a development environment for energy frameworks
It can be installed, compiled, and packaged from the development environment
关于PR中产生的问题
主要是 Commit style 规范
尽量不要合并主仓库。因为会产生不规范的提交记录message
在修改代码后将多个提交压缩成一个提交。按 Commit style 格式去写 message 内容
问题:有合并记录,压缩多个个提交
去除合并记录,使用 git reset -i hash 到初始没有合并的 commit hash
强制提交:git push -f
压缩多个提交: Squash
使用的 GitHub Desktop
客户端 (需要将仓库克隆到本地)
压缩后会产生更新:不去更新,因为此时会产生合并更新
压缩后强制提交:git push -f
强制提交后会把合并更新记录去除