Redmine Awardで特別貢献賞をいただきました


今回のブログ担当は石川です。
先日Redmine Japan vol.5に参加しました。Redmine20周年ということもあり、豪華なセッションなどとても盛りあがっていて素晴らしかったです。

Redmine Japanについては藤江さんが参加報告を書かれているので、こちらもぜひ: Redmine Japan vol.5 参加報告

プロジェクト管理ツールなら My Redmine!プロジェクトの課題やタスクの進捗をチームで共有。[PR] 1,000人使っても月額10,000円〜の定額制クラウド。国内実績多数。最大2ヶ月の無料お試しはこちら
Redmine20周年を祝うケーキ
Redmine20周年を祝うケーキ

Redmine Japanの「Redmine Award」授賞式では、特別貢献賞をいただきました。9年間で270件以上のパッチを提供するなど、Redmine本体への改善活動を評価していただいたとのことで、大変光栄です。

せっかくの機会だったので、当日の「20周年ショートスピーチ20連発」という企画にも参加して「この機能、実は私が作りました」というタイトルで自分が作った機能をいくつか紹介しました。このブログでは、その中からお気に入りの機能や開発時の苦労ポイントをいくつか振り返ってみます。

過去に開発した機能

コードブロックの内容をクリップボードにコピーするボタンを追加

https://www.redmine.org/issues/29214

コードブロックにポインタを乗せるとコピーボタンが表示され、クリックすると内容をクリップボードにコピーできる機能です。

ボタンの位置調整やブラウザごとのクリップボード関連APIの差にかなり苦しめられました。実はこのパッチ、2020年にも一度出していたのですが色々問題があって入らず、去年リトライしてようやくコミットされました。数年越しに実現した機能です。

コードブロックにポインタを乗せると右上にコピーボタンが表示される様子
コードブロックにポインタを乗せると右上にコピーボタンが表示される様子

チケット詳細ページで題名が隠れたとき、上部に題名が固定表示されるようにヘッダーを追加

https://www.redmine.org/issues/42684

チケット詳細ページをスクロールしても、チケットの題名が常に見える位置に固定される機能です。

社内で「こういう機能が有ったら別のチケットに間違えてコメントすることを防げて良いのでは?」という意見があり、良さそうと思って作りました。地味に大変だったのはレスポンシブモードのときの対応で、画面幅によってヘッダーを出す高さを変える必要があり調整に苦労しました。

チケット詳細ページをスクロールしても題名が上部に固定表示されるスティッキーヘッダー
チケット詳細ページをスクロールしても題名が上部に固定表示されるスティッキーヘッダー

マイページに自分のアクティビティを追加

https://www.redmine.org/issues/2471

マイページに、自分自身の直近の活動(チケットの更新やコメントなど)が表示される機能です。

これはもう遥か昔に作ったものすぎて、自分が作ったという自覚すらありませんでした。毎朝「昨日なにやったっけ」と振り返るために使っている機能で、まさか自分で作った機能に自分がずっと助けられていたとは…という発見がありました。

マイページに自分自身の直近のチケット更新やコメントなどの活動が一覧表示されている様子
マイページに自分自身の直近のチケット更新やコメントなどの活動が一覧表示されている様子

添付ファイルを一括ダウンロード

https://www.redmine.org/issues/7056

チケットに添付された複数のファイルを、まとめてzipなどでダウンロードできる機能です。

Windows周りの対応が地味に大変だった記憶があります。ファイル名の文字化けなど、OSやブラウザによる差異への対応にかなり時間を使いました。

チケットの添付ファイル一覧に表示されている「一括ダウンロード」ボタン
チケットの添付ファイル一覧に表示されている「一括ダウンロード」ボタン

テキストエリアでの自動リストマーカー挿入をサポート

https://www.redmine.org/issues/43095

テキストエリアで箇条書き(*-* [ ])の行末でEnterを押すと、次の行にも自動でマーカーが挿入される機能です。シンプルに自分がほしくて作りました。

箇条書きの行末でEnterを押すと次の行に自動で「* 」マーカーが挿入されたテキストエリア
箇条書きの行末でEnterを押すと次の行に自動で「* 」マーカーが挿入されたテキストエリア

Tab/Shift+Tabによる選択テキストエリア行のインデントをサポート

https://www.redmine.org/issues/44061

テキストを選択した状態でTab/Shift+Tabを押すと、選択範囲の行をまとめてインデント/インデント解除できる機能です。スピーチのわずか17日前にコミットされたばかりの、一番新しい機能でした。

箇条書きの自動マーカー挿入(上記)が入ったことで、インデントもTabで追加したくなって作ったのですが、実装方針にはかなり悩みました。ブラウザである以上、Tabキーが本来持っているフォーカス移動の仕組みを崩すわけにはいかないからです。
最終的にredmine.orgでFlorian Walchshoferさんの提案を受けて「テキストを選択している場合のみインデントする」という形に落ち着きました。

テキストを選択した状態でTabキーを押し、選択範囲の行がインデントされた様子
テキストを選択した状態でTabキーを押し、選択範囲の行がインデントされた様子

Command+Return / Ctrl+Enterでフォームを送信

