Make old programs work in new ROS version
I have asked a specific question last time, now I want to ask a more general question to which the answer will be definitely helpful to people who also have the confuse like I do. The question is:
There are always many changes to files(the content and the file name!) from one ROS version to another version. So I want to know what kind of changes have been made(as detailed as possible) so that I can modify my program to run in the new ROS version. I think my possible solution is either one of the following:
Condition I: what is no longer available in the new ROS version is a header file
Solution: Copy-paste the old header file into the package folder of the new ROS version and include it in the source code.
But the problem is the header file maybe rely on other header files so I will copy-paste many of them.
Consition II: what is no longer available in the new ROS version is a package
Solution: 1. Copy-paste the whole package to the package directory of the new ROS version and "depend" on it.
2. Find out similar package in the new ROS version and change my programs.
Solution 1 is direct but seems not practical, the old package may not be compatible with new ROS and another problem is how to make it "dependable"?
Solution 2 seems better but it involves much work to do. The most important thing is how to find out a similar package? Should I compare each class, function and variable between them(I have to compare each new package?!) And in each package there are many classes, functions and it takes me much time to understand them. And even worse, if there is no similar package, I should write a new package available in the new ROS.
Any suggestion or more possibly better solutions to my question?
I did not find other solution. I was in groovy, and changed for hydro. I've been oblige to check one by one all my package. But most of package works fine in the new ROS version