Actions

Mahara開発概要: Difference between revisions

From Mahara Wiki

No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
作成中です - [[User:Mits|mits]]
このページではMaharaプロジェクトの開発プロセス全体に関して説明します。コードに関する技術的詳細は[[Developer_Area/Mahara_Architecture_Introduction]]をご覧ください。
このページではMaharaプロジェクトの開発プロセス全体に関して説明します。コードに関する技術的詳細は[[Developer_Area/Mahara_Architecture_Introduction]]をご覧ください。


Line 10: Line 8:
** 一般の方の貢献も歓迎します。
** 一般の方の貢献も歓迎します。
** Launchpadに[https://launchpad.net/~mahara-contributors Mahara貢献者]チームもあります。どなたでもお気軽にご参加ください。  
** Launchpadに[https://launchpad.net/~mahara-contributors Mahara貢献者]チームもあります。どなたでもお気軽にご参加ください。  
** 他の貢献者のパッチを「+1 レビュー」済みおよび検証済みであるとマークするため、誰でも「Maharaテスター」グループに参加することもできます。IRCまたはmahara.orgフォーラムでお尋ねください。
** 他の貢献者のパッチを「+1 レビュー」済みおよび検証済みであるとマークするために、誰でも「Maharaテスター」グループに参加することもできます。IRCまたはmahara.orgフォーラムでお尋ねください。
* '''Maharaレビューア''' 「+2 レビュー」を持つユーザであり、Maharaコードレビューシステム ([https://reviews.mahara.org]) にコミットアクセスすることができるユーザです。Maharaコードの質を保証するため、すべての寄贈コードはコード作者ではない信頼できるレビューアによりレビューおよびコミットされます。
* '''Maharaレビュアー''' 「+2 レビュー」を持つユーザであり、Maharaコードレビューシステム ([https://reviews.mahara.org]) にコミットアクセスすることができるユーザです。Maharaコードの質を保証するため、すべての寄贈コードはコード作者ではない信頼できるレビュアーによりレビューおよびコミットされます。
** レビューアになるための手順は次をご覧ください: [[Developer_Area/Commit_Policy#Becoming_a_reviewer]]
** レビュアーになるための手順は次をご覧ください: [[Developer_Area/Commit_Policy#Becoming_a_reviewer]]
** 加えて、gerritグループ、LaunchpadでMaharaプロジェクトの権限を管理するLaunchpad「Maharaグループ」があります: https://launchpad.net/~mahara-reviewers
** 加えて、gerritグループ、LaunchpadでのMaharaプロジェクトの権限を管理するLaunchpad「Maharaグループ」があります: https://launchpad.net/~mahara-reviewers


* '''Mahara [[Developer_Area/Security_Team|セキュリティチーム]]'''はMaharaレビューアの一部であり、セキュリティ問題をレビューします。
* '''Mahara [[Developer_Area/Security_Team|セキュリティチーム]]'''はMaharaレビュアーの一部であり、セキュリティ問題をレビューします。
** すべての承認Maharaレビューアにおいて、セキュリティに興味のある人、また信頼できる人は自由にaharaセキュリティチームに参加してください。
** すべての承認Maharaレビュアーにおいて、セキュリティに興味のある人、また信頼できる人は自由にMaharaセキュリティチームにご参加ください。


* '''Mahara翻訳者'''は[[Developer_Area/Language_Packs|Maharaの翻訳]]および[https://launchpad.net/mahara-manual ユーザマニュアル]の翻訳をサポートしている人です。
* '''Mahara翻訳者'''は[[Developer_Area/Language_Packs|Maharaの翻訳]]および[https://launchpad.net/mahara-manual ユーザマニュアル]の翻訳をサポートしている人です。
** Mahara翻訳者は参加している言語に関して、Launchpadの[https://translations.launchpad.net/+groups/mahara-translation-group 翻訳グループ]に招待されます。
** Mahara翻訳者は翻訳作業に参加している言語に関して、Launchpadの[https://translations.launchpad.net/+groups/mahara-translation-group 翻訳グループ]に招待されます。


== Maharaバージョン ==
== Maharaバージョン ==
Line 25: Line 23:
詳細は[[6MonthlyCycle]]をご覧ください。
詳細は[[6MonthlyCycle]]をご覧ください。


Mahara 1.8から始まって、Maharaは4月および10月の新しい「メジャーリリース」を含む、6ヶ月ごとのリリースサイクルに従っています。メジャーリリースは0.1ずつ  (1.5 -> 1.6 -> 1.7) バージョンナンバーが増分されます。また、重要な新しい機能を含みます。
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) バージョンナンバーが増分されます。
Mahara'''マイナーリリース'''にはバグ修正およびセキュリティ修正のみ含みます。固定されないスケジュールに従って、必要に応じてマイナーリリースされます。マイナーリリースは0.0.1ずつ  (1.7.0 -> 1.7.1 -> 1.7.2) バージョンナンバーが増分されます。
Line 49: Line 47:
詳細は[[Developer_Area#Getting_set_up]]をご覧ください。
詳細は[[Developer_Area#Getting_set_up]]をご覧ください。


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


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


== あなたのコードがMaharaコアコードになるために (How your code becomes Mahara core code) ==
== あなたのコードがMaharaコアコードになるために (How your code becomes Mahara core code) ==
Line 61: Line 59:
詳細は[[Developer Area/Coding guidelines]]をご覧ください。
詳細は[[Developer Area/Coding guidelines]]をご覧ください。


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


=== コードを共有する (Sharing the code) ===
=== コードを共有する (Sharing the code) ===
詳細は[[Developer Area/Contributing Code]]をご覧ください。
詳細は[[Developer Area/Contributing Code]]をご覧ください。


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


=== コードレビュー (Code review) ===
=== コードレビュー (Code review) ===

Latest revision as of 04:21, 1 December 2014

このページでは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ページもあります。詳細はプラグインをご覧ください。