コンテンツへスキップ

コントリビューション

まず、SQLModelを支援し、ヘルプを得るための基本的な方法を確認したいかもしれません。

開発

既にリポジトリをクローンしていて、コードを深く掘り下げる必要があることが分かっている場合は、環境設定に関するいくつかのガイドラインを以下に示します。

Poetry

SQLModelは、プロジェクトのビルド、パッケージ化、公開にPoetryを使用しています。

Poetryのドキュメントでインストール方法を学ぶことができます。

Poetryが利用可能になったら、開発用依存関係をインストールできます。

$ poetry install

---> 100%

これにより、仮想環境が自動的に作成され、すべての依存関係とローカルのSQLModelがインストールされます。

Poetry Shell

現在の環境を使用し、その中のすべてのツール(テスト用の`pytest`など)にアクセスするには、Poetry Shellに入ります。

$ poetry shell

これにより、必要な環境変数が設定され、それらを含む新しいシェルが開始されます。

ローカルSQLModelの使用

SQLModelをインポートして使用するPythonファイルを作成し、ローカルPoetry環境のPythonで実行すると、ローカルSQLModelソースコードが使用されます。

そして、そのローカルSQLModelソースコードを更新すると、そのPythonファイルを再度実行したときに、編集したばかりのSQLModelの最新バージョンが使用されます。

Poetryはそれを機能させる役割を担っています。しかしもちろん、それは現在のPoetry環境でのみ機能します。別の環境に標準のSQLModelをインストールした場合(GitHubリポジトリのソースからではない)、カスタムバージョンではなく標準のSQLModelが使用されます。

フォーマット

すべてのコードをフォーマットしてクリーンアップするスクリプトを実行できます。

$ bash scripts/format.sh

また、すべてのインポートを自動的にソートします。

ドキュメント

ドキュメントは、MkDocsMaterial for MkDocsを使用しています。

すべてのドキュメントは、`./docs`ディレクトリにMarkdown形式で記述されています。

多くのチュートリアルにはコードブロックが含まれています。

ほとんどの場合、これらのコードブロックは実際に実行可能な完全なアプリケーションです。

実際、これらのコードブロックはMarkdown内に記述されているのではなく、`./docs_src/`ディレクトリにあるPythonファイルです。

そして、これらのPythonファイルは、サイトを生成する際にドキュメントに含まれ/挿入されます。

テスト用ドキュメント

ほとんどのテストは、ドキュメント内のサンプルソースファイルに対して実際に実行されます。

これにより、以下が保証されます。

  • ドキュメントが最新であること。
  • ドキュメントの例がそのまま実行できること。
  • テストカバレッジによって、ほとんどの機能がドキュメントで網羅されていること。

ローカル開発中は、サイトをビルドして変更を確認する(ライブリロードを行う)スクリプトがあります。

$ bash scripts/docs-live.sh

<span style="color: green;">[INFO]</span>    -  Building documentation...
<span style="color: green;">[INFO]</span>    -  Cleaning site directory
<span style="color: green;">[INFO]</span>    -  Documentation built in 2.74 seconds
<span style="color: green;">[INFO]</span>    -  Serving on http://127.0.0.1:8008

`http://127.0.0.1:8008`でドキュメントを提供します。

そのため、ドキュメント/ソースファイルを編集して、変更をライブで確認できます。

テスト

ローカルで実行してすべてのコードをテストし、HTMLでカバレッジレポートを生成できるスクリプトがあります。

$ bash scripts/test.sh

このコマンドは`./htmlcov/`ディレクトリを生成します。ブラウザで`./htmlcov/index.html`ファイルを開くと、テストによってカバーされているコード領域をインタラクティブに調べることができ、欠けている領域があるかどうかを確認できます。

謝辞

コントリビューションありがとうございます!☕