Thanks for the spec , the story and the adjustements before integration. I'll take time to work on the next story and make a pull request as soon as possible.
Cheers, Sébastien 2012/12/12 Adam Murdoch <[email protected]> > > On 12/12/2012, at 12:36 AM, Sébastien Cogneau wrote: > > I've updated the pull request. > > Hope this helps. > > > Thanks for this. We'll apply it soon. > > If you're interested in continuing to work on these plugins, I've updated > the spec to reflect what I think we should tackle next, which is to extract > a 'distribution' plugin that is shared by the java library and application > plugins. > > The spec is here: > https://github.com/gradle/gradle/blob/master/design-docs/building-and-packaging-applications-and-libraries.md > > The next story is this: > https://github.com/gradle/gradle/blob/master/design-docs/building-and-packaging-applications-and-libraries.md#introduce-a-basic-distribution-plugin > > The stories that follow will incrementally change things to share more > stuff between the java library, application and distribution plugins. > > There's no publishing stories in the spec, yet, as we're still working > through the design for this as part of the new publication DSL work. > > > > Sébastien > > 2012/12/3 Adam Murdoch <[email protected]> > >> >> On 03/12/2012, at 2:38 AM, Sébastien Cogneau wrote: >> >> Hi, >> >> I'm agree, it would be better to rename the plug-in to >> 'jvm-library-distribution'. >> Do you want me to modify the pull-request ? >> >> >> Yes, please. >> >> >> I'm really interested in working on the next steps , is it possible ? >> >> >> Absolutely. That would be excellent. >> >> If yes, how do you want to proceed ? >> >> >> I think we should continue with the plan below. Step #1 overlaps quite a >> bit with the publishing stuff we're currently doing for the 1.4 release, >> and it might be tricky to coordinate things. We might skip to step #2 >> instead. >> >> I'll update the spec soon. >> >> >> >> Cheers, >> >> Sébastien. >> >> >> 2012/11/29 Adam Murdoch <[email protected]> >> >>> Hi, >>> >>> We have a pull request queued up that adds a 'java-library' plugin: >>> https://github.com/gradle/gradle/pull/101 >>> >>> The idea behind this plugin that it will build a distribution zip or tgz >>> for a jvm based library, which you can use for distributing the library, >>> generally as an alternative or complement to publishing the library to a >>> repository somewhere. >>> >>> We've held off applying this pull request while we sorted out some of >>> the new publication stuff. I think we're now ready to add this plugin. >>> >>> One issue is that the plugin id 'java-library' is a bit too general for >>> what this plugin does, and we want to use 'java-library' for other purposes >>> (see below), so I would propose renaming it to something like >>> 'jvm-library-distribution' to reflect what it does. >>> >>> Then, once added, we can (incrementally, of course): >>> >>> 1. Add a 'java-library' plugin that declares that the project produces a >>> Java library. This would be an opinionated plugin that defines a main Java >>> library component. It would publish the component. There will be a base >>> plugin that adds the capability for building Jvm library components. >>> 2. Extract a 'distribution' plugin out of the 'jvm-library-distribution' >>> and 'application' plugins. This would be an opinionated plugin that defines >>> a single distribution which contains all library and application components >>> that the project produces. It would also publish the distribution. There >>> will be a base plugin that adds the capability for building distributions >>> from components. >>> 3. Deprecate and remove the 'jvm-library-distribution' plugin. You'd use >>> the 'java-library' and 'distribution' plugins together instead. >>> 4. Extract a 'java-application' plugin out of the 'application' plugin. >>> This would be an opinionated plugin that defines a main Java application >>> component. It would publish the component. There will be a base plugin that >>> adds the capability for building Jvm application components. >>> 5. Deprecate and remove the 'application' plugin. You'd use the >>> 'java-application' and 'distribution' plugins together instead. >>> 6. Change the c++ plugins to define library and application components >>> for the libraries and executables it creates. You could then use the >>> 'distribution' plugin to bundle these things into a distribution. >>> >>> Then we can do all kinds of interesting things: >>> 7. Add plugins to offer additional ways to package Java application >>> components: executable fat jar, native executable, .app bundle, etc. >>> 8. Add an 'rpm' plugin that uses the meta-data for the library and >>> application components to generate rpms for those components. >>> 9. Add a 'java-daemon' plugin that can take a jvm application component >>> and package it as a daemon/service. >>> >>> So, net result is: >>> >>> apply plugin: 'java-library' >>> apply plugin: 'distribution' >>> >>> Running 'gradle assemble' will build a .zip and .tgz containing the >>> library Jar, the API documentation, the jars for the runtime dependencies, >>> etc. >>> >>> apply plugin: 'cpp-lib' >>> apply plugin: 'distribution' >>> >>> Running 'gradle assemble' will build a .zip and .tgz containing all >>> variants of the native library, plus the API docs, etc (or perhaps it >>> builds a zip/tgz per variant). >>> >>> apply plugin: 'scala-library' >>> apply plugin: 'distribution' >>> >>> Running 'gradle assemble' will build a .zip and .tgz containing all >>> variants of the library Jar, the API docs, the jars for runtime >>> dependencies for each variant, etc. >>> >>> Step #1 we need to do soon, to make progress on the publishing DSL. The >>> other steps can happen whenever. I think we should apply the pull request >>> as is, rename the plugin, and then do the remaining steps in the master >>> branch. >>> >>> >>> -- >>> Adam Murdoch >>> Gradle Co-founder >>> http://www.gradle.org >>> VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting >>> http://www.gradleware.com >>> >>> >> >> >> -- >> Adam Murdoch >> Gradle Co-founder >> http://www.gradle.org >> VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting >> http://www.gradleware.com >> >> > > > -- > Adam Murdoch > Gradle Co-founder > http://www.gradle.org > VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting > http://www.gradleware.com > >
