6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

forked digdag パッケージを作ってダウンロードできるようにする

Last updated at Posted at 2019-02-19

digdag に PR を送ったものの、まだマージされていない or マージされたけどリリースされていない、がすぐ使いたいということはよくありますよね

そういう時にどうしているか。特に公開しても困らなそうな内容になったので public internet にあげておきます。

大方針または心構え

  • あくまでも一時しのぎ。
  • 社内専用の private なパッチは当てない。技術的負債になるので絶対にしない。
  • 本家にマージされてリリースされたら可及的速やかに本家に切り替える。
  • 本家に切り替えられるように、本家にマージされるまで根気強く頑張る。

方針

github で本家を public fork して Releases に jar を置く。

  • public なパッチしか当ててないので public fork で OK
  • public repo なら認証不要で簡単にダウンロードしてインストールできる

パッケージの作り方

ビルドについては digdag の自前ビルド を参照。

実例として v0.9.33 に #994 の PR をマージしてビルドしたい場合を、著者の所属会社orgである github.com/st-tech で解説。

$ VERSION=v0.9.33
$ PR=944
$ BRANCH=${VERSION}-patched-${PR}
$ git clone git@github.com:treasure-data/digdag
$ cd digdag
$ git remote add fork git@github.com:st-tech/digdag
$ git checkout -b ${BRANCH} refs/tags/${VERSION}
$ git fetch origin "+refs/pull/${PR}/head:refs/remotes/pull/${PR}/head'"

取り込みたい commit を cherry-pick していく。TODO: もう少し楽にならんですかね

$ git cherry-pick 08db8efd2e0ce88f98a6226ae515d954bee11319
$ git cherry-pick e9574a00c236446100a8a416ded9bf8957a53cd5
$ git cherry-pick c7fba0dcd1aac83284a139497381f17a5c4995a8

version をいじる

diff --git a/build.gradle b/build.gradle
index adf1384281..583cc8bce4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -12,7 +12,7 @@ apply plugin: 'maven'

 allprojects {
     group = 'io.digdag'
-    version = '0.9.33'
+    version = '0.9.33-patched-994'

     ext {
         isSnapshotRelease = version.endsWith('-SNAPSHOT')
diff --git a/digdag-client/src/main/resources/io/digdag/client/version.txt b/digdag-client/src/main/resources/io/digdag/client/version.txt
index 2e665126a5..68cebab229 100644
--- a/digdag-client/src/main/resources/io/digdag/client/version.txt
+++ b/digdag-client/src/main/resources/io/digdag/client/version.txt
@@ -1 +1 @@
-0.9.33
+0.9.33-patched-994

コミットして push しておく

$ git commit build.gradle digdag-client -m ${BRANCH}
$ git push fork ${BRANCH}

ビルド

$ ./gradlew cli

pkg/v0.9.33-patched-994.jar ができるので GitHub の Releases タブから release を作ってアップロードする。

image.png

すると

$ curl -o ~/bin/digdag --create-dirs -L https://github.com/st-tech/digdag/releases/download/v0.9.33-patched-994/digdag-0.9.33-patched-994.jar
$ chmod +x ~/bin/digdag

のようにインストールできるようになる。

おわりに

頻繁にやるなら CI 化とかしたくなるかもしれないが、あくまで一時しのぎなのでだいぶ手動感あります。

6
4
0

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
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?