原田です。2月に入りやっと雪が降りました。積雪があったのは一日だけでしたけどスノータイヤの有り難みを感じました。
今回は私が日々投稿しているRedmineのパッチをご紹介したいと思います。
Redmine公式サイトには、新機能の要望・提案(Feature)や不具合の報告(Defect)等のチケットが日々登録されています。当社ではRedmineへの貢献活動の一つとして(Redmineをより良くするために)これらのチケットに対するパッチを作成し投稿しております。
当社に入社し一年半ほど経ちましたが、それなりの数のパッチ(具体的な数は把握できておりません)を投稿していると思います。例えば、昨年12月にリリースされたRedmine 4.1では、私が開発したパッチのうち40件が採用されました。
最近投稿したパッチのひとつをご紹介したいと思います。実際のパッチはRedmine公式サイトのチケットに添付されていますのでよろしければご覧ください。
ウォッチャーにグループも追加できる機能を作成しました(2020年2月6日、Redmine公式のtrunkリポジトリにコミット済)。このチケットは2010年1月に登録されており多くの方の賛同を得ていますが、実装には至っておりませんでした。当社提供サービス「My Redmine」のご利用者様からも同様のご要望を寄せられておりました。
今回の作業に関して以下の2点を明確にしておく必要がありました。
1.に関しては調査した結果以下のことが分かりましたので対応(追加)可能と結論付けました。
2.に関しては以下のコマンドを実行し該当する箇所を抽出後、地道な作業ですけど一つひとつ確認しました。
$ grep -rin "watch" * --exclude-dir={vendor,public,tmp,doc,log,test,config/locales,files,plugins,coverage} app/models/mailer.rb:95: users = issue.notified_users | issue.notified_watchers app/models/mailer.rb:130: users = journal.notified_users | journal.notified_watchers ... (snip) ... app/models/watcher.rb:20:class Watcher < ActiveRecord::Base app/models/watcher.rb:21: belongs_to :watchable, :polymorphic => true app/models/watcher.rb:25: validates_uniqueness_of :user_id, :scope => [:watchable_type, :watchable_id] app/models/watcher.rb:28: # Returns true if at least one object among objects is watched by user app/models/watcher.rb:29: def self.any_watched?(objects, user) app/models/watcher.rb:33: if Watcher.where(:watchable_type => base_class.name, :watchable_id => objects.map(&:id), :user_id => user.id).exists? ... (snip) ...
これらに加えグループ追加に伴う処理やテストを見直したパッチをRedmine公式に投稿しました。実際にはレビュアー(社内・公式サイトのそれぞれ)からいくつか指摘を受けましたが、自分の知らなかったことや新たな気付きを得られました。
このパッチを適用すると以下のようにウォッチャーにグループを追加することができます。
当社はRedmineのクラウドサービス「My Redmine」を提供していることもあり、Redmineに関すること(運用・サポート)には精通していると思っております。しかしながらRedmine公式サイトをご覧いただくとお分かりになるかと思いますが、パッチ投稿者・レビュアー・コミッター等のメンバーがある程度決まった人員になっており、Redmineをより良くするための改善という面から見るとマンパワーが足らないと個人的には思います。
私はチケットを英文で書くことが苦手で、日本人の方の投稿が少ないのも同じこと(英語が苦手)が原因なのかなと思います。ちなみに私の場合はGoogle翻訳で伝えたいことを何度か翻訳させることで(日本語→英語→日本語→英語、この時点で英文がおかしくなることが多いけど)それなりに伝わる文章を作成しています。
もし可能であればRedmineをより良くするために公式サイトにチケットやコメントを投稿してみませんか。
![]() |
Redmineのパッチを書く活動の中で個人的に気をつけていることをまとめました。 |
![]() |
二酸化炭素濃度計を導入して、オフィスの換気を行うようになりました。体調が良くなるなどの効果があるようです。 |
![]() |
AWSome DayというAWSに関する基礎知識を学べるイベントにオンラインで参加しました。 |
![]() |
ブース出展時の企画でGoogle フォームを使ったクイズを実施。ブースにお立ち寄り頂いたお客様とコミュニケーションがとれました。 |
![]() |
「AWS Amplify」を利用して、ログイン画面の実装について手順を紹介します。 |
![]() |
社員研修に伴うサポート体制変更・休業のお知らせ(5/20〜23) 社員研修に伴い、5月20日〜23日はサポート体制の変更および休業とさせていただきます。 |
![]() |
オープンソースカンファレンス2025 Nagoyaに弊社代表の前田が登壇(ブース出展あり) オープンソースカンファレンス(OSC)2025 Nagoyaに弊社代表の前田が登壇。『Redmineの意外と知らない便利な機能(Redmine 6.0 対応版)』をテーマに発表します。 |
![]() |
エンタープライズプラン向け「優先サポート」を開始 My Redmineでは、エンタープライズプランをご契約のお客様向けにサポート対応を優先的に行う「優先サポート(プライオリティサポート)」を開始いたしました。 |
![]() |
プロジェクト管理ツール「RedMica」バージョン 3.1.0をリリース Redmine互換のオープンソースソフトウェア ファーエンドテクノロジー株式会社は、2024年11月19日(日本時間)、Redmine互換のプロジェクト管理ソフトウェア「RedMica 3.1.0」をリリースしました。 |
![]() |
Redmineの最新情報をメールでお知らせする「Redmine News」配信中 新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け |