The current approach of using a single repository for all of Autoware has become increasingly untenable as the size of the code has grown. There are several problems with maintaining this approach. - The source code is buried several layers down a deep directory hierarchy. - New contributors are confronted with a huge amount of code, which discourages them from diving in to make a bug fix. Not knowing where to put a package or algorithm they want to contribute is also a symptom. - Doing CI for a single change in a single file, no matter how small, requires that the CI pipeline build all of Autoware. This currently takes anywhere from an hour and a half up. - It is essentially impossible to version different parts of Autoware independently. To fix this, one of the major items on the roadmap for 1.12 is to split the repositories and reorganise the package layout. This will be done as early in the 1.12 iteration as possible, so I'd like to start discussing it now and come to an agreement on what repositories we will create and what they will contain. Based on discussions with @esteve regarding how to layout the repositories for Autoware.Auto, here is a starting-point proposal for the new repositories. - **autoware** Root repository. Contains a README file, the `.repos` file for checking out/installing Autoware using `vcs` (which will be the preferred method from 1.12), and nothing else. - **core_perception** Core packages related to understanding the world around the car. - **core_planning** Core packages related to planning where the vehicle should go. - **core_control** Core packages related to controlling the vehicle so that it goes where it should. - **drivers** Hardware drivers for interacting with hardware, such as the Velodyne driver. Ideally, all packages in here will be candidates for eventually being pushed upstream somewhere. - **utilities** Packages that we develop that are not core to Autoware, i.e. you do not need them to drive a vehicle. - **visualisation** Packages dealing with visualising sensor data, the state of the car, etc. In addition to the above, we *may* create additional library-specific repositories for libraries we create that do not depend on ROS or any functionality from a ROS package. A good example would be an algorithm for a point cloud processing function. Thanks to the magic of `vcs` and `colcon`, such non-ROS repositories are relatively easy to integrate into a workspace. Each repository will follow a fairly flat directory structure. Although it is not a rule, as a guideline I think each repository should be a collection of packages at the same directory level. This work will be done fairly early in the work for 1.12, because we don't want to do it while we have lots of pull requests in flight. I will start another thread soon to discuss the timeline for the first couple of weeks of the 1.12 work. Related to splitting the repositories, we are trying to get our hands on the "Autoware" organisation name. It has been registered by someone else (Shinpei claims it is not him) since 2017, but has not been used since creation. We think that we have a case for getting the name based on GitHub's strict anti-name-squatting policy and the activity level in our project. If we are able to get the name, then we will perform the following actions. 1. [Rename](https://help.github.com/en/articles/renaming-an-organization) the CPFL organisation to Autoware. 1. Create a new CPFL organisation. 1. Move all non-Autoware related repositories to the new CPFL organisation. We will wait a week or two between the first two steps to give people time to update the URLs in their local checkouts. If you are wondering why we are renaming organisations rather than creating a new one for Autoware, there are two reasons. 1. It won't mess with people's subscriptions (we think). 1. Our fearless leader likes his stars. Also related to splitting the repositories is reorganising the package structure. I will start another thread to discuss that, including how much we need to do before splitting the repositories and how much can be done after. Please save discussion on this topic for that thread. --- [Visit Topic](https://discourse.ros.org/t/splitting-the-autoware-ai-repository-and-changing-the-organisation/8139/1) or reply to this email to respond. If you do not want to receive messages from ros-users please use the unsubscribe link below. If you use the one above, you will stop all of ros-users from receiving updates. ______________________________________________________________________________ ros-users mailing list ros-users@lists.ros.org http://lists.ros.org/mailman/listinfo/ros-users Unsubscribe: