Mahara開発概要

From Mahara Wiki
Jump to: navigation, search

このページではMaharaプロジェクトの開発プロセス全体に関して説明します。コードに関する技術的詳細はDeveloper_Area/Mahara_Architecture_Introductionをご覧ください。

誰がMaharaを作っていますか?

  • Catalyst IT (http://catalyst.net.nz) はMaharaを考案した法人であり、その開発を主導しています。Catalystはhttps://mahara.orgを運用しています。また、フルタイムの (小さな) Mahara開発チーム (Mahara HQと呼ばれます) を運営しています。現在、Maharaリリースサイクルの大部分を担当しています。
  • Mahara貢献者 (Contributors) Maharaを改善する人、コミュニティと改善点を共有する人を含みます。一部はMaharaを使用している学校または大学からの貢献者です。その他はMaharaインストレーションをサポートするCatalystのような法人です。それから、Maharaに熱心なユーザがいます。貢献の幅は個人によるバグ修正から、システム全体におよぶ機能増強まであります。
    • 一般の方の貢献も歓迎します。
    • LaunchpadにMahara貢献者チームもあります。どなたでもお気軽にご参加ください。
    • 他の貢献者のパッチを「+1 レビュー」済みおよび検証済みであるとマークするために、誰でも「Maharaテスター」グループに参加することもできます。IRCまたはmahara.orgフォーラムでお尋ねください。
  • Maharaレビュアー 「+2 レビュー」を持つユーザであり、Maharaコードレビューシステム ([1]) にコミットアクセスすることができるユーザです。Maharaコードの質を保証するため、すべての寄贈コードはコード作者ではない信頼できるレビュアーによりレビューおよびコミットされます。
  • Mahara セキュリティチームはMaharaレビュアーの一部であり、セキュリティ問題をレビューします。
    • すべての承認Maharaレビュアーにおいて、セキュリティに興味のある人、また信頼できる人は自由にMaharaセキュリティチームにご参加ください。

Maharaバージョン

詳細は6MonthlyCycleをご覧ください。

Mahara 1.8から始まって、Maharaは4月および10月の新しい「メジャーリリース」を含む、6ヶ月ごとのリリースサイクルに従っています。メジャーリリースは0.1ずつ (1.5 -> 1.6 -> 1.7) バージョンナンバーが増分されます。また、メジャーリリースには重要な新しい機能を含みます。

Maharaマイナーリリースにはバグ修正およびセキュリティ修正のみ含みます。固定されないスケジュールに従って、必要に応じてマイナーリリースされます。マイナーリリースは0.0.1ずつ (1.7.0 -> 1.7.1 -> 1.7.2) バージョンナンバーが増分されます。

サポートライフタイム

詳細はSupportedVersionsをご覧ください。

現在、Maharaは最新の3メジャーバージョンに関して、アップデート (マイナーリリース) を提供しています。このドキュメントを執筆している現在、これには1.8、1.7および1.6が含まれます。 古いバージョンのコードベースを利用することはできます。また、オープンソースプロジェクトとして、修正およびバックポート (新しいバージョンの機能を古いバージョンに移植) も歓迎します。しかし、Maharaプロジェクトが古いバージョンに関してサポートできるのは、新しいサポートされているバージョンに古いバージョンをバージョンアップする場合のみです。

最新バージョンのMahara 1.8では1.1.0またはそれ以降のバージョンにアップグレードすることができます。まだMahara 1.0のインストレーションが存在する場合、あなたは1.8にアップグレードする前に1.1.0にアップグレードする必要があります。

バグ管理 (Issue tracking)

詳細はDeveloper Area/Bug Statusをご覧ください。

バグ管理は重要な継続的品質管理の一部です。これには問題 (バグ) の報告、改善のためのアイデア、新しい機能の提案を含みます。多くの専売権付きソフトウェアと異なり、Maharaの問題報告および追跡情報はすべての人に対してオープンにされています。MaharaバグはLaunchpad.netのMaharaプロジェクト (https://bugs.launchpad.net/mahara) を使用して報告および追跡されています。

すべてのMaharaユーザは自由にバグ追跡 (issue tracker) の積極的な参加者になることができます。Launchpadのアカウントを持っている人は誰でもバグ報告の作成、閲覧、コメント投稿および監視することができます。

コードの場所 (Where the code lives)

詳細はDeveloper_Area#Getting_set_upをご覧ください。

MaharaのZIPファイルをLaunchpadからダウンロードできるのに対して、Mahraの完全なコードベースはgitバージョンコントロールシステムで管理されています。「ライブ」コードベースはhttps://reviews.mahara.orgにある私たちのGerritコードレビューシステム内にあるgitリポジトリに置かれています。そして、このリポジトリは同時にgitriousプロジェクトと同期されます: https://gitorious.org/mahara

コードブランチ (Code branches)

Maharaはそれぞれのメジャーリリースに関して、1.8_STABLE、1.7_STABLE、1.6_STABLEのような名称でgitブランチに分けられています。そして、すべてのブランチは1.0_STABLEに遡ることができます。加えて、次のメジャーリリースのための開発用の場所「master」があります。

あなたのコードがMaharaコアコードになるために (How your code becomes Mahara core code)

では、どのようにすれば、あなたのような寄贈者が自分のMaharaコードを次のMaharaリリースのために公式gitリポジトリに入れることができるのでしょうか?

コーディングガイドライン (Coding Guidelines)

詳細はDeveloper Area/Coding guidelinesをご覧ください。

最初に寄贈者がいくつかのコードを作成します。Maharaには緩いコーディングガイドラインがあり、通常、コードはPHPのベストプラクティスに従うよう期待されています。コードの取り囲みにより「調和 (blending in)」させること、Mahara既存のAPIを使用すること、コードを最大限再利用すること、そしてAPIの変更を最小限にすることにより、セキュリティ慣習に従っています。

コードを共有する (Sharing the code)

詳細はDeveloper Area/Contributing Codeをご覧ください。

そして、寄贈者はMaharaプロジェクトとコードを共有します。技術能力が適切なレベルにあるユーザにとって好ましい方法は私たちのGerritコードレビューシステムに直接コードを投稿することです。しかし、私たちはパッチファイル、PHPファイル、詳細を記述したLaunchpadのコメントでも歓迎します。これらの場合、Maharaレビュアーは寄贈者に代わってGerrit Changeを作成することができます。

コードレビュー (Code review)

詳細はDeveloper Area/How to Review CodeおよびDeveloper Area/Code Reviewをご覧ください。

Gerritに送信された変更 (「パッチ」と呼ばれます) は調査および検証 (テスト)されます。それぞれのパッチでは誰かがテストして動作したことを意味する「+1」検証スコアを取得する必要があります。また、Maharaレビュアがコード調査して問題がないことを確認したことを意味する「+2」検証スコアも取得する必要があります。パッチがテストに失敗した場合、またはレビュー時に問題を含んでいる場合、テスト担当者またはレビュアは寄贈者が変更する必要のある部分、またその理由を記した優しいコメントを残します。寄贈者は改訂版を送信することができます。送信された改訂版は改めてレビューおよびテストされます。

変更に関して検証およびレビューされた後、適切なブランチにマージするため、Maharaレビュアはgerritに指示することができます。変更は次のMaharaリリースにインクルードされます。

セキュリティ問題 (Security issues)

詳細はSecurity#How_to_report_a_security_issue?をご覧ください。

パッチがリリースされるまで公開されないことを確かにするため、Maharaセキュリティ問題の取り扱いには個別、並列の手続きがあります。

プラグインおよびAPI (Plugins and APIs)

詳細はDeveloper Area/Pluginsをご覧ください。

Maharaはオープンソースであり、あなたの思いどおりに修正することはできますが、Maharaを維持しながら拡張する最良の方法はプラグインを作成することです。プラグインはMaharaインストレーションに単純に「入れる (dropped)」ことのできるコードディレクトリです。また、プラグインはMaharaによって検出およびインストールされ、自動的にMaharaインターフェース内のツールとして利用できるようになります。

プラグインはMaharaコアの「上流に実装する (upstreamed)」手続きなしに他のMaharaサイトで簡単に共有することもできます。「サードパーティ」jのMaharaプラグインを共有するMahara wikiページもあります。詳細はプラグインをご覧ください。