https://www.redmine.org/issues/29473

コメント入力欄などでCommand+ReturnやCtrl+Enterを押すとフォームを送信できる機能です。こちらもシンプルに自分がほしくて作りました。

CSVエクスポート関連

特にユーザー一覧をCSVにエクスポートする機能は2018年にコミットされたもので、パッチを書き始めた初期に作ったものなので思い出深いです。当時はパッチに添える英語のコメントを書くのに苦労していましたが、最近はAIで簡単に文章を作れるようになりました。

テーブルを挿入するツールバーボタン

https://www.redmine.org/issues/1575

テキストエリアのツールバーからボタン一つでMarkdown/Textileのテーブル記法を挿入できる機能です。地味ですが、書かなくて済むので重宝しています。

テーブル挿入ボタンをクリックすると表示される行数・列数を選択するグリッド
テーブル挿入ボタンをクリックすると表示される行数・列数を選択するグリッド

ガントチャートの列幅をリサイズ可能にする機能

https://www.redmine.org/issues/20481

ガントチャート左側の一覧部分の列幅をドラッグで自由に変更できる機能です。

ガントチャートで選択した列を表示する機能

https://www.redmine.org/issues/27672

ガントチャートの一覧部分に、担当者やステータスなど任意の列を追加表示できる機能です。

ガントチャートのオプションで「ステータス」や「優先度」など列を追加し、一覧部分に表示されている様子
ガントチャートのオプションで「ステータス」や「優先度」など列を追加し、一覧部分に表示されている様子

ツールバーの「ハイライトされたコード内の言語」ボタンをカスタマイズ可能にする機能

https://www.redmine.org/issues/32528

テキストエリアのツールバーに表示されるコードハイライト言語のボタンを押したときの選択肢を管理画面からカスタマイズできる機能です。よく使う言語は人によって大きく違うため、選べるようにしたいというところから作りました。

ツールバーの「コードハイライト」ボタンを押すと表示される選択可能な言語の一覧
ツールバーの「コードハイライト」ボタンを押すと表示される選択可能な言語の一覧

おわりに

改めて振り返ってみると、1つ1つの機能にいろいろな背景や思い出があって面白かったです。紹介した機能のほとんどは私一人で作ったものではなく、社内で仕様を相談したり、redmine.orgでフィードバックを受けて見直したりと、多くの方の力を借りながら形にしてきたものです。

今後も便利な機能を作っていけるように、Redmine本体への改善活動を続けていきたいと思います。この度は特別貢献賞をいただき、ありがとうございました。

My Redmine

こちらの記事もオススメです!
Redmine Japan vol.5 参加報告
「Redmine Japan vol.5」参加レポート。Goldスポンサーとしてのブース出展や、代表前田の基調講演、エンジニア石川のRedmine Award受賞の様子をお届けします。
Redmineビューアーを仕様駆動開発で作ってみた
Claude Codeとcc-sddを組み合わせ、仕様駆動開発でMac向けのRedmineビューアー「minedock」を個人開発した事例を紹介します。
Apple Watchをヘルスケア目的以外で活用する
仕事の通知を見逃さないためにApple Watch SE 3を購入。通知だけでなく決済やバスの到着確認、Siriなど日常のちょっとした場面でも便利に使えました。
Markdownの編集に使う、Macで使えるテキストエディタいろいろ
MacでMarkdown形式のドキュメントを編集するアプリを探してみました。良いアプリがたくさんありました。使い続けるアプリの開発活動には支援をしたいと思いました。
働きやすい環境づくり〜ファーエンドテクノロジーの社内制度・福利厚生〜
フレックスタイム制度や超過勤務禁止などの働きやすい環境づくりと、大学等の学費補助や資格試験受験料補助などの社員の学びの支援を推進する、ファーエンドテクノロジーの社内制度を紹介します。
ファーエンドテクノロジーからのお知らせ(2026/07/08更新)
オープンソースカンファレンス2026 Shimane(7/11開催)登壇・ブース出展
2026年7月11日(土)に松江テルサ(島根県松江市)で開催される「オープンソースカンファレンス2026 Shimane」に登壇・ブース出展します。
プロジェクト管理SaaS「My Redmine」の「IPアドレスフィルター」で登録可能な「IPアドレス数」の上限を大幅に引き上げ
IPアドレスによる制限の上限が、エンタープライズプランでは従来の5倍となる2,000個まで、スタンダード・ミディアムプランでは2倍の200個に引き上げ
2026年7月8日 オライリー本の全冊公開日のお知らせ(もくもく勉強会も同時開催)
ファーエンドテクノロジーが所蔵するオライリー本(全冊)公開日のご案内です。公開日には「もくもく勉強会」も同時開催します。
Redmineのクラウド版「My Redmine」に大容量1.5TBの「エンタープライズ1.5TBプラン」が新登場!
オープンソースのプロジェクト管理ソフトウェアRedmineのクラウド版「My Redmine」に、月々40,000円(税別)の定額で1.5TB、2,000ユーザーまで利用できる大容量プランが登場。
Redmineの最新情報をメールでお知らせする「Redmine News」配信中
新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け