Cruisers Forum
 


Reply
  This discussion is proudly sponsored by:
Please support our sponsors and let them know you heard about their products on Cruisers Forums. Advertise Here
 
Thread Tools Search this Thread Rate Thread Display Modes
Old 01-03-2019, 08:17   #1
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 17,627
Images: 2
Plugin Transition Process 4 to 5

Any suggestions are welcome. This the process I think I am going to try to follow for plugin migration, after getting appveyor and travis working and making some progress on it. I am sure others will have their own process and opinions. I am looking for any helpful suggestions to improve this process.

Incidentally, I've found it is not possible to make a PR to a host repository for a "new branch" it is only possible to make a PR into an existing branch in a host repository. So I will only be able to make a PR "ov50" to the host "master" branch for example.

Plugin is Opencpn v4 (ov40)
  1. Cleanup plugin repository
  2. Get current with the host repository and get compiling locally.
  3. Make a new branch and commits as needed.
  4. Push to your github repository.
  5. Make a new branch for more commits "compile".
  6. Add appveyor.yml and .travis.yml
  7. For appveyor adjust the opencpn.lib downloaded (4.2 or 4.8.2)
  8. Get both appveyor and .travis working perhaps with more commits.
  9. Add a Tag for "4.8.2" (as Rasbats did) Later: Actually Rasbats makes a "4.8.2" Branch - very good idea!
  10. Make a PR "4.8.2" to the host repository.
  11. Add a Release "4.8.2" version if needed.
Changing Plugin from v4 to v5 (ov50)
  1. Try to reconfigure cmake to name the plugin ov50
  2. Is there a particular version number of cmake files that we are supposed to use?
  3. Change appveyor.yml and travis.yml to ov50 versions.
  4. Get appveyor and .travis working.
  5. Make a PR "ov50" to the host repository
  6. Add a Release "ov50" version if needed.
Thus the plugin will be migrated to ov50 and there will be compiled and Opencpn v4 and v5 plugins will be available on appveyor and travis versions for the next 6 months.

Fortunately a number plug authors have already moved their plugins forward to "ov50" , so the resultant trail will not be quite the same.

I hope I am not putting myself in some "line of fire" here! This is just my approach, without telling anyone else anything. However I am open to suggestions.
rgleason is offline   Reply With Quote
Old 01-03-2019, 08:23   #2
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 17,627
Images: 2
Re: Plugin Transition Process 4 to 5

I have a number of ov4 plugins that are using the typical .travis.yml file that are not compiling, some that refuse to build at all. I have used two different travis yml files and it does not seem to matter.

What would be causing this problem, there is an attempt at building, but it stops immediately and does not leave a report.
Since I am not that familiar with Linux, perhaps someone could explain this?
rgleason is offline   Reply With Quote
Old 01-03-2019, 08:54   #3
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 17,627
Images: 2
Re: Plugin Transition Process 4 to 5

Example: Travis gcc C++ error in my forked repository for Photolayer_pi (ov5)
Fairly typical for a number of cases. (Clang C++ built ok) --still leaves a red check though.

https://travis-ci.org/rgleason/photo...jobs/500324542
Any suggestions?

Quote:
[ 73%] PhotoLayer_pi-i18n: Done.
[ 73%] Built target PhotoLayer-i18n
Scanning dependencies of target PhotoLayer_pi
[ 80%] Building CXX object CMakeFiles/PhotoLayer_pi.dir/src/PhotoLayer_pi.cpp.o
[ 80%] Building CXX object CMakeFiles/PhotoLayer_pi.dir/src/PhotoLayer.cpp.o
In file included from /home/travis/build/rgleason/photolayer_pi/src/PhotoLayer.cpp:31:0:
/home/travis/build/rgleason/photolayer_pi/src/PhotoLayer.h:30:23: fatal error: geotiffio.h: No such file or directory
#include "geotiffio.h"

^
compilation terminated.
In file included from /home/travis/build/rgleason/photolayer_pi/src/PhotoLayer_pi.cpp:29:0:
/home/travis/build/rgleason/photolayer_pi/src/PhotoLayer.h:30:23: fatal error: geotiffio.h: No such file or directory
#include "geotiffio.h"

