Request for Contribution

It’s common for Cinder users to be interested in contributing code to the project, but they’re unsure where to begin. I’ll transpose a github comment posted here with a few ideas of varying scales which would make for self-contained pull requests.

In particular, as we continue to transition away from a dependency on Boost, there’s some work to do to remove the last bits of usage.
• There are several uses of Boost.preprocessor to instantiate template code for various types which I think at this point should simply be unrolled. Examples include code like this or like this
• The ci::PolyLine boolean operations use Boost.geometry, and I believe the Clipper library would make a suitable replacement
• The ci::split() method in Utilities should be implemented without using Boost
• Various string methods from Boost are used that we’d probably do well to replicate in Utilities.h - examples include boost::trim() and boost::erase_all() in Svg.cpp, among a few others. These are not UTF-8 friendly, but I believe still have their place.

Until Apple begins shipping a more recent Clang, we’ll have to retain a subset of Boost to enable fs::path. However I believe with those changes and perhaps a few others, we could build without Boost at all on Visual C++ 2015+, clang 3.9+ and gcc 5.3+, though I have not verified the latter two.

Thanks,
Andrew

3 Likes