原田です。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のパッチを書くときに気をつけていること Redmineのパッチを書く活動の中で個人的に気をつけていることをまとめました。 |
|
換気してますか?二酸化炭素濃度計をオフィスに設置しました 二酸化炭素濃度計を導入して、オフィスの換気を行うようになりました。体調が良くなるなどの効果があるようです。 |
|
AWSの学習でAWSome Day(オンライン)参加とハンズオンをしました AWSome DayというAWSに関する基礎知識を学べるイベントにオンラインで参加しました。 |
|
イベントのブースでGoogle フォームを使ったクイズを企画しました ブース出展時の企画でGoogle フォームを使ったクイズを実施。ブースにお立ち寄り頂いたお客様とコミュニケーションがとれました。 |
|
AWS Amplify のログイン認証機能を試してみた 「AWS Amplify」を利用して、ログイン画面の実装について手順を紹介します。 |
2024年5月11日 オライリー本の全冊公開日のお知らせ(もくもく勉強会も同時開催) ファーエンドテクノロジーが所蔵するオライリー本(全冊)公開日のご案内です。公開日には「もくもく勉強会」も同時開催します。 |
|
入門Redmine 第6版 出版記念企画セミナー「Redmineのアクセス制御」【2024/5/30開催】 入門Redmine 第6版(2024年3月23日発売)の書籍から「Redmineのアクセス制御」について解説します。 |
|
My Redmine 初回ご契約で「入門Redmine 第6版」プレゼントのお知らせ Redmineのクラウドサービス「My Redmine」を初めてご契約いただいたお客様にRedmine解説書「入門Redmine 第6版」を進呈いたします。 |
|
2024年度ブランドパートナーに島根県在住のモデル ユイさんを継続起用 ユイさん(モデルスタジオミューズ所属)をファーエンドテクノロジーの2024年度ブランドパートナーとして継続して起用します。 |
|
Redmineの最新情報をメールでお知らせする「Redmine News」配信中 新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け |