^
compilation terminated.
make[2]: *** [CMakeFiles/PhotoLayer_pi.dir/src/PhotoLayer.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [CMakeFiles/PhotoLayer_pi.dir/src/PhotoLayer_pi.cpp.o] Error 1
make[1]: *** [CMakeFiles/PhotoLayer_pi.dir/all] Error 2
make: *** [all] Error 2
The command "if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cmake -DCMAKE_BUILD_TYPE=Release ../; make -sj2 package; fi" exited with 2.

0.00s$ if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then cmake -DwxWidgets_CONFIG_EXECUTABLE=/tmp/wx312_opencpn50_macos109/bin/wx-config -DwxWidgets_CONFIG_OPTIONS="--prefix=/tmp/wx312_opencpn50_macos109" -DCMAKE_INSTALL_PREFIX=/tmp/opencpn -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 ..; make -sj2; make create-pkg; ls -l; fi
The command "if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then cmake -DwxWidgets_CONFIG_EXECUTABLE=/tmp/wx312_opencpn50_macos109/bin/wx-config -DwxWidgets_CONFIG_OPTIONS="--prefix=/tmp/wx312_opencpn50_macos109" -DCMAKE_INSTALL_PREFIX=/tmp/opencpn -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 ..; make -sj2; make create-pkg; ls -l; fi" exited with 0.
Later: I guess that one is pretty clear! I think Rasbats fixed it.
rgleason is offline   Reply With Quote
Old 01-03-2019, 09:03   #4
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 17,627
Images: 2
Re: Plugin Transition Process 4 to 5

Here is another Travis error for Projections_pi. (ov4)
https://github.com/rgleason/projecti...commits/master
https://travis-ci.org/rgleason/proje...m=notification



Quote:
CPackRPM: Will use GENERATED spec file: /home/travis/build/rgleason/projections_pi/build/_CPack_Packages/Linux/RPM/SPECS/projections_pi.spec
CPackRPMebug: You may consult rpmbuild logs in:
CPackRPMebug: - /home/travis/build/rgleason/projections_pi/build/_CPack_Packages/Linux/RPM/rpmbuildprojections_pi.err
CPackRPMebug: *** error: line 5: Illegal sequence ".." in: Version: ..
***
CPackRPMebug: - /home/travis/build/rgleason/projections_pi/build/_CPack_Packages/Linux/RPM/rpmbuildprojections_pi.out
CPackRPMebug: *** Building target platforms: x86_64
Building for target x86_64
***
CMake Error at /usr/local/cmake-3.9.2/share/cmake-3.9/Modules/CPackRPM.cmake:2674 (message):
RPM package was not generated!
/home/travis/build/rgleason/projections_pi/build/_CPack_Packages/Linux/RPM
Call Stack (most recent call first):
/usr/local/cmake-3.9.2/share/cmake-3.9/Modules/CPackRPM.cmake:2745 (cpack_rpm_generate_package)


CPack Error: Error while execution CPackRPM.cmake
CPack Error: Problem compressing the directory
CPack Error: Error when generating package: projections_pi
make: *** [package] Error 1
The command "make -j2 package" exited with 2.
Are these code problems with CMake? How can I fix them?
Also fairly typical for a number of plugins.
rgleason is offline   Reply With Quote
Old 01-03-2019, 09:31   #5
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 17,627
Images: 2
Re: Plugin Transition Process 4 to 5

rotation_pi

Have seen several of these too:


Quote:
CPack: Create package using RPM
CPack: Install projects
CPack: - Run preinstall target for: rotationctrl_pi
CPack: - Install project: rotationctrl_pi
CPack: Create package
CPackRPM: Will use GENERATED spec file: /home/travis/build/rgleason/rotationctrl_pi/build/_CPack_Packages/Linux/RPM/SPECS/rotationctrl_pi.spec
CPackRPMebug: You may consult rpmbuild logs in:
CPackRPMebug: - /home/travis/build/rgleason/rotationctrl_pi/build


/_CPack_Packages/Linux/RPM/rpmbuildrotationctrl_pi.err
CPackRPMebug: *** error: line 5: Illegal sequence ".." in: Version: ..
***

Quote:

CPackRPMebug: - /home/travis/build/rgleason/rotationctrl_pi/build/_CPack_Packages/Linux/RPM/rpmbuildrotationctrl_pi.out
CPackRPMebug: *** Building target platforms: x86_64
Building for target x86_64
rgleason is offline   Reply With Quote
Old 01-03-2019, 10:54   #6
bcn
Registered User

Join Date: May 2011
Location: underway whenever possible
Boat: Rangeboat 39
Posts: 4,734
Re: Plugin Transition Process 4 to 5

If you put the quotes into "[code]" brackets instead of "[quote]" brackets the smilies will disappear...
bcn is offline   Reply With Quote
Old 02-03-2019, 10:50   #7
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 17,627
Images: 2
Re: Plugin Transition Process 4 to 5

Some changes to the process. This assumes remotes are configured:

Code:
origin _  https:/github.com/your-repos/plugin-name_pi.git
 upstream _  https:/github.com/host-repos/plugin-name_pi.git
Plugin is Opencpn v4 (ov40)
  1. Using Git "Releases" leaves a good trail of Tagged commits.
  2. On branch master, cleanup local git plugin and get current with host.
  3. Push to your git repository.
  4. Create a new branch to work in.
  5. git checkout -b branch "ov42: or "ov48" (as appropriate)
  6. Add appveyor.yml .travis.yml for wxWidgets 3.0.2
  7. In Appveyor adjust opencpn.lib for 4.2 or 4.8.2 download
  8. git status and git add as needed. git commit -a -m "title" as needed.
  9. Get appveyor and .travis to work with green checks
  10. Add a git tag "v4.2.0" or "v4.8.2" for the last commit
  11. Push to your remote repository.
  12. Make a PR "v4.2.0" or v4.8.2" to the host repository.
  13. Note there may be several PR to the host repository required.
  14. Add a Git Release version if needed.
Changing Plugin from v4 to v5 (ov50)
  1. Continue back on the Master Branch, Git checkout master.
  2. Create a new branch "ov50" to work in.
  3. git checkout -b ov50
  4. Reconfigure cmake to name the plugin ov50
  5. Change appveyor.yml and travis.yml to ov50 versions.
  6. Add VERSION.cmake file
  7. Get appveyor and .travis working with green checks.
  8. Add a git tag "ov50"
  9. Push to your remote repository
  10. Make a PR "ov50" to the host repository.
  11. When the PR is accepted, git pull upstream master and git push origin master.
  12. Add a Release "ov50" version if needed.
rgleason is offline   Reply With Quote
Old 02-03-2019, 12:07   #8
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 17,627
Images: 2
Re: Plugin Transition Process 4 to 5

Some more changes. This assumes remotes are configured:
Code:
origin _  https:/github.com/your-repos/plugin-name_pi.git
 upstream _  https:/github.com/host-repos/plugin-name_pi.git
Plugin is Opencpn v4 (ov40)
  1. Using Git "Releases" leaves a good trail of Tagged commits.
  2. On branch master, cleanup local git plugin and get current with host.
  3. Push to your git repository.
  4. Create a new branch to work in.
  5. git checkout -b branch "ov42: or "ov48" (as appropriate)
  6. Add appveyor.yml .travis.yml for wxWidgets 3.0.2
  7. In Appveyor adjust opencpn.lib for 4.2 or 4.8.2 download
  8. git status and git add as needed. git commit -a -m "title" as needed.
  9. Get appveyor and .travis to work with green checks
  10. Note Tag names and branches have to be unique!
  11. Add a git tag "ov42-4.2.0 OpenCPN" or "ov48-4.8.2 OpenCPN" for the last commit
  12. Push to your remote repository.
  13. Make a PR to the host repository.
  14. Note tags and
  15. Note there may be several PR to the host repository required.
  16. Add a Git Release version if needed.
Changing Plugin from v4 to v5 (ov50)
  1. Continue back on the Master Branch, Git checkout master.
  2. Create a new branch "ov50" to work in.
  3. git checkout -b ov50
  4. Reconfigure cmake to name the plugin ov50
  5. Change appveyor.yml and travis.yml to ov50 versions.
  6. Add VERSION.cmake file
  7. Get appveyor and .travis working with green checks.
  8. Add a git tag "ov50-OpenCPN5"
  9. Push to your remote repository
  10. Make a PR to the host repository.
  11. When the PR is accepted, git pull upstream master and git push origin master.
  12. Add a Release "ov50" version if needed.
rgleason is offline   Reply With Quote
Old 03-03-2019, 10:38   #9
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 17,627
Images: 2
Re: Plugin Transition Process 4 to 5

Thanks Pavel.


example https://github.com/nohal/iacfleet_pi to see how it is done. It is actually exactly the same for all the platforms as the location is provided by the core (https://github.com/nohal/iacfleet_pi...ns.cpp#L41-L51 + https://github.com/nohal/iacfleet_pi...pi.cpp#L92-L93). The cmake stuff simply copy from the iacfleet plugin as well.


For .travis.yml is the end of that file

env:
global:
- secure:

Then some code


Is that particular to individuals or not?
rgleason is offline   Reply With Quote
Reply

Tags
plug

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Starting the Liveaboard Transition Cgudmand Liveaboard's Forum 2 21-07-2010 10:10
Hi all...living in NYC in the middle of a 3 yr transition to the BVIs sail4evr Meets & Greets 4 19-09-2007 07:26

Advertise Here


All times are GMT -7. The time now is 16:14.


Google+
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Social Knowledge Networks
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

ShowCase vBulletin Plugins by Drive Thru Online, Inc.