Hmm, if I did a compiler, I'd probably want to actually use the Compiler framework, and that requires a bit more explaining. I guess I could do something hacky which gets the job done but doesn't integrate fully with Buildr's compiler support...
Daniel On Fri, Mar 19, 2010 at 10:21 AM, Antoine Toulme <[email protected]>wrote: > I just put together a new compiler that is using a different JAVA_HOME to > run. > > It gives you the ability to compile half your projects with a jdk5, half > the others with a jdk6 (for example). And it's really small. > > Think this would help ? I am sure neither Maven nor Ant support that. > > > On Fri, Mar 19, 2010 at 09:16, Daniel Spiewak <[email protected]> wrote: > >> I'm actually not at a loss for material; quite the opposite! I would >> certainly like to emphasize Buildr's extensibility, since I think that is >> one of the key features which separates us from other build tools. >> Unfortunately, I *also* want to cover a lot of the cool high-level >> features like shell support and continuous-compilation. Maybe I'm just too >> greedy... >> >> Coming back to extensibility, I was thinking of the following three >> examples (in order): >> >> - Documentation generation (ReST => PDF) >> - A :run task >> - JFlex compiler-compiler integration >> >> The first two are obviously tasks that *everyone* runs into and Maven >> handles in particularly clumsy ways. I picked the third mostly because it's >> a very non-trivial task which illustrates Buildr's Java integration quite >> nicely while still remaining surprisingly concise. Unfortunately, it's also >> something that very few people ever do, and so I'm a little hesitant. Any >> better suggestions here? Ideally, I'm looking for something which would be >> nearly impossible in Maven/Ant (definitely requiring a Java extension), >> something which showcases Java invocation and still falls into a dozen or so >> lines. Maybe I should just recreate one of the core Buildr plugins? >> >> Daniel >> >> >> On Fri, Mar 19, 2010 at 9:28 AM, Antoine Toulme >> <[email protected]>wrote: >> >>> +1 >>> >>> If you need a few real plugins to demonstrate, I can probably give a hand >>> there. >>> >>> Thanks, >>> >>> Antoine >>> >>> On Fri, Mar 19, 2010 at 08:04, Alex Boisvert <[email protected] >>> >wrote: >>> >>> > Hi Daniel, >>> > >>> > I like your outline; it sounds like a presentation I'd like to attend >>> > myself. Here's my (textile) outline for a 55-minute talk. I shift >>> from >>> > slide-presentation mode to hands-on coding (with as much cheating as >>> > possible to save time) about mid-way, then come back to slides towards >>> the >>> > end. It's not fully ironed out yet but should give you a good idea of >>> how >>> > I go about it. I think the hardest part is picking which subjects to >>> cover >>> > from the wide array of interesting Buildr features. >>> > >>> > alex >>> > >>> > h1. About Me (1 min / 1 slide) >>> > >>> > h1. How it all started (4 minutes / 3 slides) >>> > >>> > h1. What is Apache Buildr? (2 minutes / 1 slide) >>> > >>> > h1. Project Stats and History (2 minutes / 1 slide) >>> > >>> > h1. Architecture (3 minutes / 1 diagram) >>> > >>> > h1. Tasks and Dependencies (5 minutes / 3 slides) >>> > >>> > h1. Artifacts and Repositories (3 minutes / 1 slide) >>> > >>> > h1. Project layout (2 minutes / 2 slides) >>> > >>> > h1. Example: Basic Java Project (3 minutes) >>> > >>> > h1. Example: Hierarchical Projects (2 minutes) >>> > >>> > h1. Example: Using XMLBeans Ant Task (5 minutes) >>> > >>> > h1. Example: Generating SQL DDL schemas for several databases (3 >>> minutes) >>> > >>> > h1. Example: Invoking Java class through RJB/JRuby (2 minutes) >>> > >>> > h1. Example: Multi-lingual Java, Groovy, Scala project (4 minutes) >>> > >>> > h1. Handling Dependencies (5 minutes / 3 slides) >>> > >>> > * Transitive dependencies >>> > * Whitelisting vs blacklisting >>> > * Apache Ivy support >>> > * Example >>> > >>> > h1. More Stuff (2 minutes) >>> > >>> > * Briefly talk about profiles, build spec/tests, nailgun support >>> > >>> > h1. Plugins (2 minutes) >>> > >>> > * Overview table of available plugins, packaging options, testing >>> > frameworks, and IDE support >>> > >>> > h1. Roadmap (2 minutes) >>> > >>> > >>> > On Thu, Mar 18, 2010 at 1:14 PM, Daniel Spiewak <[email protected]> >>> > wrote: >>> > >>> > > Here's a revised outline. I finished the time estimates and realized >>> I >>> > was >>> > > more than an hour over-budget. :-) I still need to cut some things, >>> but >>> > > this is much more focused than the old one: >>> > > >>> > > Daniel >>> > > >>> > > >>> > > ======================================= >>> > > Profict Spring Camp 2009 Buildr Outline >>> > > ======================================= >>> > > >>> > > One thing I'm not covering here is sub-projects. I'd like to, but >>> they >>> > > don't >>> > > seem to fit anywhere. >>> > > >>> > > Session One >>> > > =========== >>> > > >>> > > I intend to make the do one super-point (**What is Apache Buildr**) >>> using >>> > > "traditional" slides, but everything else will be very hands-on. >>> > > >>> > > * |5m| What is Apache Buildr? >>> > > >>> > > * Maven 2 as it should have been >>> > > * Clean, declarative internal DSL >>> > > * Dead-easy customization >>> > > >>> > > * Minimal kernel; *everything* is an extension >>> > > * Custom tasks >>> > > * Custom build structure >>> > > >>> > > * Speed (you don't realize how *slow* Maven 2 is until you've tried >>> > > Buildr) >>> > > >>> > > * |5m| Installing Buildr >>> > > >>> > > * ``gem install buildr`` (we'll be using MRI for the hands-on) >>> > > * New in 1.4: All-in-One Buildr (untar and go) >>> > > >>> > > * |25m| First steps >>> > > >>> > > * |5m| Setting up the project >>> > > * |10m| Adding dependencies (introduce ``artifacts``) >>> > > >>> > > * |5m| Direct (commons-cli) >>> > > * |5m| Transitive (wicket) >>> > > >>> > > * |5m| Packaging >>> > > >>> > > * ``:jar`` >>> > > * ``:war`` >>> > > >>> > > * |2m| Javadoc (using the ``doc``) task >>> > > * |3m| IDE Metadata >>> > > >>> > > * |10m| Transition from Ant >>> > > >>> > > * Demonstrate custom directory structure >>> > > >>> > > * |5m| Transition from Maven >>> > > >>> > > * *Almost* drop-in replacement >>> > > >>> > > >>> > > Session Two >>> > > =========== >>> > > >>> > > * |10m| Testing >>> > > >>> > > * |5m| JUnit >>> > > * |3m| TestNG >>> > > * |2m| Cobertura >>> > > >>> > > * |5m| Continuous compilation >>> > > * |7m| Interactive Shell >>> > > >>> > > * IRB >>> > > * Clojure REPL >>> > > * Scala >>> > > * JRebel >>> > > >>> > > * Demo with ``cc`` (just because it's cool) >>> > > >>> > > * |15m| Scala/Groovy support >>> > > >>> > > * |5m| Zero-step configuration >>> > > * |3m| Joint compilation >>> > > * |5m| Testing (Specs + ScalaCheck) >>> > > >>> > > * |15m| Custom tasks >>> > > >>> > > * |10m| Generating documentation (ReST => PDF) >>> > > * |5m| A ``run`` task >>> > > >>> > > * ``local_task`` >>> > > >>> > > * |5m| Conclusion >>> > > >>> > >>> >> >> >
