Skip to content

develop/fetch での実験・開発について #1821

@sktometometo

Description

@sktometometo

develop/fetch 環境についての説明
( #1593 のブランチを基準としたワークスペースやロボット構成 )

Fetch は master にマージされていない機能や修正を常時有効化して動作させるために、 master とは別に develop/fetch ブランチからなる develop 環境が存在し、Fetch実機の体内環境はこのブランチをベースに構成されています。

How to contribute to develop/fetch branch

  1. 必ずPull Requestを通じて変更する。
  2. Pull Requestは基本的に少なくとも一人以上のレビューを必要とする。レビューしないでマージする場合はPull Requestに理由を記載する。(e.g. 実験のため等)
  3. Merge は Rebase (or Squash) で行う。
  4. Merge はPRを出した人がする。
  5. master にマージするべき機能はmasterにもPull Requestを出す。
  6. master にも Pull Request を出した場合は [WIP] Merge develop/fetch branch #1593 の関連PRリストに追加する。
  7. develop/fetch を master にリベースする際は Fetch chat スペースで周知してから行う。実験等で develop/fetch がリベースすると困る場合は見送る。

How to develop internal environment in Fetch

2つの方法がある

  1. 自分のワークスペースを作る
  2. fetchユーザーのmelodicワークスペースを変更する

1. 自分のワークスペースを作る

基本的にはこの方法をとり、こちらでは実験できないことを行う際には2番の方法を取る。

catkin workspace の extends 機能を使って、 fetchユーザー以下にあるmelodicワークスペースを継承するワークスペースを作って使用するのがおすすめ.
(cf. https://catkin-tools.readthedocs.io/en/latest/verbs/catkin_config.html#explicitly-specifying-workspace-chaining)

cd ~
mkdir -p catkin_ws/src
source /home/fetch/ros/melodic/devel/setup.bash
cd catkin_ws
catkin init

これで, fetch ユーザー以下の ros/melodic ワークスペースを継承するワークスペースを作成できた。
catkin config すると Extending のフィールドが以下のようになっているのが確認できるはず。

Extending:             [env] /home/fetch/ros/melodic/devel:/opt/ros/melodic

2. /home/fetch/ros/melodic ワークスペースを使う

自動起動するワークスペースを変更して開発を行う場合はこちらの方法。
Fetchのデフォルトの挙動へ影響を及ぼすのでこちらの方法を取る場合は注意

基本的にローカルのブランチへ直に作業せず、自分の作業ブランチをきってから作業すること。

注意点:

cron で update_workspace.sh をこのワークスペースに対して毎日動作させているため、remote へ push しないで開発していると local の変更はリセットされたり削除される可能性があるので注意。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions