貢献ガイド
何が貢献できますか?
翻訳、改善、提案、バグ報告など、貢献の方法はさまざまです。
- 新しい翻訳は、外国語に慣れていない人が新しいことを学ぶのに役立ちます。
- 新しい機能を追加したり、既存の機能を改善するためのアイデアを提供することは、次のバージョンの開発に役立ちます。
- ドキュメントの改善や例の追加は、他の人がより良いユーザー体験をするのに役立ちます。
- バグを報告することで、MMGをより安定したものにすることができます。
どのように貢献できますか?
- 何か提案したり、改善したいことがあれば、GitHubのIssuesに新しい問題を作成してください。
- Pull Requestを送ることもできます。
- GitHubのDiscussionsで質問してください。
すべての提案は受け入れられますか?
いつも皆さんの意見を歓迎しています。 できるだけ多くの提案を受け入れようとしていますが、現実的にはすべての提案を受け入れることはできません。
次の場合は受け入れられない場合があります。
- MMGの方向性と一致しない場合
- MMGはできるだけ直感的に使用できることを望んでいます。
- MMGは、ベースファイルの構造が複雑になることを好みません。
- MMGに機能を追加するのではなく、別のプログラムを作成する方が適切な場合
- たとえば、ベースファイルで管理する言語が多すぎる場合、ユーザーがMMGを直接使用するのは非常に不便になる場合があります。そのような場合は、MMGをベースにした新しいGUIプログラムを作成する方が適切です。
- オープンソースライセンスに問題がある場合
- MMGはMITライセンスを使用しているため、GPLライセンスと互換性がありません。
次の場合は遅れる場合があります。
- 有料サービスが必要な機能
- MMGはフリーソフトウェアを目指しているため、有料サービスはオプションとして提供する必要があります。
- インターネット接続が必要な機能
- MMGはオフライン環境でも動作する必要があるため、オンラインでのみ動作する機能はオプションとして提供する必要があります。
開発のためにローカルでMMGをビルドするにはどうすればよいですか?
既存のローカル開発環境と競合しないように、Pythonの仮想環境を使用することをお勧めします。 MMGは、開発環境を管理するためにuvを使用しています。 uvは強力な依存関係管理機能を提供し、仮想環境を管理するのに非常に便利です。
環境の設定
まず、次のように開発環境を設定します。
- 公式ドキュメントの手順に従ってuvをインストールします。
-
リポジトリをクローンして、プロジェクトディレクトリに移動します。
git clone https://github.com/ryul1206/multilingual-markdown.git cd multilingual-markdown
-
仮想環境を作成し、
pyproject.toml
ファイルで指定された依存関係をインストールします。
uv sync --group dev --group test
uv sync --link-mode=copy --group dev --group test
- 仮想環境を有効にするには、次のコマンドを実行します。
source .venv/bin/activate
.venv\Scripts\activate
開発
開発環境が設定されたので、MMGを変更してテストできます。 変更したMMGを適用するには、次のコマンドを実行します。
uv sync --group dev --group test
uv sync --link-mode=copy --group dev --group test
たとえば、pyproject.toml
でversion
を9.9.9-beta
に変更した場合、mmg --version
の結果は次のように異なります。
(mmg) $ mmg --version
Version 2.0.1
------------------------------------------------------------------------
# Change version in pyproject.toml from 2.0.1 to 9.9.9-beta
(mmg) $ uv sync --group dev --group test
Resolved 151 packages in 1ms
Built mmg @ file:///D:...
Prepared 1 package in 1.05s
Uninstalled 1 package in 4ms
Installed 1 package in 53ms
~ mmg==9.9.9b0 (from file:///D:...)
------------------------------------------------------------------------
(mmg) $ mmg --version
Version 9.9.9b0