Linux Mint 19と LMDE 3の開発始まる
「Linux Mint 19」と「LMDE 3」の開発が始まりました。「Linux Mint 19」は「Ubuntu 18.04 LTS」をベースとした新しい「Linux Mint」です。
そして「LMDE 3」は、「Debian 9」をベースとしたディストリビューションです。
また開発チームは、不具合の修正作業や新機能の開発など本格的な開発サイクルに入る前に少し時間を取り、インフラの改良やドキュメントの改善、そしてプロセスの改良作業にも取り組みました。
プロセスの改良作業
開発プロセスの改良作業に関する話題です。継続的インテグレーション
継続的インテグレーションでは、リリースするすべてのソフトウェアとメンテナンスしているすべてのプロジェクトに対し、容易にそして素早く貢献者のコードを受け入れ、パッケージをビルドし、ソフトウェアの品質を確保できるよう、開発チームを力強く支援する新しいツールとシステムを導入しました。貢献者がプロジェクトの一つに複雑なコードを含む変更を提供した時、今まで開発チームは問題なくその変更が動作することを確実にするため、「Linux Mint」と「LMDE」のプロジェクトでその変更をテストし、パッケージをビルドしていました。
しかし新しいツールとシステムのおかげで、これらの作業を自動的に行えるようになりました。
現在開発チームは「GitHub」上でテストの自動化を行うために、継続的インテグレーションを採用しています。
すべての単一コミット及び単一プルリクエストに対し、自動的に「Linux Mint 18」と「Linux Mint 19」そして「LMDE 3」でビルドが行われるようになっています。
もしいずれかの環境でビルドに失敗すれば、開発チームは直接その状況を「GitHub」から確認することができます。
この仕組みのおかげでプルリクエストのマージを、今までよりも非常に素早く行えるようになりました。
「Debian」パッケージでも同様に、すべての新しいコミットに対し自動的にビルドが行われるようになっています。
今後は継続的インテグレーションを活用して、ユニットテストや機能テストも行っていきます。
静的なコードの解析
ソースコードは各コミット毎にlintやアナライザーによるスキャンが行われます。静的なコードの解析はすべての問題を検出することはできませんが、潜在的な問題を検出することができ、潜在的な不具合の発見に役立ちます。
もし問題が検出されれば、開発チームはマージする前にその状況を「GitHub」から確認することができます。
Pre α版ISOとビルド環境
開発チームは、「Linux Mint 19 Pre α版」ISOの生成と「Linux Mint 19」及び「LMDE 3」用のビルド環境を構築しました。これにより「GTK 3.22」上で作業が行えるようになり、また、次のリリースに向けたパッケージのビルドが簡単に行えるようになりました。
ビルドツールの改善
ビルドツールが大幅に改善されました。GitHubで管理しているプロジェクトのクロスコンパイルが、単一コマンドで実行できるようになりました。
「Linux Mint Developer Guide」の準備がうまく整えば、詳しい内容が来月紹介される予定です。
Cinnamonに関する重要な変更
「Cinnamon」では、いくつか重要な変更が行われました。- Python 2からPython 3への移行
- mozjs38からmozjs52への移行
- 日付と時刻の同期をSystemdを利用したネットワーク経由で行う
「3.」により「Linux Mint」と「LMDE」では、もはや「NTP」がデフォルトでインストールされることはありません。
不具合対応の戦略見直し
開発チームは不具合対応の戦略(プロセス)を一から見直す必要がありました。今までの戦略はもはや機能していませんでした。
今までの戦略は一貫性がなく、ある不具合は「GitHub」で管理され、ある不具合は「Launchpad」で管理されていました。
「GitHub」で報告されている不具合の件数は約2500件あり、「Launchpad」で報告されている不具合の件数は約5000件あります。
また戦略に関しドキュメント化されていなかったため、開発チームの期待することがユーザーにはっきりと伝わっていませんでした。
これらの不具合の多くは、実際に不具合の修正や改善といった作業に結びつきませんでした。
開発チームのメンバーが報告された不具合に対し、その問題に対応しない回答や問題のクローズに消極的であり、ただ処理中の状態になっていました。
またこの件数の多さは、内容の確認や重要な問題への対応の妨げになっており、問題の中には簡単に取り組めるものもあります。
すべての不具合報告を処理
これらの不具合報告はすべて処理される予定です。決してすべてを放棄したり、一旦報告をリセットして一から始めたり、以前の戦略と同じ手法で不具合の処理を行うことはありません。
開発チームは一から見直した戦略の元、これらの報告に対応します。
新しい戦略では、見込みや期待、目標、効率に強く焦点をあてています。
ソフトウェアを主軸に
新しい戦略では、ソフトウェアを主軸に置きます。もし不具合報告の内容がソフトウェアの改善に結びつきそうにない内容だったら、対応する理由が無くなります。
不具合報告は、 開発チームが取り組むためにそこにあるのであり、 開発チームが無視するためにそこにあるのでありません。
また不具合報告は、その内容が良いアイデアや良い指摘内容であり有用性のある内容なら、数年に渡りオープンのままになることもあります。
それらを踏まえ、もし不具合報告の内容が即座に改善に結びつきそうにない内容なら、開発チームはその報告をクローズするでしょう。
有用な報告を行ってもらうために
開発チームはドキュメントなしに報告者に期待する内容を伝えることはできません。この点において「Linux Mint Troubleshooting Guide」が有用です。
このガイドでは、トラブルシューティングの方法を説明し、何が不具合で何が不具合ではないのか、そして不具合の報告方法を紹介しています。
新しいチームの構築と不具合を処理するツールの導入
新しいチームの構築と不具合を処理するツールが導入されました。新しいチームには、目的に応じて3種類のチームがあります。
1.Cinnamon開発チーム
一つは11人の開発者で構成される「Cinnamon開発チーム」です。このチームは「Cinnamon」に関するすべてのコンポーネントに対応するチームです。
2.Xapp開発チーム
一つは4人の開発者で構成される「Xapp開発チーム」です。このチームはクロスディストリビューションで提供される様々なソフトウェアに対応するチームです。
例えば以下のソフトウェアが該当します。
- xapp
- xplayer
- pix
- xed
- xreader
- xviewer
- blueberry
- pia-manager
- slick-greeter
3.Linux Mint開発チーム
最後は6人の開発者で構成される「Linux Mint開発チーム」です。このチームはすべてに対応するチームです。
様々なツールの導入
開発チームは様々なツールの導入し、品質の確保やプロセスの効率化を図っています。以前から「Git」と「Slack」が導入されていましたが、ここ最近これらに加え以下のツールも導入されました。
- ReadTheDocs
- Docker
- CircleCI
- Waffle
- Codacy
さらに「Meson」ビルドシステムの導入も検討されています。
これにより、さらなる開発の効率化が望めます。
ドキュメントの作成
すでにいくつかドキュメントが作成されていますが、既存のドキュメントに加え「開発者ガイド」と「セキュリティーガイド」が追加される予定です。「セキュリティーガイド」に関しては、「Spectre」や「Meltdown」の騒ぎの中で、ユーザーがセキュリティーに関し十分な知識を持っていないことが分かりました。
ユーザーのセキュリティーに対する意識を高めるため、ユーザーはセキュリティーに対してどうすれば良いのかを案内する「セキュリティーガイド」が今後追加される予定です。