Actions

Mahara開発概要: Difference between revisions

From Mahara Wiki

No edit summary
 
(159 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]]をご覧ください。


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


* '''Catalyst IT''' (http://catalyst.net.nz) はMaharaを考案した法人であり、その開発を主導しています。Catalystはhttps://mahara.orgを運用しています。また、フルタイムの (小さな) Mahara開発チーム (「Mahara HQ」と呼ばれます) を保持しています。そして、現在、Maharaリリースサイクルの大部分を担当しています。
* '''Catalyst IT''' (http://catalyst.net.nz) はMaharaを考案した法人であり、その開発を主導しています。Catalystはhttps://mahara.orgを運用しています。また、フルタイムの (小さな) Mahara開発チーム (Mahara HQと呼ばれます) を運営しています。現在、Maharaリリースサイクルの大部分を担当しています。


* '''Mahara貢献者 (Contributors)''' Maharaを改善する人、そして[[Developer_Area/Contributing_Code|コミュニティと改善点を共有する人]]を含みます。一部はMaharaを使用している学校または大学からの貢献者です。そのほかはMaharaインストレーションをサポートするCatalystのような法人です。And others are simply enthusiast users of Mahara. Contributions range from individual bug fixes, to system-wide enhancements.
* '''Mahara貢献者 (Contributors)''' Maharaを改善する人、[[Developer_Area/Contributing_Code|コミュニティと改善点を共有する人]]を含みます。一部はMaharaを使用している学校または大学からの貢献者です。その他はMaharaインストレーションをサポートするCatalystのような法人です。それから、Maharaに熱心なユーザがいます。貢献の幅は個人によるバグ修正から、システム全体におよぶ機能増強まであります。
** Any member of the public is welcome to be a contributor.
** 一般の方の貢献も歓迎します。
** There is also a [https://launchpad.net/~mahara-contributors Mahara contributors] group on Launchpad, which anyone with an interest in Mahara is welcome to join.
** Launchpadに[https://launchpad.net/~mahara-contributors Mahara貢献者]チームもあります。どなたでもお気軽にご参加ください。
** Anyone is also welcome to join the "Mahara Testers" group on https://reviews.mahara.org, to gain the ability to mark other contributors' patches as "+1 review"'ed, and verified. Just ask on IRC or on the mahara.org forums.
** 他の貢献者のパッチを「+1 レビュー」済みおよび検証済みであるとマークするために、誰でも「Maharaテスター」グループに参加することもできます。IRCまたはmahara.orgフォーラムでお尋ねください。
* '''Maharaレビュアー''' 「+2 レビュー」を持つユーザであり、Maharaコードレビューシステム ([https://reviews.mahara.org]) にコミットアクセスすることができるユーザです。Maharaコードの質を保証するため、すべての寄贈コードはコード作者ではない信頼できるレビュアーによりレビューおよびコミットされます。
** レビュアーになるための手順は次をご覧ください: [[Developer_Area/Commit_Policy#Becoming_a_reviewer]]
** 加えて、gerritグループ、LaunchpadでのMaharaプロジェクトの権限を管理するLaunchpad「Maharaグループ」があります: https://launchpad.net/~mahara-reviewers


* '''Mahara Reviewers''' are users who have "+2 review" and commit access on Mahara's code review system, [https://reviews.mahara.org]. To ensure the quality of Mahara's code, every contribution is reviewed and committed by a trusted reviewer who is not the code's author.
* '''Mahara [[Developer_Area/Security_Team|セキュリティチーム]]'''はMaharaレビュアーの一部であり、セキュリティ問題をレビューします。
** The process to become a reviewer is described here: [[Developer_Area/Commit_Policy#Becoming_a_reviewer]]
** すべての承認Maharaレビュアーにおいて、セキュリティに興味のある人、また信頼できる人は自由にMaharaセキュリティチームにご参加ください。
** In addition to the gerrit group, there is a Launchpad "Mahara Reviewers" group, which has management privileges in the Mahara project on Launchpad: https://launchpad.net/~mahara-reviewers


* The '''Mahara [[Developer_Area/Security_Team|Security Team]]''' is a subset of the Mahara Reviewers who review security issues.
* '''Mahara翻訳者'''[[Developer_Area/Language_Packs|Maharaの翻訳]]および[https://launchpad.net/mahara-manual ユーザマニュアル]の翻訳をサポートしている人です。
** Any approved Mahara Reviewer who has an interest in security and isn't dodgy, is welcome to join the Mahara Security Team.
** Mahara翻訳者は翻訳作業に参加している言語に関して、Launchpadの[https://translations.launchpad.net/+groups/mahara-translation-group 翻訳グループ]に招待されます。
 
* '''Mahara Translators''' are people who help out with [[Developer_Area/Language_Packs|translating Mahara]] and/or [https://launchpad.net/mahara-manual its user manual] to other languages
** Mahara translators are invited to join the [https://translations.launchpad.net/+groups/mahara-translation-group translation group] on Launchpad for any languages their participate in.


== Maharaバージョン ==
== Maharaバージョン ==


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


Starting with Mahara 1.5, Mahara has been on a 6-month release cycle, introducing a new '''major release''' in April and October. Major releases increase the version number by 0.1 (1.5 -> 1.6 -> 1.7) and include major new features.
Mahara 1.8から始まって、Maharaは4月および10月の新しい「メジャーリリース」を含む、6ヶ月ごとのリリースサイクルに従っています。メジャーリリースは0.1ずつ  (1.5 -> 1.6 -> 1.7) バージョンナンバーが増分されます。また、メジャーリリースには重要な新しい機能を含みます。


Mahara '''minor releases''' include only bug fixes and security fixes. They are released as needed, according to no fixed schedule. Minor releases increase the version number by 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) バージョンナンバーが増分されます。


== サポートライフタイム ==
== サポートライフタイム ==


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


Mahara currently provides updates (minor releases) for the three latest major versions. As of this writing, this includes 1.8, 1.7, and 1.6. The code base for older versions is still available, and as an open source project anyone is welcome to make whatever changes or backport whatever fixes they want, but the only support the Mahara project can provide for older versions is to assist in upgrading them to newer, supported versions.
現在、Maharaは最新の3メジャーバージョンに関して、アップデート (マイナーリリース) を提供しています。このドキュメントを執筆している現在、これには1.8、1.7および1.6が含まれます。 古いバージョンのコードベースを利用することはできます。また、オープンソースプロジェクトとして、修正およびバックポート (新しいバージョンの機能を古いバージョンに移植) も歓迎します。しかし、Maharaプロジェクトが古いバージョンに関してサポートできるのは、新しいサポートされているバージョンに古いバージョンをバージョンアップする場合のみです。


The latest version, Mahara 1.8, provides the ability to upgrade versions 1.1.0 or later. If there are still any Mahara 1.0 installations out there, you'll need to upgrade to 1.1.0 before upgrading to 1.8.
最新バージョンのMahara 1.8では1.1.0またはそれ以降のバージョンにアップグレードすることができます。まだMahara 1.0のインストレーションが存在する場合、あなたは1.8にアップグレードする前に1.1.0にアップグレードする必要があります。


== バグ管理 (Issue tracking) ==
== バグ管理 (Issue tracking) ==


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


Issue tracking is an important part of a continuous quality control process. It involves reporting of problems (bugs), ideas for improvement, and new features. Unlike most proprietary software programs, Mahara issue reporting and tracking information is open to everyone. Mahara bugs are reported and tracked in the Mahara project on Launchpad.net: https://bugs.launchpad.net/mahara
バグ管理は重要な継続的品質管理の一部です。これには問題 (バグ) の報告、改善のためのアイデア、新しい機能の提案を含みます。多くの専売権付きソフトウェアと異なり、Maharaの問題報告および追跡情報はすべての人に対してオープンにされています。MaharaバグはLaunchpad.netのMaharaプロジェクト (https://bugs.launchpad.net/mahara) を使用して報告および追跡されています。


All Mahara users are encouraged to be active participants in the issue tracker. Anyone with a Launchpad account can create, view, comment on, vote, and watch bugs.
すべてのMaharaユーザは自由にバグ追跡 (issue tracker) の積極的な参加者になることができます。Launchpadのアカウントを持っている人は誰でもバグ報告の作成、閲覧、コメント投稿および監視することができます。


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


See [[Developer_Area/Getting_Code_from_Git]]
詳細は[[Developer_Area#Getting_set_up]]をご覧ください。
 
While ZIP files of Mahara can be [https://launchpad.net/mahara/1.8 downloaded] from Launchpad, the full Mahara codebase is managed with the [http://en.wikipedia.org/wiki/Git git] version control system. The "live" codebase is hosted in a git repo controlled by our Gerrit code review system at [https://reviews.mahara.org https://reviews.mahara.org]. This is then synced automatically to a gitorious project, [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 has a separate git "branch" for each major release, with the names 1.8_STABLE, 1.7_STABLE, 1.6_STABLE, etc, going all the way back to 1.0_STABLE. Additionally, there is a "master" branch which is the location of ongoing development for the next major release.
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) ==


So how can a contributor (such as yourself) get their Mahara code get into the official git repository as part of the next Mahara release?
では、どのようにすれば、あなたのような寄贈者が自分のMaharaコードを次のMaharaリリースのために公式gitリポジトリに入れることができるのでしょうか?  


=== コーディングガイドライン (Coding Guidelines) ===
=== コーディングガイドライン (Coding Guidelines) ===
See [[Developer Area/Coding guidelines]]
詳細は[[Developer Area/Coding guidelines]]をご覧ください。


First, a contributor writes some code. Mahara has a loose set of coding guidelines, and code is generally expected to follow PHP best practices: following security practices, "blending in" with the surrounding code, using Mahara's existing APIs, maximizing code re-use, and minimizing API changes, that sort of thing.
最初に寄贈者がいくつかのコードを作成します。Maharaには緩いコーディングガイドラインがあり、通常、コードはPHPのベストプラクティスに従うよう期待されています。コードの取り囲みにより「調和 (blending in)」させること、Mahara既存のAPIを使用すること、コードを最大限再利用すること、そしてAPIの変更を最小限にすることにより、セキュリティ慣習に従っています。


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


Then, the contributor shares their code with the Mahara project. The preferred way to do this, for users with a sufficient level of technical ability, is for them to submit it directly into our Gerrit code review system. But we'll also welcome code contributed via a patch file, a PHP file, or even just a sufficiently specific Launchpad comment. In those cases, a Mahara reviewer can create a Gerrit Change on the contributor's behalf
そして、寄贈者はMaharaプロジェクトとコードを共有します。技術能力が適切なレベルにあるユーザにとって好ましい方法は私たちのGerritコードレビューシステムに直接コードを投稿することです。しかし、私たちはパッチファイル、PHPファイル、詳細を記述したLaunchpadのコメントでも歓迎します。これらの場合、Maharaレビュアーは寄贈者に代わってGerrit Changeを作成することができます。


=== コードレビュー (Code review) ===
=== コードレビュー (Code review) ===
See [[Developer Area/How to Review Code]] and [[Developer Area/Code Review]]
詳細は[[Developer Area/How to Review Code]]および[[Developer Area/Code Review]]をご覧ください。


The submitted Change (aka "patch") in Gerrit is then reviewed and verified (tested). Each patch must receive a "+1" verified score, which means that someone tested it and found that it worked. It must also receive a "+2" reviewed score, which means that an approved Mahara Reviewer examined the code and saw no problems with it. If the patch fails testing or contains review problems, the tester or reviewer will leave a friendly comment explaining what the contributor needs to change and why. The contributor can then submit a revised version, which will be reviewed and tested anew.
Gerritに送信された変更 (「パッチ」と呼ばれます) は調査および検証 (テスト)されます。それぞれのパッチでは誰かがテストして動作したことを意味する「+1」検証スコアを取得する必要があります。また、Maharaレビュアがコード調査して問題がないことを確認したことを意味する「+2」検証スコアも取得する必要があります。パッチがテストに失敗した場合、またはレビュー時に問題を含んでいる場合、テスト担当者またはレビュアは寄贈者が変更する必要のある部分、またその理由を記した優しいコメントを残します。寄贈者は改訂版を送信することができます。送信された改訂版は改めてレビューおよびテストされます。


Once the Change has been verified and reviewed, a Mahara Reviewer can then instruct gerrit to merge it into the appropriate branch. It will then be included in the next Mahara release.
変更に関して検証およびレビューされた後、適切なブランチにマージするため、Maharaレビュアはgerritに指示することができます。変更は次のMaharaリリースにインクルードされます。


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


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


There's a separate, parallel process for handling Mahara security issues, in order to ensure that they aren't disclosed to the public until after a patch is released.
パッチがリリースされるまで公開されないことを確かにするため、Maharaセキュリティ問題の取り扱いには個別、並列の手続きがあります。


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


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


Although Mahara is open source and you can change anything you want, the best and most maintainable way to extend Mahara is to write a plugin. Plugins are a directory of code that can be simply "dropped" in to any Mahara installation and it will be detected, installed, and automatically made available as a tool within the Mahara interface.
Maharaはオープンソースであり、あなたの思いどおりに修正することはできますが、Maharaを維持しながら拡張する最良の方法はプラグインを作成することです。プラグインはMaharaインストレーションに単純に「入れる (dropped)」ことのできるコードディレクトリです。また、プラグインはMaharaによって検出およびインストールされ、自動的にMaharaインターフェース内のツールとして利用できるようになります。


Plugins can also easily be shared with other Mahara sites without having to go through the process of being "upstreamed" into Mahara core. There's even a page on the Mahara wiki for sharing "third-party" Mahara plugins: See [[プラグイン]]
プラグインはMaharaコアの「上流に実装する (upstreamed)」手続きなしに他のMaharaサイトで簡単に共有することもできます。「サードパーティ」jのMaharaプラグインを共有するMahara wikiページもあります。詳細は[[プラグイン]]をご覧ください。

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