ReleaseProcess - HebiRobotics/hebi_cpp_api_ros GitHub Wiki

If releasing for a distribution for the first time, this is slightly different; follow the bloom tutorial at http://wiki.ros.org/bloom/Tutorials/FirstTimeRelease#Releasing_Your_Packages (except I would recommend to manually make changelogs, tag, and set up the pull request at the end).

If updating an existing distribution to a new release of the C++ API:

  • Checkout a clean version of /master of hebi_cpp_api_ros
  • Make a branch for the release version (e.g., <username>/v3.1.0)
  • Copy in the released .tar.gz file of the released C++ API (from http://docs.hebi.us/download/cpp/ https://hebifiles.z13.web.core.windows.net/?prefix=download/cpp/)
  • Unzip this file (tar -xzvf <file>), keeping the directories separate for now.
  • Delete the source Eigen directory (b/c this will be added as a ROS dependency)
  • Copy and paste all the source, include, and hebi C library files in (basically, all the contents except for the CMake files)
    • Note -- you will have to manually build the 32 bit version of the HEBI C API library for now, as we discontinued official support for this prior to the last release. This can be pasted into the lib directory. We should email ROS devs and see if in the future we can blacklist 32 bit packages.
    • To create this library, run the commands shown in the HEBI C API repo's wiki.
    • Note that there are a couple of patches that must be applied/maintained; these changes are the addition of package.xml, updates to CMakeLists.txt, and updates to hebi/CMakeLists.txt. Look at the diff between the CMake files, and update where necessary, especially:
    • C and C++ API version number (note, we explicitly list the C library in the ROS packaged version of CMakeLists.txt
    • Any other changes necessary
  • Update the package.xml with the new version number
  • Update the CHANGELOG.rst file with the C++ API changelog.
  • Run catkin lint
    • get sudo apt install python-catkin-lint
    • run catkin_lint
    • Current/expected errors:
hebi_cpp_api: error: missing include_directories(${catkin_INCLUDE_DIRS})
hebi_cpp_api: CMakeLists.txt(10): error: catkin_package() exports non-package include path
hebi_cpp_api: CMakeLists.txt(48): error: add_library() needs missing file 'OBJECT'
hebi_cpp_api: CMakeLists.txt(49): error: add_library() needs missing file '$<TARGET_OBJECTS:_hebic++-obj>'
hebi_cpp_api: CMakeLists.txt(50): error: add_library() needs missing file '$<TARGET_OBJECTS:_hebic++-obj>'
hebi_cpp_api: CMakeLists.txt(84): error: install() needs missing file '.2'
hebi_cpp_api: CMakeLists.txt(85): error: install() needs missing file '.2.0'
hebi_cpp_api: warning: include path 'include' is exported but not used for the build
hebi_cpp_api: warning: file 'hebi/lib/linux_i686/libhebi.so' is executable but not installed
hebi_cpp_api: warning: file 'hebi/lib/linux_i686/libhebi.so.2' is executable but not installed
hebi_cpp_api: warning: file 'hebi/lib/linux_i686/libhebi.so.2.0' is executable but not installed
hebi_cpp_api: CMakeLists.txt(23): warning: malformed argument list: hebi/CMakeLists.txt(10): expected '(' and got 'is'
catkin_lint: checked 1 packages and found 12 problems
catkin_lint: 3 notices have been ignored. Use -W2 to see them
  • Commit these files, using the changelog as the main content of the commit message
  • Run a pre-release, making sure it succeeds, using the following commands:
mkdir -p /tmp/prerelease_job
cd /tmp/prerelease_job
generate_prerelease_script.py \
  https://raw.githubusercontent.com/ros-infrastructure/ros_buildfarm_config/production/index.yaml \
  kinetic default ubuntu xenial amd64 \
  --custom-repo \
    hebi_cpp_api:git:https://github.com/HebiRobotics/hebi_cpp_api_ros.git:<your branch goes here> \
  --level 1 \
  --output-dir ./
./prerelease.sh
⚠️ **GitHub.com Fallback** ⚠️