Skip to content

Comments

Move smach_tutorials (from https://github.com/eacousineau/executive_smach_tutorials.git). Catkinized.#19

Open
130s wants to merge 5 commits intoros:indigo-develfrom
130s:i/add_smachtutorial
Open

Move smach_tutorials (from https://github.com/eacousineau/executive_smach_tutorials.git). Catkinized.#19
130s wants to merge 5 commits intoros:indigo-develfrom
130s:i/add_smachtutorial

Conversation

@130s
Copy link
Member

@130s 130s commented Jun 8, 2017

According to the repo that currently hosts executive_smach_tutorials mentioned above, which is also referenced in the tutorial set of SMACH, the code was evacuated from https://code.ros.org/svn/ros-pkg/stacks/executive_smach_tutorials/trunk fortunately before the website went unaccessible.

Since executive_smach is part of core ROS (hosted under ros org https://github.com/ros/executive_smach), I think it makes sense to move this tutorial package to also ros org.

The package is also catkinized this time.

@130s
Copy link
Member Author

130s commented Jun 8, 2017

@eacousineau I also appreciate your opinion.

@130s
Copy link
Member Author

130s commented Jun 8, 2017

@rhaschke @spmaniato After I opened this PR I found you guys made some changes in your forked repos, so I merged them in here. I appreciate if you have any comments.

@rhaschke
Copy link

rhaschke commented Jun 9, 2017

Thanks Isaac for taking the initiative on this.

@eacousineau
Copy link

Late to the game, but I'd certainly be fine with this making it into the common tutorials as long as the Wiki only points to one repo (maybe mentioning the other as a mirror) - a concern is that it may be confusing if two copies of code are referenced, especially if diverge at any point.

Thanks!

@130s
Copy link
Member Author

130s commented May 15, 2018

@stonier or any supervising mainteners, could you give a review?

With a lack of central place for executive_smach_tutorials, there's always a fork activities. I just saw rhaschke/executive_smach_tutorials#3, where Robert agreed #19 (comment) to move here.

@130s
Copy link
Member Author

130s commented May 15, 2018

@eacousineau

as long as the Wiki only points to one repo (maybe mentioning the other as a mirror) - a concern is that it may be confusing if two copies of code are referenced, especially if diverge at any point.

Thanks for the comment. I can certainly update any duplicate/confusing info once this PR is merged in.

@stonier
Copy link
Contributor

stonier commented May 15, 2018

I'm a little ambivalent about having smach here as it's not really a common part of any ROS system whereas actionlib, nodelets/pluginlib are, but I don't have a strong objection either - if it's useful, great. Technically it doesn't introduce an undesirable dependency, particularly with respect to where it lands for the ros-<rosdistro>-desktop bundle that common_tutorials is in - there is already smach depended on by other packages in that bundle.

@clalancette since you're overseeing melodic, do you have any objections? The alternative would be to drop it into its own repository.

If it does go in, two things:

  • The turtlesim launched example should be installed (supports http://wiki.ros.org/smach/UseCase)
  • (nice-to-have) python scripts getting installed into the package bin directory

@clalancette
Copy link

@stonier I only care if it adds new dependencies to desktop/desktop_full. In this case, it looks like it adds the following new dependencies to the packages in this repository:

  • common_msgs
  • rospy
  • ros_tutorials
  • smach
  • smach_ros

common_msgs and rospy are really core, so no worries about them. smach and smach_ros are depended on by executive_smach, which is pulled in by the robot metapackage, so nothing new there. That leaves ros_tutorials, which is pulled in directly by the desktop metapackage. So, as you said, would be no new dependencies in desktop, so having this either in this repo or in another one would be fine by me.

130s added 3 commits May 21, 2018 09:51
…mach_tutorials.git). Catkinized.

According to the repo that currently hosts `executive_smach_tutorials` mentioned above, which is also referenced in the [tutorial set of SMACH](http://wiki.ros.org/smach/Tutorials), the code was evacuated from https://code.ros.org/svn/ros-pkg/stacks/executive_smach_tutorials/trunk fortunately before the website went unaccessible.

Since `executive_smach` is part of core ROS (hosted under `ros` org https://github.com/ros/executive_smach), I think it makes sense to move this tutorial package to also `ros` org.

The package is also catkinized this time.
@130s 130s force-pushed the i/add_smachtutorial branch from 6f6ad3c to 673f446 Compare May 21, 2018 16:53
@130s
Copy link
Member Author

130s commented May 21, 2018

Thanks for the review. Could we move on merging (& possibly making a new release)?

In response to @stonier's comments, which I think are addressed:

If it does go in, two things:

It's exec_depend-ed.

  • (nice-to-have) python scripts getting installed into the package bin directory

Done ddfc8bc. Locally confirmed that all python scripts in the package are installed:

$ cd src/ros/common_tutorials/smach_tutorials/
$ find . -iname *.py
./scripts/usecase_01/executive_step_05.py
./scripts/usecase_01/executive_step_04.py
./scripts/usecase_01/executive_step_06.py
./scripts/usecase_01/executive_step_01.py
./scripts/usecase_01/executive_step_07.py
./scripts/usecase_01/executive_step_02.py
./scripts/usecase_01/executive_step_03.py
./examples/concurrence2.py
./examples/sequence.py
./examples/user_data.py
./examples/iterator_tutorial.py
./examples/concurrence.py
./examples/actionlib_test.py
./examples/state_machine_simple_introspection.py
./examples/state_machine_simple.py
./examples/user_data2.py
./examples/state_machine.py
./examples/state_machine_nesting2.py
./examples/state_machine2.py
./examples/actionlib2_test.py
./examples/state_machine_nesting.py

$ cd /tmp/cws_common_tutorials
$ catkin config --install
$ catkin b smach_tutorials --no-deps
$ find ./install/ -iname *.py
./install/share/smach_tutorials/scripts/usecase_01/executive_step_05.py
./install/share/smach_tutorials/scripts/usecase_01/executive_step_04.py
./install/share/smach_tutorials/scripts/usecase_01/executive_step_06.py
./install/share/smach_tutorials/scripts/usecase_01/executive_step_01.py
./install/share/smach_tutorials/scripts/usecase_01/executive_step_07.py
./install/share/smach_tutorials/scripts/usecase_01/executive_step_02.py
./install/share/smach_tutorials/scripts/usecase_01/executive_step_03.py
./install/share/smach_tutorials/examples/concurrence2.py
./install/share/smach_tutorials/examples/sequence.py
./install/share/smach_tutorials/examples/user_data.py
./install/share/smach_tutorials/examples/iterator_tutorial.py
./install/share/smach_tutorials/examples/concurrence.py
./install/share/smach_tutorials/examples/actionlib_test.py
./install/share/smach_tutorials/examples/state_machine_simple_introspection.py
./install/share/smach_tutorials/examples/state_machine_simple.py
./install/share/smach_tutorials/examples/user_data2.py
./install/share/smach_tutorials/examples/state_machine.py
./install/share/smach_tutorials/examples/state_machine_nesting2.py
./install/share/smach_tutorials/examples/state_machine2.py
./install/share/smach_tutorials/examples/actionlib2_test.py
./install/share/smach_tutorials/examples/state_machine_nesting.py
./install/_setup_util.py
./install/lib/python2.7/dist-packages/smach_tutorials/__init__.py
./install/lib/python2.7/dist-packages/smach_tutorials/msg/_TestResult.py
./install/lib/python2.7/dist-packages/smach_tutorials/msg/__init__.py
./install/lib/python2.7/dist-packages/smach_tutorials/msg/_TestActionResult.py
./install/lib/python2.7/dist-packages/smach_tutorials/msg/_TestGoal.py
./install/lib/python2.7/dist-packages/smach_tutorials/msg/_TestActionFeedback.py
./install/lib/python2.7/dist-packages/smach_tutorials/msg/_TestFeedback.py
./install/lib/python2.7/dist-packages/smach_tutorials/msg/_TestAction.py
./install/lib/python2.7/dist-packages/smach_tutorials/msg/_TestActionGoal.py

@130s
Copy link
Member Author

130s commented Sep 9, 2018

Friendly ping @clalancette @stonier

@rhaschke
Copy link

@clalancette @stonier Could we please have progress on this? I just was contacted by users (again) who are confused by the large number of forks of this tutorial repository. Would be really nice, to move this into a central place asap.

Copy link

@clalancette clalancette left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks generally fine to me, with a small nit in the CMakeLists.txt. I'll approve anyway. It's up to @stonier to merge it, as he is the maintainer here.

@stonier
Copy link
Contributor

stonier commented Apr 2, 2020

Critical

Just tested the executive scripts, they no longer work as is in melodic. Looks like things have moved around in smach. e.g. StateMachine has been moved from smach to smach.state_machine. That needs either fixing, or removal from this PR (the examples are still nice).

Nice-to-have

Rosrunnables instead of scripts in the share directory. That would match what the other packages in this repo are doing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants