RFC 8762 STAMP実装プロジェクトへの貢献を歓迎します!
バグを発見した場合は、以下の情報を含めてissueを作成してください:
-
環境情報
- OS(Windows、Linux、macOSなど)
- コンパイラとバージョン
- ビルド方法
-
再現手順
- バグを再現するための具体的な手順
- 使用したコマンド
-
期待される動作
- 本来どのように動作すべきか
-
実際の動作
- 実際に何が起こったか
- エラーメッセージ
-
追加情報
- ログファイル
- スクリーンショット
- ネットワーク環境
新しい機能の提案は歓迎します!以下の情報を含めてissueを作成してください:
-
機能の説明
- 何を実現したいか
-
ユースケース
- どのような場面で役立つか
-
実装案(あれば)
- どのように実装できそうか
-
代替案(あれば)
- 他の解決方法
コードの貢献は以下の手順で行ってください:
-
Forkとクローン
git clone https://github.com/yourusername/RFC8762.git cd RFC8762 -
ブランチの作成
git checkout -b feature/your-feature-name
-
変更の実装
- コーディングスタイルガイドに従う
- 適切なコメントを追加
- テストを追加/更新
-
テストの実行
cmake --preset debug cmake --build --preset debug ctest --preset debug
-
コミット
git add . git commit -m "Add: 簡潔な変更内容の説明"
-
プッシュとプルリクエスト
git push origin feature/your-feature-name
- GitHubでプルリクエストを作成
- 変更内容を詳しく説明
-
インデント: タブ(幅8)
-
フォーマッター:
.clang-formatを使用(Linux Kernel スタイル準拠) -
命名規則:
- 関数:
snake_case(プレフィックスstamp_を推奨) - 変数:
snake_case - マクロ:
UPPER_CASE - 構造体:
snake_case(例:struct stamp_sender_packet)
- 関数:
-
括弧: K&Rスタイル
if (condition) { // コード }
-
コメント: 英語または日本語で明確に
// 単一行コメント /* * 複数行コメント * 詳細な説明 */
- エラーハンドリング: すべてのシステムコールの戻り値をチェック
- メモリ管理: メモリリークがないことを確認
- ポータビリティ: クロスプラットフォーム対応を維持(
#ifdefによるプラットフォーム分岐) - コンパイラ: GCC 14+ 必須。
-Werror有効のため、警告ゼロであること - ドキュメント: 複雑な処理には説明を追加
新しい機能には、対応するテストを追加してください(tests/test_stamp.c):
cmake --preset debug
cmake --build --preset debug
ctest --preset debugプルリクエストを作成する前に、以下をテストしてください:
-
ビルドテスト
- クリーンビルドが成功すること
- 警告が出ないこと
-
機能テスト
- 基本的な機能が動作すること
- エッジケースでも正しく動作すること
-
プラットフォームテスト(可能であれば)
- Windows
- Linux
- macOS
コミットメッセージは以下の形式に従ってください:
<タイプ>: <簡潔な説明>
<詳細な説明(オプション)>
<関連issue(オプション)>
タイプ:
Add:新機能の追加Fix:バグ修正Update:既存機能の更新Refactor:リファクタリングDocs:ドキュメントのみの変更Test:テストの追加・修正Build:ビルドシステムの変更
例:
Fix: Reflectorでのメモリリークを修正
受信したパケットのメモリを適切に解放するように修正。
Fixes #123
- プルリクエストが作成されると、メンテナーがレビューします
- 必要に応じて修正をリクエストします
- すべてのチェックが通り、レビューが承認されたらマージします
- 敬意を持って接する
- 建設的なフィードバックを提供する
- 多様性を尊重する
- オープンで協力的な態度を保つ
このプロジェクトは VS Code での開発を推奨しています。
プロジェクトを開くと、以下の拡張機能がインストール推奨されます:
- C/C++ Extension Pack (
ms-vscode.cpptools-extension-pack) - IntelliSense、デバッグ - CMake Tools (
ms-vscode.cmake-tools) - CMake プロジェクト管理 - Prettier (
esbenp.prettier-vscode) - JSON/Markdown/YAML のフォーマット - Git Graph (
mhutchie.git-graph) - Git ブランチの可視化 - GitHub Actions (
github.vscode-github-actions) - ワークフローの編集・実行
| 言語 | インデント | スタイル |
|---|---|---|
| C/H | タブ(8 幅) | Linux Kernel スタイル |
| JSON/YAML | 2 スペース | Prettier |
| Markdown | 2 スペース | Prettier |
- 保存時自動フォーマット: 有効
- 手動フォーマット:
Shift + Alt + F(Windows) /Shift + Option + F(Mac) - 改行コード: LF(Unix 形式)
- 文字コード: UTF-8
質問がある場合は、遠慮なくissueで質問してください。 初心者の方の質問も歓迎します!
貢献したコードは、プロジェクトと同じMITライセンスの下で公開されます。