2016年12月のRedmine開発状況

2017-01-15 18:00  •  分類:

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

概況

新機能追加を伴う次期feature releaseとなるRedmine 3.4.0の開発が進められています。1月15日 17時時点でRedmine 3.4.0向けのチケットは90件がクローズされています。なお、12月中にクローズされたチケットは34件でした。

バージョン 全チケット数 未完了チケット数
3.4.0 119 29
3.3.3 1 0

前回のfeature releaseである3.3.0が2016年6月19日にリリースされてから1月15日で210日経過しました。直近10回のリリース間隔は次の表の通りで、平均は150日(標準偏差56.0日)でした。時期的に3.4.0リリースへの期待が高まります。

バージョン リリース日 前バージョンからの日数
2.1.0 2012/09/16 124
2.2.0 2012/12/18 93
2.3.0 2013/03/19 91
2.4.0 2013/11/17 243
2.5.0 2014/03/02 105
2.6.0 2014/10/21 233
3.0.0 2015/02/19 121
3.1.0 2015/07/26 157
3.2.0 2015/12/06 133
3.3.0 2016/06/19 196

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

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

注目のチケット

機能追加・修正

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

Email receiving

Feature #5864: 「管理」→「設定」の「メール本文から一致する行以降を切り捨てる」が正規表現に対応

Redmineはメールでチケットを登録する機能があります。この機能の設定として、メール本文内で特定のパターンに一致する行より後をチケット登録時に切り捨てる設定があります。これまでこの設定は文字列の前方一致によるマッチングが行われていましたが、Redmine 3.4.0からは正規表現でのマッチングも行えるようになります。

Issues

Feature #10989: 未完了の子チケットを持つ親チケットのクローズを禁止

Redmine 3.4.0では、未完了の子チケットを持つ親チケットは、ステータスを終了状態にできないようになります(ステータスの選択肢に表示されない)。また、終了した親チケットに対して新たな子チケットを作成することができなくなります。

Redmine 3.3ではそのような制限が行われていないため、子チケットは未完了なのに親チケットがクローズされているという論理的におかしな状態なることがありました。Redmine 3.4以降ではそのような状態になるのを防ぐことができます。

REST API

Patch #19116: 「ファイル」機能用のREST API

Redmine 3.4.0ではプロジェクトの「ファイル」にアクセスするREST APIが追加され、Web画面以外にAPIでもプロジェクトの「ファイル」の一覧の取得と新たなファイルのアップロードができるようになります。使い方は公式サイトのAPIリファレンスを参照してください。

※ここでいう「ファイル」とは、Redmineのプロジェクトの「ファイル」モジュールのことです。チケット等の添付ファイルとは異なります。

$ curl --user admin:admin http://localhost:3000/projects/1/files.json | python -mjson.tool
{
    "files": [
        {
            "author": {
                "id": 1,
                "name": "Admin Redmine"
            },
            "content_type": "application/octet-stream",
            "content_url": "http://localhost:3000/attachments/download/12/foo-1.0-setup.exe",
            "created_on": "2017-01-04T09:12:32Z",
            "description": "Foo App for Windows",
            "digest": "1276481102f218c981e0324180bafd9f",
            "downloads": 0,
            "filename": "foo-1.0-setup.exe",
            "filesize": 74753799,
            "id": 12,
            "version": {
                "id": 2,
                "name": "1.0"
            }
        }
    ]
}

Performance

Defect #23318: 大量の子チケットを持つチケットで #lock_nested_set メソッドが遅い問題の改善

数千件の子チケットを持つチケットの操作のパフォーマンスを改善するためのパッチがRedmine 3.4.0向けにコミットされました。

Roadmap

Feature #23137: ロードマップ画面サイドバー内「完了したバージョン」の一覧の並び順を、新しいものが上になるよう変更

「ロードマップ」画面サイドバー内の「完了したバージョン」を展開すると、ステータスが「終了」になっている古いバージョンの一覧が表示されます。ここでのバージョンの並び順は期日が古い順だったので、参照する頻度が比較的高い最近のバージョンが下の方に表示されてしまいスクロールが面倒でした。

Redmine 3.4.0からは最近のものから順に表示されるようになります。

Redmine 3.3.0までは古い順に表示されるので最近のものを参照しにくかった:

注目のチケット

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

Feature #24681: シンタックスハイライトの対応言語を100以上に増やす

Redmineのコードハイライト機能はCodeRayというライブラリにより実現されていますが、対応している言語はおよそ20ほどであり、メジャーな言語でもC#など未対応のものが多数あります。

このチケットでは、別のライブラリであるRougeを使用すること100以上の言語に対応することを提案しています。当初はCodeRayを単純にRougeに置き換えることが提案されていましたが、ハイライトの精度はRougeよりCodeRayが勝る部分が多いことがわかりました(#24681#note-14)。現時点ではCodeRayとRougeの併用(CodeRayが対応していない言語のみをRougeが処理)が提案されています(#24681#note-16)。

Patch #1474: チケットの最新コメントをチケット一覧に表示

チケット一覧に各チケットの最後のコメントを表示する機能が提案されています。現状でもオプションの設定により「説明」欄の内容を表示させることができますが、このパッチはさらに最新のコメントも表示できる機能を追加します。

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

作成: 2017-01-15 18:00  •  分類: