LoginSignup
0
0

More than 5 years have passed since last update.

Crystalで作ったプロジェクトのbump upをするツール「vup」を作った

Posted at

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
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0