This is something that has been bugging me for a long while, but haven't had a chance to really dig into it. Thanks for doing this!
> On Sep 26, 2016, at 8:59 AM, Casey Brotherton <[email protected]> > wrote: > Will the project be continuing with each project having their own directory > structure? As long as we stick to bits that don't need to be compiled, one of the big advantages of having this type of directory structure is that most components are runnable without doing a build. The big con is that it makes it very hard to share or split components. For example, I think yetuslib could easily be a separate, shared component not only for yetus-bits but for non-yetus stuff too. In my head, I think it would be extremely advantageous to have a common bash library that should be shared amongst Apache projects to build their Java launch code. e.g., let's say I finish that hbase bash code rewrite; sharing yetuslib between hadoop and hbase would make it way easier rather than having each project with their own version of duplicate functions. Something else that just popped into my head is how user's digest the project if they want to look at the source. I have a hunch it might be useful for them to see, no, really, these are such separate/independent components that their source trees basically are too! Hmmm.... > Possibly like this: > ./src > ./src/docs > ./src/main > ./src/main/bin > ./src/main/java > ./src/main/py > ./src/test > ./src/test/bin > > Or something entirely different? FWIW, when I was toying with builds last year using make, I had something similar to this. I think this is basically the correct direction, but the minor issues/edge cases always seem to be bigger than one originally thinks. :) That said, and I need to put more thought into this, but a few things sort of stick out: * Unless we're using a build system that really wants it (hi maven, hi gradle), is making a 'src' directory worth it? * Why should docs be underneath src? (That would be the website right?) * language based structures always freak me out a bit because of what happens if the language being used changes. (but that's my own personal phobia haha) * if we stick we language-based dirs, we'd probably want a bash dirs and have bin be wrapper code, given how we currently release the tar ball * no matter what we do, the annotations code is a PITA.
