[ros-users] [Ros-developers] Fwd: rosinstall refactoring
Thibault Kruse
kruset at in.tum.de
Thu Jul 21 18:15:00 UTC 2011
Thanks Tully for the feedback,
> The other commands start to get into configuration management
> and although they share a lot of the names of SCM commands
> they actually are noteably different. init, add, remove, apply,
update, check.
True for all but check. Though bzr check exists, but I'd also go with
rosinstall wtf
I still think "check" may be useful, providing verbose information for
all that is strange but not dangerous, like
- stacks mentioned in .rosinstall but missing
- stacks in ROS_PACKAGE_PATH after ROS_ROOT
- duplicate URIs
- different .rosinstall and setup.sh
I think all future rosinstall should give warnings on such occasions,
and "check" would be the verbose information about the warnings.
> And as Dave suggested adding status would be good.
I will implement the status command. "info" in its current state already
shows a flag modified or not, but as a list of modified files, the
outputs of the scm status commands will have to be post-processed to
give a useful path.
> Inventing a whole new syntax is something we should not do lightly
especially
> if there's other solutions. Most of the ordering ones can be done
more easily by using an editor
> and cut and paste without learning a new command set.
> The differentiation between init and update is not really required in
this case.
By now, having the user modify his .rosinstall by hand is what covers
several usecases now anyway in the REP.
The problem with having an scm like syntax and a powerful ubiquitous
command for init/add/merge/apply/update is to find a suitable name for
that command. The word "install" can cover all of those, but "rosinstall
install" looks silly. I also kept thinking of "dwim" (do what I mean).
But that is also non-intuitive.
The differentiation between init, update, add, apply, merge, is not
technically required, it is merely a usability issue.
> I would suggest that we take the configuration methods you have layed out
> here and use them in the rosws/rosworkspace discussion which Brian
started.
> And pare down the existing REP 110 draft to be just the SCM commands
status, diff, and info.
The REP still has to mention the name of the command to use for
init/add/update/apply/merge.
And I see no word in English that would serve the purpose (other than dwim).
The alternative is to use rosinstall without further command for that,
but then the target directory may not be named after one of the other
commands (or must be "escaped" e.g. as ./diff).
I also still argue for "regenerate" as a harmless way of updating one's
setup.* files without touching anything else on the filesystem. However
adding a confirmation questions before any change would make that
somewhat obsolete.
So I still advocate the commands
status
diff
info
snapshot
check/wtf
[regenerate]
I'll wait for your suggestion, Tully, on how to deal with
init/add/update/merge as an SCM-like command.
On 07/20/2011 08:12 PM, Tully Foote wrote:
> Hi,
>
> I think that the SCM syntax is good. As proposed info and diff are
> good extensions. And as Dave suggested adding status would be good.
>
> snapshot is also probably a better name than --generate-versioned...
> we can add that as an alias.
>
> The other commands start to get into configuration management and
> although they share a lot of the names of SCM commands they actually
> are noteably different. init, add, remove, apply, update, check.
> Inventing a whole new syntax is something we should not do lightly
> especially if there's other solutions. Most of the ordering ones can
> be done more easily by using an editor and cut and paste without
> learning a new command set. The differentiation between init and
> update is not really required in this case.
>
> I would suggest that we take the configuration methods you have layed
> out here and use them in the rosws/rosworkspace discussion which Brian
> started. And pare down the existing REP 110 draft to be just the SCM
> commands status, diff, and info.
>
> Tully
More information about the ros-users
mailing list