On May 13, 2014, at 7:36 PM, Tom Browder wrote: > On Tue, May 13, 2014 at 11:31 AM, Tom Browder <tom.brow...@gmail.com> wrote: >> On Tue, May 13, 2014 at 11:09 AM, Christopher Sean Morrison >>> I'm leery of features getting implemented without a >>> specific known use case (i.e., "if you build it, they will come"), but > > The use case is a set of D bindings to add to the existing D collection at: > > https://github.com/D-Programming-Deimos
Sounds like a great place to put it, but that's a rather cyclic use-case reasoning. :) It's like saying we need to build an XYZ car because some parking lot has parking spots for XYZ cars. That doesn't say anything about anyone actually using the car, just that it's available. Even better house analogy -- building a mobile home because there's a trailer park where we can park it is not a use case -- finding someone to live in there (i.e, use it), however, is. A specific use-case would be implementing D/Go/Rust bindings because someone is working on a GUI or some other development in that language, for example. Any new/major project in-house or any 3rd party "customer" become use-case possibilities. That's great if you have a desire to work on a D interface -- awesome -- but without identifying a use, it is an "if you build it, they will/might/can come". My assertion for adopting into trunk is that we have such a use-case planned/promised/committed, not just a hypothetical, before we accept the maintenance cost. Put it on a branch and the maintenance costs are minimized (and can even help accelerate development). >> Maybe it would be better to do such a project in a like umbrella group such >> as: >> >> https://github.com/D-Programming-Deimos > > Hm, those projects seem to point back to the upstream repos. Maybe > the binding code should be here until it is working. > > I guess a branch would work, but working on the trunk shouldn't > interfere with "normal" builds if the appropriate option (default > "NO") is not turned on. It would be easier to avoid doing constant > merges to keep up with the trunk. Shouldn't and in the past we've gone that route, but the costs do slowly add up. Especially given enough time. We have a number of experimental efforts started on trunk with appropriate options added to the build, but they still incur a maintenance cost simply because they exist. We have acquired too many incomplete projects on trunk -- that's why most new efforts (e.g., OpenCL) are now being started on a branch where they arguably should have been in the first place. Examples include the simulation interface (Bullet), the old parametric constraint library (Boost/Spirit), the html help web browser (hv3, sqlite), object-oriented bounding boxes (libgdiam), level-of-detail mesh wireframes (libvds), path tracer (OSL, llvm), ... probably others. The interfaces using Bullet and OSL are probably the best comparison where they really shouldn't interfere and most of the time they don't, but eventually they do. Some of those are incredibly close to completion and all of them have a GREAT reason for existing. Most even have/had a specific use-case or user identified. But until they reach some level of completion, they are predominantly dead weight to anyone but the original author. Most of them should have started on a branch until they reached some level of end-user maturity. Cheers! Sean ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ BRL-CAD Developer mailing list brlcad-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-devel