Actions

Mahara日本語ドキュメント/開発者エリア/Maharaプロジェクト概要: Difference between revisions

From Mahara Wiki

< Mahara日本語ドキュメント‎ | 開発者エリア
No edit summary
No edit summary
 
(217 intermediate revisions by 2 users not shown)
Line 1: Line 1:
作成中です - [[User:Mits|mits]]
このページではMaharaプロジェクトの開発手順概要に関して説明します。
 
* コードの技術的詳細は次をご覧ください: [[Developer_Area/Mahara_Architecture_Introduction]]
This page describes the overall development process for the Mahara project.
* Maharaに貢献するための他の方法は次をご覧ください:[[Mahara日本語ドキュメント/Maharaに貢献する|Maharaに貢献する]]
* For technical details on the code, see [[Developer_Area/Mahara_Architecture_Introduction]]
* For other ways to contribute to Mahara see [[Contributing to Mahara]]


== 誰がMaharaを所有していますか? (Who owns Mahara?) ==
== 誰がMaharaを所有していますか? (Who owns Mahara?) ==


Mahara is [http://en.wikipedia.org/wiki/Open-source_software open-source software] distributed under the [http://en.wikipedia.org/wiki/Copyleft copyleft] [http://www.gnu.org/copyleft/gpl.html GPL3 license], which means that it doesn't have an "owner" in the typical sense. ''Anyone'' who has a copy of the Mahara software is allowed to use it, modify it, redistribute it, even start their own [http://en.wikipedia.org/wiki/Fork_%28software_development%29 fork] of the project, without having to ask for any permission. (Technically Mahara is still copyrighted by the companies and programmers who wrote the individual lines of code in it, but the terms of the GPL say that the copyright holders have agreed to let anyone use, modify, and redistribute it, as long as their modifications and redistributions are also distributed under the GPL3 license. This is basically what "copyleft" means.)
Maharaは[http://www.gnu.org/copyleft/gpl.html GPL3ライセンス]の下、[http://ja.wikipedia.org/wiki/オープンソースソフトウェア オープンソースソフトウェア]として配布されています。これは標準的な意味での「所有者」が存在しないことを意味します。Maharaのコピーを持っている人は許可を得ずに「誰でも」使用すること、修正すること、再配布すること、自分で[http://ja.wikipedia.org/wiki/フォーク_(ソフトウェア開発) フォーク]したプロジェクトでさえ開始することができます (Maharaには技術的に個々のコードを書いている法人および開発者の著作権がありますが、GPL3ライセンスの下で配布される限り、著作権保持者は誰でもコードを使用、修正および再配布することに同意すると謳っています。これは基本的に「コピーレフト」が意味するものです)


One exception to this is the '''Mahara trademark'''. Both the Mahara name and logo are trademarked, and permission is required to use them for certain circumstances (i.e. domain names and commercial uses). See our '''[[Marketing/Trademark_Policy|trademark policy]]''' for more details.
これに関する1つの例外が「Mahara商標 (Mahara trademark) 」です。Maharaの名称およびロゴは商標であり、特定の環境下で使用する場合には許可を必要とします (例 ドメインおよび商用利用)。詳細は私たちの[[Marketing/Trademark_Policy|商標ポリシー]]をご覧ください。


== Who makes Mahara? ==
== 誰がMaharaを作っていますか? (Who makes Mahara?) ==


* '''Catalyst IT''' (http://catalyst.net.nz), is the company that originated the Mahara project, and which leads its development. Catalyst hosts https://mahara.org, maintains a (small) team of full-time Mahara developers (sometimes referred to as '''Mahara HQ'''), and currently handles most aspects of the Mahara release cycle.
* '''Catalyst IT''' (http://catalyst.net.nz) はMaharaプロジェクトを創出した法人であり、その開発をリードしています。Catalystは https://mahara.org を主催しています。また、小規模のフルタイムのMahara開発者 (しばしば'''Mahara HQ'''と呼ばれます) が管理およびほとんどのMaharaリリース頻度を管理しています。
* '''Maharaコントリビュータ (貢献者) '''はMaharaを改良して、[[Developer_Area/Contributing_Code|その改良をコミュニティと共有する]]人すべてです。貢献者の中にはMaharaを使用している学校または大学も含みます。その他の貢献者にMaharaインストールのサポートを提供しているCatalystのような法人があります。そしてまた、貢献者としてMaharaの熱心なユーザも存在します。貢献者は個人のバグ修正からサイト全体の機能強化に及びます。


* '''Mahara Contributors''' include anyone who makes an improvement to Mahara and [[Developer_Area/Contributing_Code|shares that improvement with the community]]. Some contributors are from schools or universities that use Mahara. Others are from companies like Catalyst which provide support for Mahara installations. And others are simply enthusiast users of Mahara. Contributions range from individual bug fixes, to system-wide enhancements.
* 一般のメンバーの方もコントリビュータ (貢献者)として歓迎します。
** Any member of the public is welcome to be a contributor.
** Maharaに興味のある方は誰でも気軽に参加することのできる[https://launchpad.net/~mahara-contributors Maharaコントリビュータ]グループもLaunchpad上にあります。
** 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.
*** このグループにはMahara bug trackerのための[https://help.launchpad.net/Bugs/YourProject#Bug_supervisors バグ管理者]権限があります。そのため、バグステータスを設定したり、バグをマイルストーンにピン留め等するには、あなたはこのグループに入る必要があります。
*** This group is the [https://help.launchpad.net/Bugs/YourProject#Bug_supervisors bug supervisor] role for the Mahara bug tracker. So you must be in this group in order to set bug statuses, pin bugs to milestones, etc.
** 他のコントリビュータのパッチを「+1 レビュー済み」および検証済みと評価するために、誰でも https://reviews.mahara.org の「Maharaテスター」グループに参加することができます。IRCまたはmahara.orgフォーラムでお尋ねください。
** 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.


* '''Mahara Core Developers''' aka '''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コア開発者''' (別名 '''Maharaレビュア''') は「+2レビュー」およびMaharaコードレビューシステムにコミットアクセスできるユーザです [https://reviews.mahara.org]。Maharaコードの品質を保証するため、すべてのコントリビューション (寄贈コード) はコード作者ではない信頼できるレビュアによってレビューおよびコミットされます。
** The process to become a reviewer is described here: [[Developer_Area/Commit_Policy#Becoming_a_reviewer]]
** レビュアになるための手順は次のとおりです: [[Developer_Area/Commit_Policy#Becoming_a_reviewer]]
** 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
** gerritグループに加えて、Launchpad上でのMaharaプロジェクト管理を担当するLaunchpad「Mahara Reviewers」があります: 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/Security_Team|セキュリティチーム]]'''はセキュリティ問題をレビューするMaharaレビュア内のグループです。
** Any approved Mahara Reviewer who has an interest in security and isn't dodgy, is welcome to join the Mahara Security Team.
** 信頼できるすべての認証MaharaレビュアはMaharaセキュリティチームへの参加を歓迎します。


* '''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翻訳者'''[[Developer_Area/Language_Packs|Mahara本体の翻訳]]および[https://launchpad.net/mahara-manual ユーザマニュアル]を他の言語に翻訳している人々です。
** 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翻訳者は自分が参加している言語に関するLaunchpad上の[https://translations.launchpad.net/+groups/mahara-translation-group 翻訳グループ]への参加を招待されます。


== Mahara versions ==
== Maharaバージョン (Mahara versions) ==


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.5から始まって、4月および10月に'''メジャーリリース'''を発表しながら、Maharaは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.01ずつ (1.7.0 -> 1.7.1 -> 1.7.2) 増加します。


== Support lifetime ==
== サポート存続期間 (Support lifetime) ==


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


Mahara currently provides updates (minor releases) for the three latest major versions. As of this writing, this includes 1.9, 1.8, and 1.7. 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.9、1.8および1.7を含みます。古いバージョンのコードベースを利用することはできます。また、オープンソースプロジェクトとして、誰でも変更、バックポートおよび好きなように修正することができますが、Maharaプロジェクトが提供できるサポートは古いバージョンから新しいサポートバージョンへのアップグレードのみです。


The latest version, Mahara 1.9, 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.9.
最新バージョンのMahara 1.9では1.10またはそれ以上のバージョンからアップグレードすることができます。まだMahara 1.0のインストレーションがある場合、あなたは1.9にアップグレードする前に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
問題点追跡 (Issue tracking) は継続的な品質管理プロセスの重要な一部でもあります。これには問題 (バグ) の報告、改善のアイデアおよび新しい機能を含みます。ほとんどの商用ソフトウェアとは異なり、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/Source code]]
詳細は[[Developer_Area/Source code]]をご覧ください。


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 [https://gitorious.org/mahara/mahara Gitorious] and [https://github.com/MaharaProject/mahara Github].
ZIPファイルをLaunchpadから[https://launchpad.net/mahara/ ダウンロード]できるのに対して、完全なMaharaのコードベースは[http://en.wikipedia.org/wiki/Git git]バージョン管理システムで管理されています。「生」のコードベースは私たちの[https://reviews.mahara.org https://reviews.mahara.org]のGerritコードレビューシステムで保持されています。これは自動的に[https://git.mahara.org/mahara/mahara git.mahara.org][https://github.com/MaharaProject/mahara Github]、[https://gitlab.com/mahara/mahara Gitlab.com]および[https://git.nzoss.org.nz/mahara/mahara the NZOSS]に同期されます。


=== 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.
1.0_STABLEにさかのぼり、Maharaではそれぞれのメジャーリリースを1.8_STABLE、1.7_STABLEのようにgit「ブランチ」で分けています。加えて、次のメジャーリリースのための開発場所である「マスター (master)」ブランチがあります。


== How your code becomes Mahara core code ==
== どのようにすれば、あなたのコードがMaharaのコアコードになるのか (How your code becomes Mahara core code) ==
それでは (あなたのような) コントリビュータ (貢献者) はどのようにすれば、自分のMaharaコードを次のMaharaリリースのために公式gitリポジトリに入れることができるのでしょうか?


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?
=== コーディングガイドライン (Coding Guidelines) ===
詳細は[[Developer Area/Coding guidelines]]をご覧ください。


=== Coding Guidelines ===
最初にコントリビュータがコードを書きます。Maharaには緩いコーディングガイドラインがあり、通常、コードはPHPベストプラクティスに従うことを期待されています: セキュリティプラクティスに従う、周囲のコードと「調和」する、既存のMahara APIを使用する、コードの再利用を最大化する、そしてAPIの変更を最小化するようなことです。
See [[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.
=== コードの共有 (Sharing the code) ===
詳細は[[Developer Area/Contributing Code]]をご覧ください。


=== Sharing the code ===
そして、コントリビュータがMaharaプロジェクトとコードを共有します。このための好ましい方法は適切な技術的レベルのあるユーザが直接私たちのGerritコードレビューシステムにコードを送信することです。しかし、私たちはパッチファイル、PHPファイルまたは十分に明確なLaunchpadでのコメントによるコード提供も歓迎します。この場合、Maharaレビュアはコントリビュータに代わってGerrit Changeを作成することができます。
See [[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
=== コードレビュー (Code review) ===


=== Code review ===
詳細は[[Developer Area/How to Review Code]]および[[Developer Area/Code Review]]をご覧ください。
See [[Developer Area/How to Review Code]] and [[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レビュアは適切なブランチにマージするようgerritOnceで指示することができます。そして、その変更は次の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のセキュリティ問題には分離された並行のプロセスがあります。


== 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インターフェース内のツールとして使用できるようになります。


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 [[Plugins]]
プラグインはMaharaコアの上流に入れる手続きを踏まずに、他のMaharaサイトと簡単に共有することもできます。Mahara wiki上には「サードパーティ」のMaharaプラグインを共有するためのページもあります: 詳細は[[Mahara日本語ドキュメント/プラグイン|プラグイン]]をご覧ください。

Latest revision as of 02:19, 7 October 2015

このページではMaharaプロジェクトの開発手順概要に関して説明します。

誰がMaharaを所有していますか? (Who owns Mahara?)

MaharaはGPL3ライセンスの下、オープンソースソフトウェアとして配布されています。これは標準的な意味での「所有者」が存在しないことを意味します。Maharaのコピーを持っている人は許可を得ずに「誰でも」使用すること、修正すること、再配布すること、自分でフォークしたプロジェクトでさえ開始することができます (Maharaには技術的に個々のコードを書いている法人および開発者の著作権がありますが、GPL3ライセンスの下で配布される限り、著作権保持者は誰でもコードを使用、修正および再配布することに同意すると謳っています。これは基本的に「コピーレフト」が意味するものです)

これに関する1つの例外が「Mahara商標 (Mahara trademark) 」です。Maharaの名称およびロゴは商標であり、特定の環境下で使用する場合には許可を必要とします (例 ドメインおよび商用利用)。詳細は私たちの商標ポリシーをご覧ください。

誰がMaharaを作っていますか? (Who makes Mahara?)

  • Catalyst IT (http://catalyst.net.nz) はMaharaプロジェクトを創出した法人であり、その開発をリードしています。Catalystは https://mahara.org を主催しています。また、小規模のフルタイムのMahara開発者 (しばしばMahara HQと呼ばれます) が管理およびほとんどのMaharaリリース頻度を管理しています。
  • Maharaコントリビュータ (貢献者) はMaharaを改良して、その改良をコミュニティと共有する人すべてです。貢献者の中にはMaharaを使用している学校または大学も含みます。その他の貢献者にMaharaインストールのサポートを提供しているCatalystのような法人があります。そしてまた、貢献者としてMaharaの熱心なユーザも存在します。貢献者は個人のバグ修正からサイト全体の機能強化に及びます。
  • 一般のメンバーの方もコントリビュータ (貢献者)として歓迎します。
    • Maharaに興味のある方は誰でも気軽に参加することのできるMaharaコントリビュータグループもLaunchpad上にあります。
      • このグループにはMahara bug trackerのためのバグ管理者権限があります。そのため、バグステータスを設定したり、バグをマイルストーンにピン留め等するには、あなたはこのグループに入る必要があります。
    • 他のコントリビュータのパッチを「+1 レビュー済み」および検証済みと評価するために、誰でも https://reviews.mahara.org の「Maharaテスター」グループに参加することができます。IRCまたはmahara.orgフォーラムでお尋ねください。
  • Maharaコア開発者 (別名 Maharaレビュア) は「+2レビュー」およびMaharaコードレビューシステムにコミットアクセスできるユーザです [1]。Maharaコードの品質を保証するため、すべてのコントリビューション (寄贈コード) はコード作者ではない信頼できるレビュアによってレビューおよびコミットされます。
  • Mahara セキュリティチームはセキュリティ問題をレビューするMaharaレビュア内のグループです。
    • 信頼できるすべての認証MaharaレビュアはMaharaセキュリティチームへの参加を歓迎します。

Maharaバージョン (Mahara versions)

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

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

Maharaのマイナーリリースにはバグフックス (バグ修正) およびセキュリティフィックス (セキュリティ修正) のみ含まれます。マイナーリリースは任意のスケジュールに従って、必要に応じてリリースされます。マイナーリリースのバージョンナンバーは0.01ずつ (1.7.0 -> 1.7.1 -> 1.7.2) 増加します。

サポート存続期間 (Support lifetime)

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

現在、Maharaでは最新の3つのメジャーバージョンに関して更新 (マイナーリリース) を提供しています。このドキュメントの執筆中、これには1.9、1.8および1.7を含みます。古いバージョンのコードベースを利用することはできます。また、オープンソースプロジェクトとして、誰でも変更、バックポートおよび好きなように修正することができますが、Maharaプロジェクトが提供できるサポートは古いバージョンから新しいサポートバージョンへのアップグレードのみです。

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

問題追跡 (Issue tracking)

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

問題点追跡 (Issue tracking) は継続的な品質管理プロセスの重要な一部でもあります。これには問題 (バグ) の報告、改善のアイデアおよび新しい機能を含みます。ほとんどの商用ソフトウェアとは異なり、Maharaの問題報告および追跡情報は誰にでも公開されています。MaharaのバグはLaunchpad.netのMaharaプロジェクトで報告および追跡されています: https://bugs.launchpad.net/mahara

すべてのMaharaユーザは自由に問題追跡システム (issue tracker) の活発な報告者として活動することができます。Launchpadのアカウントを持っている人は誰でもバグ報告を作成、閲覧、コメント、投票および監視することができます。

コードが存在する場所 (Where the code lives)

詳細はDeveloper_Area/Source codeをご覧ください。

ZIPファイルをLaunchpadからダウンロードできるのに対して、完全なMaharaのコードベースはgitバージョン管理システムで管理されています。「生」のコードベースは私たちのhttps://reviews.mahara.orgのGerritコードレビューシステムで保持されています。これは自動的にgit.mahara.orgGithubGitlab.comおよびthe NZOSSに同期されます。

コードブランチ (Code branches)

1.0_STABLEにさかのぼり、Maharaではそれぞれのメジャーリリースを1.8_STABLE、1.7_STABLEのようにgit「ブランチ」で分けています。加えて、次のメジャーリリースのための開発場所である「マスター (master)」ブランチがあります。

どのようにすれば、あなたのコードがMaharaのコアコードになるのか (How your code becomes Mahara core code)

それでは (あなたのような) コントリビュータ (貢献者) はどのようにすれば、自分のMaharaコードを次のMaharaリリースのために公式gitリポジトリに入れることができるのでしょうか?

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

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

最初にコントリビュータがコードを書きます。Maharaには緩いコーディングガイドラインがあり、通常、コードはPHPベストプラクティスに従うことを期待されています: セキュリティプラクティスに従う、周囲のコードと「調和」する、既存の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レビュアは適切なブランチにマージするようgerritOnceで指示することができます。そして、その変更は次の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サイトと簡単に共有することもできます。Mahara wiki上には「サードパーティ」のMaharaプラグインを共有するためのページもあります: 詳細はプラグインをご覧ください。