Git Product home page Git Product logo

Comments (7)

crdelsey avatar crdelsey commented on July 26, 2024 1

This one is fully resolved by #107, isn't it? We can close now?

from navigation2.

mkhansenbot avatar mkhansenbot commented on July 26, 2024

@SteveMacenski - sorry for the late update on this one. I agree. I believe we could get rid of the top level 'src' folder and move all the sub-folders up to the top folder level. We also currently don't have a meta-package yet. We need one. I could work on a PR for these changes. @mjeronimo - do you have any issues with this request?

from navigation2.

SteveMacenski avatar SteveMacenski commented on July 26, 2024

For how things are generally organized, I think you could just move everything out of the src folder alongside the tools and docs directories for now and update the paths as needed.

I could do this tomorrow or on the plane to ROSCon the day after. I think it might be a good way for me to jump into the project and get actively involved.

from navigation2.

mjeronimo avatar mjeronimo commented on July 26, 2024

@SteveMacenski What's the benefit of removing the src directory from the hierarchy and pushing the contained directories up one level?

@mkhansen-intel Yes, I'd like to understand the issue better.

from navigation2.

SteveMacenski avatar SteveMacenski commented on July 26, 2024

@mjeronimo The src directory doesn't follow the metapackage conventions in any other ROS repository (a number of other ROS2 examples linked below), it is confusing and what ends up happening is grouping together of independent packages within a bunch of subdirectories. If you look at the existing navigation stack, all the packages are in the root directory so they're easy to access. At the end of the day, these packages are not related to each other and frequently for professional users we don't utilize a vast majority of them. The navigation stack doesn't ship as 1 project, but as a collection of projects that aren't denoted by localization or mission_execution.

Metapackages should have all of their packages available in the root of the repository. Catkin and Colcon will search for them inside of non-package directories but there's no precedent for putting them in a source directory. A repository should not itself be a workspace and when its places inside src, it seems like you're utilizing this repository as itself a workspace and not that this metapackage is inserted into an existing workspace (where then the path would be workspace/src/src/metapackage/mission_execution/actual_package).

There are a number of situations where you want to have multiple projects in the same workspace that do not depend on each other to grab rosdeps. (i.e. I'm shipping my robot with a couple of subsystems in different packages/repositories that don't depend on each other in 1 container I'm building together).

Hope that makes sense. I could buy into an argument that the subdirectories mission_execution localization etc could go in the root of the repository if there were enough independent packages in a category to warrant it (3-4+).

tl;dr

  • Confusing grouping and these packages should be regarded as independent of each other
  • src implies this repository is being used as a workspace, which shouldn't be happening
  • There is plenty of precedence for metapackages and organization and this does not follow

https://github.com/ros-perception/vision_opencv/tree/ros2
https://github.com/ros-simulation/gazebo_ros_pkgs/tree/ros2
https://github.com/ros2/common_interfaces/tree/bouncy
https://github.com/ros2/turtlebot2_demo/tree/bouncy

from navigation2.

mjeronimo avatar mjeronimo commented on July 26, 2024

@SteveMacenski Thanks for the explanation and the references. Let's proceed and organize as you suggest.

from navigation2.

SteveMacenski avatar SteveMacenski commented on July 26, 2024

Ok, will PR this with updated docs and build scripts.

Feel free to assign ticket to me

from navigation2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.