Crystalで作ったプロジェクトのbumpupをするツール「vup」を作りました。
経緯
Crystal でプロジェクトを作るとバージョンを2箇所設定する必要があります。
- %project%/src/hoge/version.cr
- %project%/shard.yml
です。
Rubyの場合、 gemspec からのversion参照は
Gem::Specification.new do |spec|
spec.name = 'eto'
spec.version = Eto::VERSION
:
のように、 version.rb の内容を参照しているため
version 変更が必要なファイルは version.rb のみです。
内部DSLのメリットですね。
Crystalでバージョンアップする時に2ファイルを手メンテするのが
億劫になってきたのでツールを作りました。
vup
vup という Crystal 製のツールを作りました。
brew package としてインストール可能にしてあります。
Install
$ brew tap tbpgr/vup
$ brew install vup
$ vup -v
0.1.0
Demo
version up (patch)
$ cat shard.yml
name: hoge
version: 0.1.2
$ cat ./src/hoge/version.cr
module Hoge
VERSION = "0.1.2"
end
$ vup --patch
$ cat shard.yml
name: hoge
version: 0.1.3
$ cat ./src/hoge/version.cr
module Hoge
VERSION = "0.1.3"
end
version up (minor)
$ cat shard.yml
name: hoge
version: 0.1.2
$ cat ./src/hoge/version.cr
module Hoge
VERSION = "0.1.2"
end
$ vup --minor
$ cat shard.yml
name: hoge
version: 0.2.0
$ cat ./src/hoge/version.cr
module Hoge
VERSION = "0.2.0"
end
version up (major)
$ cat shard.yml
name: hoge
version: 0.1.2
$ cat ./src/hoge/version.cr
module Hoge
VERSION = "0.1.2"
end
$ vup --major
$ cat shard.yml
name: hoge
version: 1.0.0
$ cat ./src/hoge/version.cr
module Hoge
VERSION = "1.0.0"
end