ros2-for-arm / ros2

Contains the manifest which inherits ros2/ros2 and arm specific for ros2
Apache License 2.0
44 stars 14 forks source link

Add readme instructions, repos and CMake toolchain file #1

Closed lmayencourt closed 6 years ago

mikaelarguedas commented 6 years ago

As these files are copied from another place it would be better to maintain the history of these files.

The repos file is using specific tags and hashes pointing to the Ardent release. Note that this means that people using this repos file will not be able to get new features or bug fixes by running vcs pull (but maybe pinning down specific versions is done on purpose here, I just wanted to confirm).

david-wang-2015 commented 6 years ago

@mikaelarguedas , thanks for your review. :-) Are you suggesting to clone ros2/ros2 and update on top of that?

lmayencourt commented 6 years ago

@mikaelarguedas thanks for your inputs, I create the repos file based on the release-latest branch, but it is probably better to point to master !

mikaelarguedas commented 6 years ago

Are you suggesting to clone ros2/ros2 and update on top of that?

Yeah there are several ways to do this:

I think it really depends what the end goal is here. For the repos file: Is the purpose of this repos file to later be modified to add new repositories hosted here ? to remove some ? If the goal is to add new repositories, I don't think there is a need to copy the repos file from ros2/ros2 (as it means more effort to maintain as each time something changes on the ros2/ros2 version we would need to change it here as well). We could have a repos file here only for the additional repositories, and the instructions can just be:

For the toolchain file: My guess is that it will be hosted on this repository and removed from the ros2/ros2 right ? in that case I'll just push it here with its' complete history and remove it from ros2/ros2 (and add a note in the instructions saying "if you want to cross compile go to the readme of ros2-for-arm/ros2 (link)"

david-wang-2015 commented 6 years ago

@mikaelarguedas , Thanks for sharing the detailed approaches.

The purpose of this repository: I think the answer is "both".

For toolchain file: My understanding is that "ros2/ros2" is the common manifest file which is platform independent. "ros2-for-arm/ros2-for-arm" will be the additional manifest to facilitate the development of Arm platforms. So I think you're right, we can move the toolchain from ros2/ros2 to here. In that case, it seems we don't need to fork ros2/ros2.

sudpau01 commented 6 years ago

@lmayencourt 1.readme.md in this git repository will just point to the wiki page (https://github.com/ros2-for-arm/ros2/wiki/ROS2-on-arm-architecture) This wiki will essentially have the contents of https://github.com/ros2/ros2/blob/master/arm_crosscompilation/README.md Finally remove the https://github.com/ros2/ros2/blob/master/arm_crosscompilation/README.md

2.Move https://github.com/ros2/ros2/blob/master/arm_crosscompilation/aarch64_toolchainfile.cmake as a part of this git repository. (which is already done in this pull request). It could be removed from ros2/ros2

3.rename to ros2-for-arm.repos

@mikaelarguedas , @davwan01 agree?

sudpau01 commented 6 years ago

https://github.com/ros2-for-arm/ros2/wiki/ROS2-on-arm-architecture

has being put. Please review

mikaelarguedas commented 6 years ago

Looks better now, thanks for iterating!

Note that the new wiki page points to "release-latest" for the ros2.repos file (which is totally fine if you want to target a stable version rather than master).

Can you provide more details about why the gnu toolchain is not sufficient and a specific version of the linaro toolchain is required instead. That's how it was before and as this is a hard-coded link, the instructions broke as soon as Linaro changed the URL, so it doesnt seem very future-proof, especially given that current and upcoming ubuntu will have a more recent toolchain and compiler version than the one linked in this PR (see https://packages.ubuntu.com/bionic/g++-6-aarch64-linux-gnu).

Can you please open a matching PR on ros2/ros2 to remove the files in the "arm_crosscompilation" folder and just leave a README pointing to the wiki page of this repository ?

sudpau01 commented 6 years ago

@mikaelarguedas

We will like to stay pointing to the latest release version as we know it will work with the cross-compilation for ARM architecture. Ideally we could be pointing to master but we never know any package addition into the master ros2.repo might break the cross compilation. This is essentially because we don't have a CI setup where we could test regularly the cross compilation of the stack.

gnu toolchain should be sufficient.But we have the toolchain from Linaro that is customized and optimized one, you could consider it as the latest toolchain for ARM. But we will test it on our side and then if the gnu toolchain is sufficient then we will point to that in our wiki...

I think @lmayencourt already sent a PR for removing the cross-compile.cmake file and also updated the readme.md to point to our latest wiki page

mikaelarguedas commented 6 years ago

We will like to stay pointing to the latest release version as we know it will work with the cross-compilation for ARM architecture. Ideally we could be pointing to master but we never know any package addition into the master ros2.repo might break the cross compilation. This is essentially because we don't have a CI setup where we could test regularly the cross compilation of the stack.

Sounds good to me :+1:

I think @lmayencourt already sent a PR for removing the cross-compile.cmake file and also updated the readme.md to point to our latest wiki page

Yes that's be done here as a follow-up of my previous comment :+1:

gnu toolchain should be sufficient.But we have the toolchain from Linaro that is customized and optimized one, you could consider it as the latest toolchain for ARM. But we will test it on our side and then if the gnu toolchain is sufficient then we will point to that in our wiki...

Understood, yeah it would be great to test that the gnu one works as well or at least to check on a regular basis that the link is still valid to make sure to have working instructions for users