リリース直後のRedmine 4.1.0にすぐアップデートしても大丈夫か? ― Redmine不具合検出のためのファーエンドテクノロジーの取り組み


前田です。2019年最後のコーポレートブログを担当します。この記事は Redmine Advent Calendar 2019 の最終日の記事でもあります。

さて、12月20日に、Jean-Philippe Lang氏が開発しているオープンソースのプロジェクト管理ソフトウェア「Redmine」の待望の新バージョンである 4.1.0 がリリースされました。250件もの変更・修正が含まれています。昨年12月にリリースされたRedmine 4.0.0 以来、1年ぶりのメジャーバージョンアップで、一年間かけて積み上げられてきた多数の開発成果が一気に利用可能になりました。主な新機能は以下の資料をご覧ください。

Redmine 4.1 新機能評価ガイド <速報版> from Go Maeda

昨年リリースのRedmine 4.0.0は変更・修正の件数は205件と多めでしたが、細かい改善を多数積み重ねた、やや地味なリリースだったと感じています。一方Redmine 4.1.0は大きめの新機能追加が積極的に行われました。その違いは、リリースのお知らせの文章の長さを比較するだけでもおわかりいただけるのではないかと思います。

多数の新機能が含まれているとなると、不具合が多数残っているのではないかと不安に感じたり、4.1.1 や 4.1.2 が出るまで待つのがよいのではないかと考える方もいらっしゃるのではないかと思います。この度リリースされた Redmine 4.1.0 は十分安定しているのでしょうか。もうアップデートしても大丈夫なのでしょうか。

結論: Redmine 4.1.0 は十分安定している

Redmine 4.1.0 は十分安定していて、大きな不具合はそれほど残っていないのではないかと考えています。サードパーティーのプラグインやテーマを利用している環境でなければ、今すぐアップデートを行っても問題になることは少ないではないかと思います。

プラグインやテーマについては、4.1ではそのままでは利用できず各作者が4.1向けの改修を行う必要がある場合があるので、アップデート後に問題なく動作するか十分検証を行う必要があります。ただ、以下のプラグインとテーマについては、Redmine 4.1.0の環境でも利用できることをファーエンドテクノロジーで確認しています。

プラグイン:

テーマ:

十分安定しているという理由 ― Redmine不具合検出のためのファーエンドテクノロジーの取り組み

私が「Redmine 4.1.0 は十分安定している」と考える根拠は、ファーエンドテクノロジーにおけるRedmineの開発中のバージョン(trunk)の不具合検出の取り組みを強化し、実際に多数の不具合を発見・報告・修正してきたからです。

弊社では以前からRedmineの開発に協力してきましたが、今年に入ってからはRedmineの品質向上のための独自の取り組みを始めました。その内容を紹介します。

① 社内向けの本番環境で trunk に変更

今年1月から、社内の業務で日々利用しているRedmineのバージョンを 4.0 から trunk に切り替えました。狙いはRedmineの未報告のバグをいち早く踏んで、報告や修正を行うことです。

trunk とは、簡単に言えば開発中のRedmine次期バージョンです。次期バージョン向けに追加された新機能がすぐ利用できますが、まだごく一部の人にしか使われていないためどうしても未発見の不具合に遭遇する可能性が高まります。trunkを毎日使う本番環境にデプロイすることで、次期バージョンの不具合をいち早く踏んで品質向上に貢献できるはずと考えました(本番環境を trunk に切り替えるのに実は少し不安がありましたが)。

trunkに切り替えて以降、日々の業務の中でRedmine次期バージョンのテストが常に行われることになり、Redmineの開発に関わっていない社員にも不具合を見つけてもらえるようになりました。

② Redmineの自動テストを独自に実行

Redmineでも当然テストコードが整備されており、Redmine公式サイトではリポジトリへのコミットが行われるたびにさまざまなRubyバージョンとバックエンドデータベースの組み合わせでテストが行われています。テスト結果は [https://www.redmine.org/build/] で参照できます。

これに加えて、ファーエンドテクノロジーでも独自に自動テストを実行することとしました。目的の一つ目はタイムゾーンに関係するエラーを検出すること、そして二つ目はファーエンドテクノロジーが提供しているRedmineのクラウドサービス「My Redmine」と同じ構成(同じテーマ、プラグインが入った状態)で不具合が発生していないかテストすることです。

新機能のために追加したコードにタイムゾーンを考慮していないコードが含まれていた場合、特定の時間帯だけ発生するなど見つけにくい不具合を引き起こすことがあります。タイムゾーンの扱いが怪しいコードによるエラーを検出するため、東京、UTC、アメリカ領サモア(日付変更線のすぐ東)の3つのタイムゾーンで毎日テストを実行しています。

弊社のクラウドサービス My Redmine 環境の場合、Redmineだけではなくいくつかのプラグインが導入されています。その状態でも不具合が発生しないこと、また各プラグインが最新のtrunkに対応していることを確認するために、My Redmine 環境とほぼ同等の構成でのテストを行っています。


まとめ

今年に入ってから、ファーエンドテクノロジーではRedmineの不具合をいち早く見つけるための取り組みを行ってきました。その一つとして、trunkのコード、いわば開発中のRedmine 4.1.0を、一年近くにわたって日々の業務で使い続けてきました。これにより相当数の不具合をリリース前に発見できました。リリース直後の新バージョンとしては、かなり不具合が少ないのではないかと期待しています。

(ただし、正直に言うと、ガントチャート、文書、フォーラムなどの社内でほとんど使っていない機能はほかの機能に比べてテストが甘いと思います)

Redmine 4.1.0は、リリースされたばかりですが安心して利用できると思います。多数の新機能が追加されてより使いやすくなったRedmine 4.1.0を、ぜひ早く使ってみてください。


My Redmine

こちらの記事もオススメです!
「Redmine 4.1 新機能選抜総選挙」で紹介できなかった新機能 10選
redmine.tokyoでRedmine4.1の新機能16個を紹介。そのほか紹介できなかった便利な新機能10個をピックアップして紹介します。
Redmineのセレクトボックスを検索できるようにするプラグインを作りました
このプラグインをRedmineに入れると、セレクトボックスが検索できるようになります。
AWS Amplify のログイン認証機能を試してみた
「AWS Amplify」を利用して、ログイン画面の実装について手順を紹介します。
Dockerを使うとRedmineのテストが少しだけ楽になりました
RedmineのテストにDockerを使うことで、仮想マシンの構築作業が不要になり楽になりました。
クラウドベースの統合開発環境「AWS Cloud9」超便利ッス。
AWS Cloud9は、いつでもどこでも同じ環境が使えて、共同開発にも向いています。
ファーエンドテクノロジーからのお知らせ(2020/06/03更新)
オープンソースのRedmine互換プロジェクト管理ソフトウェア「RedMica 1.1.0」リリース
Redmine互換のオープンソースのプロジェクト管理ソフトウェア「RedMica」のバージョン1.1.0をリリースしました。
オープンソースのRedmine互換プロジェクト管理ソフトウェア「RedMica」のロゴができました
Redmine互換のオープンソースのプロジェクト管理ソフトウェア「RedMica」(ファーエンドテクノロジー版Redmine)のロゴができました。
2020年度ブランドパートナーに島根県在住のモデル ユイさんを3年連続起用
ユイさん(モデルスタジオミューズ所属)をファーエンドテクノロジーのブランドパートナーとして継続して起用します。今年度で3年目となります。
My Redmine(Gen.2)ストレージ容量を倍増!スタンダードプランは200GBに
My Redmine Gen.2(ジェネレーション2)のストレージ容量が料金そのままにこれまでの2倍になりました。
Redmineの最新情報をメールでお知らせする「Redmine News」配信中
新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け