0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

5. GitLabでの開発・連携メモ」①(SatNOGS-decoders編)

Last updated at Posted at 2025-08-08

RSP-03衛星のデコード対応にあたり、Libre Space Foundation の GitLab 上にある
satnogs-decoders リポジトリに対して .ksy ファイルの追加を行いました。
ここでは、ブランチ作成からMR(Merge Request)提出までの流れをステップ形式で整理します。
ユーザアカウント作成等は省略いたします


🔧 Step 1:リポジトリを Fork & Clone

誰でも取り組めるように、windowsPCのpowershell上で行いました

git clone https://gitlab.com/your_account/satnogs-decoders.git
cd satnogs-decoders
git checkout -b feature/rsp03_clean

🗂 Step 2:ksy/ フォルダへの .ksy ファイル追加

今回追加したファイル:ksy/rsp03.ksy

RSP-03衛星のGMSKビーコンをKaitai Struct形式で構文解析するためのファイルで、AX.25 UIフレームを含み、packet_type に応じて packet1 ~ packet3 を switch-case で切り替える構造です。
参考)4. SatNOGSでのRSP-03対応:変調方式と復調チャレンジ②

Step3 コミットとPush

完成した .ksy をコミットし、GitLabへPushします。

bash
git add ksy/rsp03.ksy
git commit -m "feat(rsp03): Add AX.25 GMSK decoder with beacon format v1"
git push origin feature/rsp03_clean

恥ずかしながら、知らずにMRを繰り返し行ってしまいトラブルがでました。MRのチェック処理にてSigned-off-byでエラーが多発しました。補足ですが最後のcommitを置き換えて(上書きして)から、リモートもそれに合わせて“上書きpush”し、余計なコミットを増やさないでMRをきれいに保つことが必要でした
微修正の場合は、以下のようにして

bash
git commit --amend
git push --force

各コマンドの意味

  • git commit --amend 直前のコミットを差し替えます。直前のコミットメッセージや内容(ステージ済みの変更)を上書きできるので、軽微な修正・Signed-off-by の付け忘れ・メッセージ修正に最適。新しいコミットIDに生まれ変わる(=履歴を書き換える)点に注意。
  • git push --force ローカルの“書き換えた履歴”で、リモートの同ブランチを上書きします。通常の git push は拒否されるため、MRのブランチに対して強制プッシュが必要になります。実務ではより安全な --force-with-lease を推奨(他人の変更をうっかり消しにくい)。

処理が進む中で、commitが複数残ってしまい、記事、下段でSquashして対応をしました

✅ PowerShellでコミットログが表示されている画面のスクリーンショット
qiita_a0ae6f03-0681-4032-910d-871705a09cba.png

Step4 GitLab上でMerge Requestを作成

GitLabでfeature/rsp03_cleanブランチから master ブランチに対するMerge Requestを作成し、コミュニティメンバーへレビューを依頼します。

✅ Merge Request画面のスクリーンショット
(例:Add rsp03.ksy for GMSK beacon decoding のMRが作成された画面)
MR作成後、パイプラインが通過したことの確認(緑のチェックマークが表示されている画面)
qiita_c8850814-1edf-49d0-9fc4-8e0a3d484970.png

✅ GitでコミットをSquashする手順(feature/rsp03_clean ブランチ上)※SatNOGSメンバーより指示がありcommitを1つにする
🔧 手順概要(例えば最新3コミットをまとめる)

bash
git checkout feature/rsp03_clean
git rebase -i HEAD~3

📝 実行後に表示される編集画面(例)

bash
pick 31d33e8a Add rsp03.ksy for GMSK beacon decoding (AX.25 included)
pick 7b389586 Fix rsp03.ksy: correct switch-on for AX.25 frame parsing
pick 38cb66bb feat(rsp03): Add AX.25 GMSK decoder with beacon format v1

✍️ 1つ目の行を pick のまま、残りを squash に変更:

bash
pick 31d33e8a Add rsp03.ksy for GMSK beacon decoding (AX.25 included)
squash 7b389586 Fix rsp03.ksy: correct switch-on for AX.25 frame parsing
squash 38cb66bb feat(rsp03): Add AX.25 GMSK decoder with beacon format v1

💬 その後、コミットメッセージ編集画面が表示されます:
内容を1つのメッセージに統合するなどして保存・終了。

🔄 Push反映(forceが必要)

bash
git push origin feature/rsp03_clean --force

※ --force を使うことで、GitLabのMR上の履歴も更新されます。

📝 Step 6:関連資料の同梱(MRのcommit欄に添付)

訂正 ## yamlファイル、README.mdファイルは不要です

以下の資料を、Git commit のコメントに記載 or 添付ファイルとして同梱しました:
資料としては提出のみ、MRリクエストは不要です

  • README.md:.ksy の構造や利用方法の補足
  • HKBeaconFormat(PDF or 抜粋):RSP-03のGMSKデータ構造仕様
  • yaml ファイル

yamlファイルは不要で、ksyファイル内にdoc | :fieldという形式で記載する

the kaitai structure and the fields definitions (which define the exposed properties/fields to the influxDB) should be in the same file KSY file.

📤 Step 7:MRの作成とコミュニケーション

*ファイル構造と命名規則(rsp03.ksy)を明確にの指示あり。ひたすら修正、MRの繰り返しでした。Kaitaiチェックがうまく使えておりませんでした
*MRタイトル例:[Add rsp03.ksy decoder file for RSP-03 AX.25 GMSK beacon support]

次回は「5-② Kaitai構文とデコード設計の工夫」について記載予定

関連記事リンク

0. 初めに — リーマンサット RSP-03 受信チャレンジの歩み
4. SatNOGSでのRSP-03対応:変調方式と復調チャレンジ②
5. GitLabでの開発・連携メモ②(Kaitai構文とデコード設計の工夫)
6.SatNOGSコミュニティとのやりとり

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?