2017年1月のRedmine開発状況

2017-02-07 14:00  •  分類:

Redmine本体の開発について、2017年1月中の主な動きをピックアップして紹介します。

概況

2017年1月7日(中央ヨーロッパ時間)、Redmine 3.3.2 と 3.2.5 がリリースされました。いずれもmaintenance releaseであり、バグ修正等が中心です。修正の一覧は以下の記事で確認できます(CHANGELOGの日本語訳付き)。

Redmine 3.3.2 / 3.2.5 リリース (Redmine.JP Blog)

1月中は開発が非常に活発で、66件のチケットがクローズされました。普段の倍のペースです。次期feature releaseとなるRedmine 3.4.0向けのチケットは、2月7日時点で123件がクローズされ進捗率は87%に達しています。いよいよリリースへの期待が高まります。

バージョン 全チケット数 未完了チケット数
3.4.0 141 18
3.3.3 3 0
3.2.6 12 0

なお、Redmine 3.4.0に盛り込まれる変更・修正の件数は、2010年のRedmine 1.0.0以降のリリースの中では最多になる見込みです。Redmine本体のチケット管理がRedmineに行われるようになったRedmine 0.7.0以降のfeature releaseのチケット数は以下の表の通りです。

バージョン リリース日 チケット数  
0.7.0 2008/04/28 82 82
0.8.0 2008/12/30 253 253
0.9.0 2010/01/09 252 252
1.0.0 2010/07/18 71 71
1.1.0 2011/01/09 67 67
1.2.0 2011/05/30 108 108
1.3.0 2011/12/10 77 77
1.4.0 2012/04/14 86 86
2.0.0 2012/05/15 4 4
2.1.0 2012/09/16 74 74
2.2.0 2012/12/18 56 56
2.3.0 2013/03/19 113 113
2.4.0 2013/11/17 94 94
2.5.0 2014/03/02 46 46
2.6.0 2014/10/21 69 69
3.0.0 2015/02/19 74 74
3.1.0 2015/07/26 43 43
3.2.0 2015/12/06 85 85
3.3.0 2016/06/19 105 105
3.4.0 2017/??/?? 141(?) 141

今月紹介するチケットの一覧です。

コミット済みの機能追加・修正

注目のチケット

機能追加・修正

リポジトリにコミットされた機能追加・修正のうちメリットや影響が比較的大きそうなものを紹介します。

Administration

Feature #16484: 新しいユーザーを作成したときのデフォルトタイムゾーン

Redmine 3.4.0では、新しくユーザーを作成したときにデフォルトでどのタイムゾーンを設定するのか、「管理」→「設定」画面の「認証」タブで指定することができるようになります。現行バージョンのRedmineではユーザーを作成した後に個人設定画面でタイムゾーンを設定する必要があります。

Redmineはユーザーごとにタイムゾーンが設定し、画面の時刻表示を調整できます。例えば日本時間の午前10時に作成されたチケットの場合、タイムゾーンが「(GMT+08:00) Beijing」に設定されているユーザーには北京時間の午前9時が作成時刻として表示されます。

タイムゾーンの設定が行われていないと、誤った時刻が表示されたり、一見正しい時刻が表示されているように見えても活動画面で午前0時から午前9時までの情報が前日分としてされるなど細かな不具合が発生します。

大多数のユーザーが同じ地域で活動していてタイムゾーンも同じである組織では、あらかじめデフォルトタイムゾーンを設定しておけば設定漏れによる時刻表示の不具合を防ぐことができます。

Code cleanup/refactoring

Feature #15361: テーブルを行ごとに色分け表示するための cycle("odd", "even") を廃止し疑似クラス :nth-child を使用

HTMLとCSSの変更のみであり利用者には直接の関係はありませんが、Redmineのテーマを公開している方には影響が大きいので紹介します。

現行バージョンのRedmineではチケット一覧などのテーブルの各行の背景色を交互に変えるために、HTML内でtr要素の奇数行と偶数行にそれぞれ oddeven というクラスが付与されています。Redmine 3.4.0ではこれらのクラスではなく疑似クラス :nth-child(odd):nth-child(even) が色分けに使われるようになります。

oddeven クラスを参照しているテーマは、Redmine 3.4.0に対応させるためには修正が必要です。テーマ作者の方は早めに備えましょう。

