What we want…
We want to following repos, to be autodeployed to packagecloud.io, where they will be distributed via apt-get.
- smacc_viewer (Python, Proprietary, Private Repo)
- rrbtx_control (C++, Proprietary, Private Repo)
- rrbtx_navigation (C++, Proprietary, Private Repo)
- SMACC (C++, BSDv3, Public Repo) – Lower priority because we can distribute source code.
All these packages are for ROS, and consequently should be released as debians. and we don’t really care about security at this point (don’t need some trick GPG force setup). Just want to get the code out there to developers, in the manner they want (apt-get), without distributing the source code.
Catkin
Since all of our software is ROS focused, we use catkin… http://wiki.ros.org/catkin for all of our builds. Catkin is built on top of CMake.
TravisCI
We currently use Travis, and plan to continue, we have the bootstrap plan… https://travis-ci.com/plans
ros-industrial.ci
We use this ci script from ros-industrial .. https://github.com/ros-industrial/industrial_ci , which is our key market (the people we care about), across all of our repos.
Doxygen
And we are committed to using doxygen, as a documentation tools, and to having our documentation tool automated into our commit process. At the SMACC repo, scroll down to top of the readme to see the links to our doxygen pages that are auto pushed to github pages based on the workings of this shell script… https://github.com/reelrbtx/SMACC/blob/master/gh-pages.sh
Here is the doxygen github-pages site… https://reelrbtx.github.io/SMACC/master/html/namespaces.html
One last thing, we use custom doxygen settings, set in the repo’s doxygen file that produce very cool and useful class diagrams that aren’t the default. Here’s an example of ours… https://reelrbtx.github.io/SMACC/master/html/structsm__dance__bot_1_1SmDanceBot.html This of course requires greater computing resources, cache sizes, etc.
Bloom
In our failed first attempt to setup a deployment, we used the ROS tool bloom to generate our debians.
Bloom, I believe is built on top of git-buildpackage
http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html
https://github.com/agx/git-buildpackage
Setting up autodeployment for Packagecloud.io
https://packagecloud.io/docs#travis
https://packagecloud.io/docs#how_to_create_packages
Giant Pack file for SMACC issue
I found the reason why the SMACC repo is so big (Currently 663MB).
One file, .git/objects/pack/pack-5a9f70968c37a61374627488f91472bf2ab393d3.pack is 661MB.
Links that might help….
https://rtyley.github.io/bfg-repo-cleaner/
https://stackoverflow.com/questions/11050265/remove-large-pack-file-created-by-git/11277929
https://git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery
https://github.com/18F/C2/issues/439