I'm trying to button up my first BOSH release. I was just going through the process (mostly academically) and packaging up a release for Solr just to learn the ropes. I understand why we would want to package up the source with the release instead of relying on one of the inconsistent package managers but I'm wondering if an argument could be made for using the distribution's packaging for fairly stable and ubiquitous packages like java, apache etc...
From the examples I was following I'd have to track and update the source files in my release. I understand that this will create stability for the release, speed of deployment and play well with the packaging and droplet creation but wouldn't targeting the latest stable release for your target platform's package management system ensure you have the best release for that platform with any optimizations that may have been used?
If you are managing your own releases this makes sense, you would often want to peg the libraries and versions of your production dependencies but if you are trying to create a BOSH release for more generalized use by others does this still hold? For example, if I wanted to create a general and reuseable release for Solr I would have to include both 64 and 32 bit source for the JRE in order to ensure wide platform compatibility when I could rely on package management to decide which version to install.
I guess my question is, from a bosh development perspective, would it ever make sense to have a way to compile the release via the target distribution's package management on one of your compilation nodes and include a description of how to package up the resultant items for staging from wherever the target platform has stashed them?
- Bill