Custom fields

Patch #21705: 「長いテキスト」形式カスタムフィールドの「ワイド表示」オプション

Redmine 3.4.0では「長いテキスト」形式のカスタムフィールドに「ワイド表示」オプションが追加され、説明欄と同じ大きさで表示することができるようになります。

現行バージョンのRedmineでは表示の幅が狭いため、「長いテキスト」という名前にもかかわらず本当に長いテキストを入力すると非常に見にくくなっていました。Redmine 3.4.0ではワイド表示オプションによりこの問題が解消され、長文を扱いやすくなります。Redmineの応用範囲を広げるのに大きく貢献すると考えられます。

現行バージョン(機能追加前):
「原因」「再発防止策」が「長いテキスト」形式のカスタムフィールド。画面幅の4分の1程度の領域に内容が表示される。

Redmine 3.4.0(機能追加後):
「ワイド表示」をONにしたカスタムフィールドは説明欄と同じ幅で表示される。

ワイド表示の設定:

Feature #23265: バージョン形式カスタムフィールドのフィルタをステータスごとにグループ化

Redmine 3.4.0では、チケットのフィルタのドロップダウンでバージョン形式カスタムフィールドの値が3つのステータス「進行中」「ロック中」「終了」ごとにグルーピングされて表示されるようになります。現在はすべてのバージョンが平坦に表示されているため、バージョンの数が多いと目的のバージョンを探しにくくなります。

