« 第19回Redmine大阪の見所 #redmineosaka | トップページ | クラウド(対立解消図)の考え方 »

2019/01/31

RedmineのGit連携機能に関する議論

Redmine本家で、Git連携機能に関する議論があって、興味深いのでメモ。
結論のないラフなメモ。

【参考】
Feature #14961: Reconsider moving from svn to git &GitHub - Redmine

Feature #30069: Integrate Redmine with GitLab (or other free CI system for open source) to run tests - Redmine

Feature #8363: Git: Pull requests - Redmine

QA #910: RedmineでPullRequestを使いたい - Unofficial Redmine Cooking - redmine.tokyo

【1】RedmineのGit連携に関する問題は、実は2つの論点があると思う。
1つ目は、RedmineにGitHubやGitLabクローンの機能を入れて、Redmine上でプルリクエストを行いたい事。
2つ目は、Redmine本体の開発は、Gitのプルリクエストを使い、数多くの開発者のパッチによる貢献を取り入れやすくする事。

この2つの論点が混じっているので、議論が込み入っているのではないか、と思う。

【2】実は、Redmineのパッチ開発者の多くは、Redmine本体をGitの構成管理の配下に置き、自由に開発ブランチを派生させて実験したり、プルリクエストをコミッタに送りたい、という要望が大きいのだろう。

Feature #14961: Reconsider moving from svn to git & GitHub - Redmineで、Taiki I さんがこんなコメントをされている。

(Google翻訳の引用開始)
こんにちは恐竜、
この問題が発生してから5年が経過しました。全世界がGitに移行したかどうかはわかりませんが、OSSプロジェクトがPull RequestsとGitによる寄付を集める主流になりました。
Redmineにプルリクエストを実装するかもしれませんが、これは容易ではないでしょう。
まず最初に、RedmineのリポジトリをGitに移動し、プルリクエストを受け付けるようにします。そして、貢献のハードルを下げ、貢献の門を広く開きます。競合品を使っても。
幸いなことにGitLabには「外部課題追跡システム」があります。これで、GitLabのGit管理とプルリクエスト(マージリクエスト)を使用しながら、Redmine.orgの多くの問題をそのまま使用し続けることができます。
この問題についてもう一度話し合いますか?
(引用終了)

但し、その実現が容易ではないことは、Redmineユーザなら皆知っている。

Feature #14961: Reconsider moving from svn to git & GitHub - Redmineで、@g_maedaさんがこんなコメントをされている。

(Google翻訳の引用開始)
現在の状況が気に入らなくても、皆さん全員が紳士的であることを願っています。
何年もRedmineの開発に時間を費やしてきた人々を落胆させてRedmineを改善することはできません。
(引用終了)

【3】僕は、GitHub連携プラグインがRedmineに組み込まれれば、不満はほぼ緩和できると思う。
つまり、プルリクの機能はGitHub上で使い、Redmineのチケットにはその履歴を残す、というように、利用場面を使い分けることだ。
また、Redmineチケットにパッチを添付するのではなく、GitHubのプルリクの内容がRedmineチケットに自動複製されると、もっと良い。

これは完全な解決方法ではないが、プルリク機能の実装は非常に難しいと思う為だ。

【4】この議論のチケットを読みながら、OSSコミュニティを発展させるには、OSSコミッタのモチベーションが最重要であることを思い出した。

オープンソースソフトウェアを開発する日々をハッピーに ― あるいは、OSSコントリビュータに感謝を伝えるためにできること | POSTD

Redmineに不満が出て、数多くの不平を言ってしまうこともあるだろう。
その行為がOSSコミュニティにとって良いことなのか?

下記の文章が心に残った。

(引用開始)
オープンソースに関わる誰かに、シンプルに肯定の意を伝えることです。
メールや、あるいはIRCを通して、はたまたプロジェクトの貢献者に直接会うなど、手段を問わず文字通り誰かに「ありがとう」と伝えることは、とても大きな意味を持つのです。
これが取るに足らないことだとは承知していますが、長い時間をかけてオープンソースに貢献している人たちは、基本的にネガティブな人、あるいは誠意はあるけれども人から何かをしてもらおうとする人たちに相対してきたことを忘れてはいけません。
人にずかずかと要求せず、「ありがとう」と言ってくれる人がいることは、バグ修正などの要求に応えたからのお礼ではなく、プロジェクト全般が感謝されていることが分かるはずです。

この2つの感謝の違いは、愛する人のために何かをしてあげ、相手があなたに感謝の気持ちとしてハグをしてくれることと、同じ人がただ単にあなたが好きだからという理由で不意にハグをくれる、この2つのハグの違いと同じなのです。
前者のハグもすてきですが、後者のハグはあなたをより特別な気持ちにしてくれます。
(引用終了)

最近、Matzさんもこの論点の記事を書かれていた。
Rubyに対する不満がRubyクローンを生み出したこともあったらしい。

Rubyのまつもと氏、「気分を害することもある。だからどうか建設的であってほしい」 - Publickey

そして、Matzさんの回答の一つは、Ruby開発のITSであるRedmineに、提案して欲しい、と。

【5】OSS開発の活発さとOSSコミュニティの活発な議論には相関関係があると思う。
さらには、@t_wadaさんの指摘どおり、OSS開発の活発さと良いソフトウェア設計には密接な相関関係があると思う。
Redmineの良さの一つは、RubyとRailsという柔軟な開発基盤のおかげで、カスタマイズしやすいので、色んな議論ができることだろうと思う。
そのバランスはどこにあるのだろうか?

OSS開発の活発さの維持と良いソフトウェア設計の間には緊張関係があるのだろうか? - t-wadaのブログ

柔軟なソフトウェア設計はOSSコミュニティを活発化させる~OSSソフトウェアとOSSコミュニティの密接な関係: プログラマの思索

|

« 第19回Redmine大阪の見所 #redmineosaka | トップページ | クラウド(対立解消図)の考え方 »

Redmine」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 第19回Redmine大阪の見所 #redmineosaka | トップページ | クラウド(対立解消図)の考え方 »