こんにちは、今週のブログ担当の石川です。「夏は日向を行け 冬は日陰を行け」ということわざをご存知でしょうか?意味の一つに「夏にあえて暑い日向を、冬にあえて寒い日陰を行くように、進んで辛い道を求めて身体を鍛錬せよ」とあるのですが、いくら鍛錬と言っても最近の暑さだと日向は歩きたくないです。皆さんも熱中症にはお気をつけください。
さて、最近は業務の中でオープンソースソフトウェアのRedmineの開発に参加して機能改善を行っているので、今回のブログではその活動について書こうと思います。
オープンソースのプロジェクト管理ソフトウェア「Redmine」は、その開発自体も公式サイトのRedmineで管理されています。
公式のRedmineでは誰でもチケットを作ったりコメントをすることができるので、世界中の人々が作った「こんな機能があったらいいな」「これはバグじゃない?」というようなチケットが今日(2017.8.2)の時点で17000件近く作られています。そのうちおよそ4600件が未完了です。
そして、欲しいといっただけで機能は増えないので、実際にその機能を実装したりバグを修正するためのコードを書く人がいます。
当社のRedmine上には、「Redmine改善」という名前のプロジェクトがあり、そのプロジェクト上には公式サイトのチケットの中からピックアップしたチケットや、「My Redmine」のサポートや相談会でいただいたご要望などを元にチケットが作られています。基本的にその中から取り組むものを選んでパッチを書いています。最近はRedmine本体の開発ではRails5対応のための作業が続いていたので、あまりバージョンの変化に影響されなさそうなガントチャート関連(画面関連)を中心に進めていました。
パッチを書く上で、Redmineがどのように動いているのか理解するためにコードをたくさん読むのですが、今までたくさんの人がパッチを書いて作られてきたシステムなので、コードを見ているだけでも「こんな書き方があるんだ」ととても勉強になります。書いたコードは投稿する前に社内でレビューしてもらっています。
そして、パッチを書くときと同じくらいに悩むのが、コメントする際の文言です。当然ながらRedmineの開発は英語なので、パッチを投稿する際のコメントも英語で書く必要があります。ただ、未だに英語で書くコメントには悩むので、時折こうして添削してもらっています。一人で考えて書けるように、英語の勉強を頑張らねばと毎回思います。
そして、パッチを公式のRedmineに投稿します。一番最初にパッチを投稿した時は、何人かに見守られながらsubmitボタンをクリックしたことを覚えています。
全体のアクティビティ(活動の履歴)に自分のアイコンが流れたのを見るのはなんだか不思議な感覚ですね。
パッチを投稿した後は、Redmineのユーザーのコミュニティサイト「toot.Redmine」で「こんなパッチを書きました」と書き込んでいます。
6月中旬からRedmine本体の改善活動を始めて、これまで6個のパッチを投稿しました。
初めて送ったパッチです。実はユーザーに対するカスタムフィールドに対応できてないので釈然としていない部分がありますが、まずは出すことを優先しました。
CSVエクスポート用リンク:
出力されたCSVファイル:
チケットの注記(コメント)へのリンクをクリックしてその注記に移動したとき、どの注記へのリンクか分かりやすいようリンク先をハイライトします。7月8日にほぼそのままの形でいったんはRedmine本体に取り込まれたのですが、7月29日に変更が加えられ、今は私が書いたコードは残っていません。
チケットをCSV形式に出力するとき、日本語表示で使っているときはエンコーディングがCP932固定ですが、UTF-8も選択できるようにします。My Redmineのお客様から要望があった機能です。
ガントチャートのチケットのタイトル部分の幅がドラッグして変更できるようになります。My Redmineのお客様向けの相談会で要望がありました。改善効果が分かりやすいので作っていて楽しかったです。
ガントチャートに右クリックメニューを追加し、チケットの情報の更新が簡単に行えるようになります。標準のガントチャートでもついつい右クリックしたくなることがよくあるので、ぜひ本体に取り込んで欲しいです。
ガントチャートに担当者名も表示できるようにします。ビューのコードとHTMLの構造が複雑で苦労しました。パッチを送るまでに自分のコードを何回も書き直したりよりよい書き方を話し合うなどして勉強になりました。
コードを書く上では、今まではメソッドの名前を変えたり引数を増やすことに対してあまり慎重でなかったのですが、Redmineのパッチを書く上ではできるだけ他に影響を与えないようになんとかできないかを考えるようになりました。
そして、今まではRedmineなどのオープンソースの開発に関わっている人は漠然と「すごい人」で、そんな「すごい人」でないとオープンソースへの貢献はできない、と思っていました。今もRedmineに関わる人々が「すごい人」だという考えは変わらないのですが、すごい人じゃない自分でも、ちょっとしたところからできることがあるということに気づけました。
とりあえず、今までパッチを投稿する時以外に公式サイトのRedmineにコメントすることがなかったので、今度気になるチケットがあったら賛成を意味する「+1」のコメントをしてみようと思います。今後もパッチを書いたりとRedmineに対する貢献ができるよう頑張ります。
![]() |
My Redmine 無料個別相談会in東京(9月9日)を開催します(3組限定) My Redmine 無料個別相談会を9月9日(金)に東京で開催します。3組限定。お客様の疑問・課題を講師が一緒に解決します。 |
![]() |
「FAR END NEWS」2022年第3号 発行 広報紙「FAR END NEWS」2022年第1号を発行しました。弊社サービスの運用・サポートに携わっているスタッフや弊社の取り組みをご紹介します。 |
![]() |
【My Redmine導入事例】製造業の株式会社イシダテックにおける活用事例を公開 業務状況の可視化により社内リソースの有効活用が可能に My Redmineの導入と業務改善の推進で案件の情報共有に成功。鮮度・解像度が低かったプロジェクトの全体像が明確に。製造業の企業が取り組んだ工夫は、導入推進のための体制づくりや社内へのサポート。 |
![]() |
プロジェクト管理ツール「RedMica」バージョン 2.1.0をリリース Redmine互換のオープンソースソフトウェア 今日使える明日のRedmine「RedMica」の最新バージョン2.1.0をリリースしました。次期バージョン Redmine 5.1の新機能を先行利用できます。 |
![]() |
Redmineの最新情報をメールでお知らせする「Redmine News」配信中 新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け |