カスタムフィールドではなく対象バージョンのフィルタに対しては、同様の機能が既に2016年7月に実装済みです(Feature #10412

Issues filter

Feature #17720: チケットのフィルタに「更新者」「最終更新者」を追加

Redmine 3.4.0では新たなチケットのフィルタ「更新者」と「最終更新者」が追加されます。

「更新者」は、指定されたユーザーが更新したことがあるチケット(履歴欄に更新者として名前が出たことがあるチケット)を抽出します。「最終更新者」は、指定されたユーザーが最終更新者であるチケット(履歴欄の最も新しい記録がそのユーザーによる更新であるチケット)を抽出します。

自分が関係したことがあるチケットを抽出して状況を確認したり、顧客との連絡に使っているRedmineで最終更新者が顧客であるチケットを抽出して対応漏れを防ぐなどの使い方ができます。

Feature #21249: チケットのフィルタでバージョン型カスタムフィールドの期日、ステータス、およびバージョンのカスタムフィールドも使用可能に

Redmine 3.4.0では、チケットに対してバージョン形式のカスタムフィールドを追加しているとき、そのカスタムフィールドの「期日」と「ステータス」、そしてバージョンに対するカスタムフィールドの値をフィルタの条件として使えるようになります。現行バージョンではカスタムフィールドの値に対するフィルタのみが利用可能です。

Feature #23215で新たなフィルタ「対象バージョンの期日」と「対象バージョンのステータス」が追加されましたが、これをバージョン形式のカスタムフィールドにも広げたものです。

新たに追加されたフィルタ:

バージョン形式のカスタムフィールド(フィルタとして使用=ON):

バージョンに対するカスタムフィールド(フィルタとして使用=ON):

Issues list

Patch #24649: チケット一覧の「作業時間」「合計作業時間」をクリックすると作業時間の一覧を表示

Redmine 3.4.0では、チケット一覧の項目「作業時間」「合計作業時間」が作業時間の一覧へのリンクとなりました。作業時間の明細を素早く確認できるようになります。

チケット一覧の「作業時間」欄のリンク:

リンクをクリックするとそのチケットの作業時間の一覧が表示される:

Time tracking

Feature #24577: 作業時間の入力でチケット番号とコメント欄を必須入力にする設定

作業時間の入力画面では、チケット番号とコメントの入力は省略できます。チケット番号を省略するとプロジェクトに対して作業時間が記録されます。

Redmine 3.4.0では、「管理」→「設定」画面に新たに「時間管理」タブが表示され、チケット番号とコメントの2つの項目も必須入力に設定できるようになります。プロジェクトに対して作業時間を記録することを禁止したり、コメントの入力を強制したりできるようになります。

UI

r16172: 「プロジェクトへ移動…」ドロップダウンに「全プロジェクト」リンクを追加

あるプロジェクトでチケット一覧を表示している状態から全プロジェクトを横断したチケット一覧を表示しようとしたとき、現行バージョンでは、①トップメニューの「プロジェクト」をクリック ②「すべてのチケットを表示」をクリック — の2つの動作が必要でした。

Redmine 3.4.0では、r15983で実装された「プロジェクト」画面のメニューとの組み合わせにより、「プロジェクトへ移動…」ドロップダウンから「全プロジェクト」を選択するだけで表示できるようになりました。プロジェクトを横断した情報を素早く参照できるようになります。

①あるプロジェクトのチケット一覧を表示している状態で「全プロジェクト」を選択:

②全プロジェクトを横断したチケット一覧が表示される:

Feature #24922: コンテンツへの添付画像埋め込みの高DPI対応

最近はMacのRetinaディスプレイなど、画面表示に本来の倍以上の密度の画素を使って鮮明な表示を実現する高DPI環境が普及しつつあります(例: 1440×900ピクセルの画面を2880×1800画素の液晶パネルで表示)。

Redmine 3.4.0では、チケットやWikiのインライン画像表示が高DPI環境に対応しました。画像の拡張子を除いたファイル名の末尾が @2x@3x である場合(例: photo@2x.jpg)、実際の表示の2倍・3倍の解像度をもつ高DPI対応の画像として扱われ、Webブラウザが自動的に適切な大きさで表示します(Internet Explorerを除く。Edgeは可)。

例えば、画面上では300×230ピクセルの大きさで表示される想定で、実際の解像度はその倍の600×560ピクセルである画像ファイル screenshot@2x.png をチケットの説明欄内で表示させるとします。その場合、ファイル名に @2x が含まれることから実際の2倍の解像度を持つ高DPI対応画像として扱われ、ブラウザ上では想定通り300×230ピクセルの大きさで表示されます(Internet Explorerを除く)。

高DPI環境でキャプチャしたスクリーンショットをRedmineに貼り付けるときの手間も減ります。現行バージョンではわざわざ半分の解像度に変換するなどしないと想定の倍の大きさで表示されてしまいますが、Redmine 3.4.0ではファイル名の拡張子の直前に @2x を付けるだけで適切な大きさで表示されます(Internet Explorerを除く)。

この機能はHTMLのimg要素のsrcset属性を利用しています。Internet Explorer 11はsrcset属性に対応していないため、Redmine 3.3以前と同じ表示となります。

[現行バージョン] 常に元の画像の解像度のまま画面に表示される:

[Redmine 3.4.0] 拡張子の直前が @2x だと高DPI対応画像として扱われ、その画像の解像度の半分の大きさ(=想定通りの大きさ)で表示される:

Feature #24927: Gravatarアイコンとサムネイル画像の高DPI対応

Redmine 3.4.0ではGravatarアイコンと添付ファイルのサムネイルの表示が高DPIに対応しました。これらはMacのRetinaディスプレイなど高DPIに対応した環境だとぼんやりした表示となっていましたが、Redmine 3.4.0ではその問題が解消されます。

改善前後のGravatarアイコンの比較(チケットの履歴):

注目のチケット

現在は提案段階であり今後のリリースに含まれるかどうかまだ未確定ですが、最近動きがあったチケットの中で筆者が注目しているものを紹介します。

Feature #24808: OAuth2 support for Redmine API Apps (OAuth2 Provider)

Redmine上のデータにアクセスできるREST APIを使うとRedmineと連携するアプリケーションを開発・利用できます。このとき、アプリケーションに対してアクセスを許可するにはRedmine上のユーザーアカウントに割り当てられるAPIキーを使います。

ただ、APIキーはユーザーごとに1つしか作成されないため、あるユーザーが複数のアプリケーションを使用する場合はすべてのアプリケーションが同じAPIキーを共有し、そのユーザーと同じ権限を持つことになります。アプリケーションごとにアクセス許可を与えたり取り消したりすることや、付与する権限を調整することはできません。

そこで、より細かなアクセス制御を実現するために、RedmineをOAuth2対応にするパッチが提案されました。このパッチをテストできるサーバが提案者のPlanioにより用意されています(#24808#note-1)。

バックナンバー(Redmine 3.4.0 開発開始以降分)

作成: 2017-02-07 14:00  •  分類: