Choreonoidへのcontributeについて

中岡様 @nakaoka
ユーザの皆様

Choreonoid のOSS運用について,こちらで相談をさせていただこうと思います.

規約等について

大規模なOSSになりますと貢献の際の規約が定められる場合が多いですが,現在Choreonoidには確立したものがないように思われます.

もし可能であれば,コーディング規約やPull Requestの投げ方などを明文化していただけると良いかと思います

ドキュメントについて

現在ドキュメント(マニュアル)についてユーザサイドは編集などを行うことができないと認識しております.一方,ROS等の外部との連携などはユーザサイドの方が知見が溜まりやすくなると考えられますが,現状

  • Discourse に投稿する
  • 個人のブログに投稿する

のような選択しかできません.前者では時間の経過と共に流れてしまいますし,後者では現在あまり多くはないユーザ間で情報が散逸してしまいます.

ご提案としては,マニュアルに対してPRが出せるようにする,であるとか,マニュアルをwiki形式にする,などがあると思います.

また choreonoid_ros_* のようなプラグインについても同様の対応が必要になるかと考えております.

以上,中岡様の方でご検討いただいた後,必要に応じてこちらで議論などさせていただければと思います.

1 Like

ご意見ありがとうございます。

ご指摘ありがとうございます、確かにそうかもしれません。

私の中では大体こう書くというのはあるのですが、Choreonoidはこれまで様々な機関から(プラグイン等の形態で)貢献がありまして、その際のコーディングは比較的好きなようにやってもらっていたところはあります。統一的なコードスタイルを実現するには、コーディング規約も決めて明文化しておいた方が良いということですね。

私のやり方で決めちゃってよいのかな?といったところはありますが、まずはこんなのでどうでしょう?といったものを今後用意したいと思います。

マニュアルについては、Sphinxというドキュメント整形ツールを用いて作成しています。

実はこのマニュアルのソースも以前よりGithubにリポジトリを用意していて、以下になります。

こちらをcloneして、sphinxもインストールして、中に入っているmake.shというコマンドを実行すると、HTML形式のマニュアルが生成されます。

SphinxのソースのreStructuredText 形式はテキストファイルなので、Gitを用いた共同作業にも適しています。実際にこれまでChoreonoid開発チーム(および開発プロジェクト参加機関)の間では、この形式で共同でマニュアルを作成していました。

こちらもプルリクエストは出せるはずですので、まずはそのやり方を試してみてもらえればと思います。

あとはWikiもあった方がよいかもしれませんね。Wikiについて、何かよいシステムをご存知でしょうか?(サーバに自分でインストールして管理できるもの)。昔はよくPukiWikiというWikiを使っていたのですが、さすがにそれは古いようなので、何かよいWikiシステムがあればよいなと思っています。ChoreonoidのサイトはVPSを用いて自前で運営していますので、どのようなものもインストールして動かすことができます。

2 Likes

@nakaoka
ご意見,ありがとうございます.
マニュアルの更新について,貢献できそうな所があれば積極的にさせて頂きたいと思います.

Wikiについてですが,おっしゃるとおりPukiWikiは古い&メンテナンスされていないようです…
私が個人的に使っている(実はJRLの内部Wikiもそれなのですが)Wikiのフレームワークとしては,Dokuwikiが良いかと思います.
https://www.dokuwiki.org/dokuwiki
多言語対応,メンテナンスもされているもので,基本的にはすべてのデータをSQLを介することなく保存可能です.また,SQLとの連携が必要な場合も対応しているようです.
以上,よろしくお願いします.

ご回答ありがとうございます.

規約について,中岡様主導で決めてしまってよいと思います.
ただ,他のアプリケーションへの拡張プラグインを考えた場合について,例えばROSやROS2は既に規約があるので,上手く中庸を取る必要が有るかもしれません.
(恐らくプラグインの話になるので,Choreonoid本体には影響しないと思われますが,念の為)

参考:
ROS C++ Style Guide
ROS 2 Developer Guide


ドキュメントについて,承知しました.ご教示ありがとうございます.

Wikiについて,東工大ロ技研ではCrowiを使用しています.ご参考までに.

先の話になりますが,Wikiを立てる場合,階層の設計など指針を立てる必要が生じそうですね.