Thanks Bruno. I'll review it very quick -- Jean-Louis Monteiro http://twitter.com/jlouismonteiro http://www.tomitribe.com
On Thu, Dec 6, 2018 at 2:44 PM Bruno Baptista <bruno...@gmail.com> wrote: > Hi folks, > > I've created a jira and a PR to define the rules/guidelines in the > creation of new examples. > > Jira: https://issues.apache.org/jira/browse/TOMEE-2326 > > PR: https://github.com/apache/tomee/pull/257 > > Please feel free to comment and ask for changes. > > Cheers. > > Bruno Baptista > https://twitter.com/brunobat_ > > > On 05/12/18 22:23, Bruno Baptista wrote: > > Thanks for the context David. > > > > I'll write a PR with README at the Examples project level with some > > guidelines that we can discuss. There were some other resources to > > help make new examples. Will research that too. > > > > Cheers > > > > Bruno Baptista > > https://twitter.com/brunobat_ > > > > > > On 05/12/18 21:21, David Blevins wrote: > >>> On Dec 5, 2018, at 10:28 AM, Bruno Baptista <bruno...@gmail.com> > wrote: > >>> > >>> I'd say we have a problem here. What do you guys think we should do? > >>> > >>> • Remove Parent definition on examples and fix the ones that > >>> will break. > >>> • Use Parent always and fix the dependencies scope. > >>> • A mix of both. Use parent when needed and fix the dependencies > >>> scope. > >> Historically we've not used parents because the goal of each example > >> is to be completely independent in every way from the other examples > >> and the TomEE build overall. The intention is people can grab an > >> example and build on it in their own projects without having to > >> perform surgery to "cut it free" from the parent pom. > >> > >> This conversation typically comes up because people are trying to > >> remove duplication between the examples, which is good habit normally > >> and therefore most people's initial gut reaction. > >> > >> When you're on the learning side, however, it significantly increases > >> the complexity of the example because: > >> > >> - basic "project" structure is moved to the example parent, which > >> then has complexity of removing duplication between 139 examples > >> - some of that complexity will then move to the top-level tomee > >> parent pom to reduce duplication further > >> - inevitably someone will say "maybe MicroProfile examples should > >> have their own parent pom" > >> > >> The result is then if a user would want to make their own tiny > >> project based on a MicroProfile example they would need to spend a > >> few hours learning how to untangle this theoretical pom inheritance > >> chain: > >> > >> - tomee/examples/microprofile/metrics-counted/pom.xml > >> - tomee/examples/microprofile/pom.xml > >> - tomee/examples/pom.xml > >> - tomee/pom.xml > >> > >> As coders we'll be thrilled by how much duplication we removed. As > >> someone learning, you basically have to be an expert in maven and our > >> build structure and be extremely willing to invest time in trial and > >> error to recreate your own truly independent example you can then > >> build from. > >> > >> For certain things like Arquillian, the pom is the hardest part, so > >> if it isn't completely self contained and independent, it is pretty > >> much an unusable example. > >> > >> At least that's how the conversation has historically gone. We can > >> certainly have it again and maybe create some documentation to help > >> example authors understand the goals/motivations. > >> > >> > >> -David > >> > >> > >> > >> >